TAO 專案 乙個直觀的UI 測試工具集 一

2021-09-25 06:33:10 字數 1728 閱讀 2992

如今,幾乎所有的商業軟體都有乙個圖形使用者介面(gui)。從使用者的角度看,乙個直觀的功能正確的gui往往比軟體的功能更重要。根據**「

a comprehensive framework for testing graphical user inte***ces

」 的統計顯示,gui通常佔總**量的45% - 60%。測試gui**對於軟體測試開發工程師而言,既獨特又富有挑戰。

首先,在軟體開發周期中,gui的改變是絕對的,而穩定則是相對的。在使用者進行beta版本的試用時,他們的反饋往往集中在使用者體驗即gui上。而與之相對應的是,開發人員也樂意修改這樣的問題因為其開銷通常相對可以控制。但是,這給測試組帶來了極大的挑戰。他們不但要確保最小的回歸(regression)風險,而要承擔諸如更新測試用例和自動化等額外的工作[2]。

再則,管理大量的gui測試用例也是個難題。 gui上乙個貌似簡單的改變,會影響到幾百個已有的測試用例。根據我們的經驗,軟體產品的測試用例中,25%甚至更多都是gui相關的,其中80%的都可以自動化。在軟體開發周期中,乙個對話方塊可能會改變多次,其相應的管理成本也隨之水漲船高。

最後,傳統的測試標準可能不能很好的對gui測試進行評估。比如: 通常測試經理認為70%以上的**覆蓋率為可以接受的測試結果,然而對於gui來說,你只要簡單通過開啟每乙個對話方塊,就可以達到較高的**覆蓋率。由此可見,**覆蓋率和gui測試覆蓋的層次、深度沒有直接的關係,還必須採用其他的測試標準。

現在已經有了一些關於gui測試方面的研究,例如,

guitar專案

。guitar利用模式對話方塊的屬性去獲得「事件流圖」,然後圍繞「事件流圖」自動生成測試用例。但是,guitar可能不適合非模式對話方塊為主的軟體 (比如基於mmc開發的

gui),而且它也缺少系統的途徑去管理整個測試過程。

這篇文章介紹了一套gui測試工具集,我們內部將它命名為「tao專案」。這是個全面的解決方案,包括使用者引導的測試用例和測試自動化生成器、靜態二進位制分析器、gui變化***和綜合的報表機制。

tao專案概述

道可道,非常道。道是一種傳統的中國哲學思想, 其精髓乃萬物皆有其規律,人類需順應自然法則以實現游刃有餘。根據這種思想,我們設計了這個gui測試工具組來應對上文中所提到的挑戰。圖1描繪了通常gui測試週期中的主要測試活動。

圖1 通常gui測試週期的主要活動

tao針對這些測試步驟,提供了乙個完全解決方案,圖2顯示了它的主要構成部分。

圖2 tao工具組

tag (測試用例自動化生成器) :使用者引導的測試用例和測試自動化生成器。根據預先定義好的規則和基於知識系統的模型,它能生成測試用例和相應的自動化測試**。

visual tree (視覺化樹圖) :這個樹圖描繪了gui的結構,能夠形象地顯示測試用例報告、自動自動化報告和ui差別變化結果。

static binary analysis (靜態二進位制分析器) :對於用支援反射(reflection)的程式語言編寫的gui,這個工具會生成靜態分析結果。

automation framework (自動化框架) :執行測試自動化的底層工具。

ui diff tool (ui差別***) :它能掃瞄目標gui的差別,並把這些差別在樹圖中用圖形化的方式顯示出來。作為輸出的一部分,它會建議使用者可能需要更新的相應測試用例和測試自動化。

bug filer (bug 管理器) :是專門傳送gui bug的工具。它把gui bug根據不同的原因進行分類,這可用作bug趨勢分析和質量評估。

王景村(測試經理)、

李敏(測試主管)

TAO 專案 乙個直觀的UI 測試工具集(二)

讓我們先看一下tao專案的工作流程及其三個關鍵組成部分 圖1.tao專案的工作流程 一 使用者引導的測試用例生成器 對於任何對話方塊,有經驗的軟體測試開發工程師都可以很快給出一些標準gui測試用例。例如,測試乙個輸入框,你可能建立輸入最長和最短字串的測試用例,或者輸入帶有特殊字元但匹配正規表示式的字...

乙個輕型的效能測試工具 Locust

1.乙個開源的效能測試用具 2.使用python開發 3.使用python編寫使用者行為 官方 安裝1.pip install locustio 2.安裝成功後,用locust v 來驗證 編寫簡單的測試指令碼 httplocust 用來傳送http請求 taskset 定義使用者行為,相當於loa...

c 製作乙個TCP UDP測試工具

目標 使用c 製作乙個簡單的tcp udp測試工具,並且熟悉c 中的socket程式設計,具備tcp客戶端和upd客戶端的功能,並能進行資料收發。知識準備 1 socket為何物?2 c 中需要包含的標頭檔案及用到的api 3 建立乙個tcp連線 udp連線的流程 4 編碼測試,發現問題 socke...