0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

面向界面的圖形化測試技術(shù)

上??匕?/a> ? 來源:上??匕? ? 作者:上海控安 ? 2023-04-21 11:03 ? 次閱讀

作者 |熊一衡 華東師范大學(xué)軟件工程學(xué)院博士

蘇亭 華東師范大學(xué)軟件工程學(xué)院教授

版塊 |鑒源論壇 · 觀模

01什么是面向界面的圖形化測試(GUI Testing)

圖形用戶界面(GUI) 是一種通過圖形化方式呈現(xiàn)信息、數(shù)據(jù)、功能和操作的用戶界面,旨在提供更加直觀、友好、易用的體驗,以滿足用戶的需求和期望。圖形用戶界面通常由窗口、菜單、按鈕、文本框、圖標(biāo)、標(biāo)簽等組件構(gòu)成,用戶可以通過鼠標(biāo)、鍵盤等輸入設(shè)備進(jìn)行交互和操作。GUI界面的設(shè)計和布局需要考慮用戶的習(xí)慣、視覺效果、易用性等因素,以提供最佳的用戶體驗。

面向界面的圖形化測試是一種常用的軟件測試方法,旨在驗證用戶界面是否符合業(yè)務(wù)規(guī)范和用戶需求,以及驗證應(yīng)用程序的功能是否正確響應(yīng)用戶操作,以保證應(yīng)用程序的質(zhì)量和穩(wěn)定性。圖形化測試通常在開發(fā)的中后期進(jìn)行,可以確保應(yīng)用程序的功能和用戶界面的質(zhì)量,提高用戶體驗,降低用戶投訴和退款率。此技術(shù)可以有效地提高測試效率和測試質(zhì)量,在各種應(yīng)用程序的測試中得到廣泛應(yīng)用。

例如,如果一個用戶訪問京東商城的網(wǎng)站主頁,他將看到導(dǎo)航欄、搜索欄、推薦欄和其他諸多組件。測試人員可以針對不同的關(guān)注點來對這個網(wǎng)頁進(jìn)行圖形化測試。例如,點擊“免費(fèi)注冊”按鈕,網(wǎng)站是否能彈出相應(yīng)的注冊網(wǎng)頁,包括導(dǎo)航、搜索、表單、購物車、支付等功能是否能正常響應(yīng)用戶操作。

poYBAGRB_ROAWmnFAANNs2mqehk69.webp

通過圖形化測試,可以發(fā)現(xiàn)應(yīng)用中的問題和缺陷,提高應(yīng)用的質(zhì)量和用戶體驗,增強(qiáng)用戶的滿意度和忠誠度,從而提高應(yīng)用的價值和競爭力。

02常見的面向界面的圖形化測試技術(shù)

2.1 基于人工的測試

基于人工的測試是一種傳統(tǒng)的軟件測試方式,測試人員通過手動操作應(yīng)用程序的用戶界面,模擬用戶的行為和操作,來發(fā)現(xiàn)和報告應(yīng)用的問題和缺陷。在實際應(yīng)用中,應(yīng)用系統(tǒng)級的功能性問題很大程度上是依靠人工測試找到 [1]。基于人工的圖形化測試需要有經(jīng)驗的測試人員,能夠全面地覆蓋測試用例和測試場景。然而,測試的效率和準(zhǔn)確性很大程度上受到測試人員的技能水平和經(jīng)驗的影響?;谌斯さ臏y試主要包括以下步驟:

(1)理解項目需求和制定測試計劃:測試人員必須分析所有的需求文檔,以便識別軟件的預(yù)期行為和需要測試的確切內(nèi)容。測試人員根據(jù)需求和規(guī)格說明書,制定測試計劃和測試用例。

(2)測試環(huán)境和測試數(shù)據(jù)準(zhǔn)備:測試人員準(zhǔn)備測試環(huán)境和測試數(shù)據(jù),包括安裝和配置測試軟件、準(zhǔn)備測試數(shù)據(jù)、設(shè)置測試工具和設(shè)備等,以確保測試環(huán)境的一致性和穩(wěn)定性。

(3)手動測試執(zhí)行:測試人員按照測試計劃和測試用例,手動操作應(yīng)用程序的用戶界面,模擬用戶的行為和操作,包括點擊、輸入、選擇、拖拽等,以驗證應(yīng)用程序的功能和性能,并記錄測試結(jié)果和異常情況。

(4)缺陷報告和總結(jié):當(dāng)測試人員發(fā)現(xiàn)缺陷的時候,需要根據(jù)測試團(tuán)隊所制定的報告模版生成缺陷報告,包括缺陷的描述、缺陷分類、缺陷級別等等,并跟蹤和確認(rèn)缺陷的修復(fù)和驗證。在測試完成之后,測試人員根據(jù)測試的結(jié)果生成測試報告并提交給項目團(tuán)隊。

基于人工的測試的優(yōu)點包括:測試靈活性高,人工測試可以基于一個功能自己構(gòu)建不同的測試用例,并且適應(yīng)不同的程序表現(xiàn);測試準(zhǔn)確性高,自動化測試工具沒有測試人員經(jīng)驗豐富,人工測試可以更加準(zhǔn)確判斷一個應(yīng)用表現(xiàn)是否為一個程序錯誤;測試反饋及時,可以及時發(fā)現(xiàn)和報告軟件缺陷和問題。

然而,基于人工的測試也存在一些缺點,如測試效率低,需要較長的測試時間和測試人員的工作量,當(dāng)短時間內(nèi)需要生成大量測試用例時,不適合用人工測試;測試成本高,相對于自動化測試,人工測試需要耗費(fèi)大量人力和時間;測試可重復(fù)性差,測試結(jié)果可能受到測試人員的主觀因素的影響;測試覆蓋率有限,可能無法涵蓋所有的測試用例和測試場景。

2.2 基于錄制回放的測試

基于錄制回放的測試通過記錄用戶在圖形界面上的操作,生成測試腳本,然后回放測試腳本到目標(biāo)應(yīng)用上來模擬用戶的操作并驗證應(yīng)用程序的功能。錄制回放測試技術(shù)屬于自動化測試的一種形式,不需要人工編寫測試腳本,減少工作人員的工作量,適用于需要重復(fù)執(zhí)行相同測試用例的場景,如回歸測試、性能測試等。錄制回放測試技術(shù)主要包括以下步驟:

(1)錄制測試腳本:測試人員打開測試工具,啟動錄制功能,然后在應(yīng)用程序的用戶界面上進(jìn)行操作和事件,如點擊按鈕、輸入文本、選擇菜單等,測試工具會自動捕捉和記錄用戶的操作和事件,并生成測試腳本。

(2)編輯測試腳本:測試人員可以對生成的測試腳本進(jìn)行編輯和優(yōu)化,如添加斷言、調(diào)整等待時間、修改參數(shù)等,以確保測試腳本能夠正確地模擬用戶的操作和驗證應(yīng)用程序的功能和性能。

(3)回放測試腳本:測試人員啟動回放功能,測試工具會自動執(zhí)行測試腳本,模擬用戶的操作并驗證應(yīng)用程序的功能和性能,同時記錄測試結(jié)果和異常情況。

(4)生成測試報告:測試人員分析測試結(jié)果,包括測試通過率、測試覆蓋率等,發(fā)現(xiàn)軟件缺陷和問題,并向開發(fā)團(tuán)隊提供測試報告。

錄制回放測試技術(shù)的優(yōu)點包括:測試成本低,不需要會編寫測試腳本的專業(yè)人員,測試效率高,可以根據(jù)測試人員的錄制自動化生成測試腳本并自動執(zhí)行測試;測試準(zhǔn)確性高,可以模擬真實用戶的操作并驗證應(yīng)用程序的功能和性能;測試可維護(hù)性高,可以快速修改和更新測試腳本和測試數(shù)據(jù)。

然而,錄制回放測試技術(shù)也存在一些缺點,如測試腳本的可靠性和穩(wěn)定性受到應(yīng)用程序的變化和測試環(huán)境的影響,需要保證測試環(huán)境的一致性和穩(wěn)定性;測試腳本的維護(hù)成本較高,應(yīng)用程序代碼和界面在不斷變化,因此需要不斷更新和優(yōu)化測試腳本和測試數(shù)據(jù)來適應(yīng)這些改變;測試覆蓋度有限,依賴于測試人員的錄制,測試人員一般偏向于錄制一些核心功能和核心步驟。

Selenium IDE [2] 是Selenium Suite下的一款非常受歡迎的開源Web自動化測試工具,其核心功能是錄制回放測試。它不需要用戶有任何編程知識,只需記錄用戶與瀏覽器的交互從而可以快速地創(chuàng)建、執(zhí)行和調(diào)試自動化測試腳本。Selenium IDE提供了一個簡單的界面,可以通過簡單的拖放操作和錄制功能,快速創(chuàng)建自動化測試腳本,無需編寫任何代碼。它支持多種瀏覽器,包括Chrome、Firefo等。此外,Selenium IDE還可以導(dǎo)出測試腳本為多種編程語言的代碼,如Java、C#Python等。

2.3 基于模型的測試

基于模型的測試是一種自動化測試方法,它利用模型來描述被測試系統(tǒng)的行為和結(jié)構(gòu),從而生成測試用例,驗證系統(tǒng)的正確性和可靠性。基于模型的測試可以提高測試效率和覆蓋率,減少測試人員的工作量,適用于復(fù)雜和多變的應(yīng)用程序,如嵌入式系統(tǒng)、軟件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等。

基于模型的測試主要包括以下步驟:

(1)建模:測試人員使用建模工具,根據(jù)需求和規(guī)格說明書,構(gòu)建被測試系統(tǒng)的模型,包括功能模型、狀態(tài)模型、數(shù)據(jù)模型等,以描述被測試系統(tǒng)的行為和結(jié)構(gòu)。

(2)模型分析:測試人員對模型進(jìn)行分析和驗證,包括模型檢查、模型仿真、模型測試等,以發(fā)現(xiàn)和修復(fù)模型中的錯誤和問題。

(3)測試用例生成:測試人員利用模型生成測試用例,包括基于覆蓋率的測試用例、隨機(jī)測試用例、符號執(zhí)行測試用例等,以覆蓋模型中的所有路徑和狀態(tài),并達(dá)到測試目標(biāo)和測試要求。

(4)自動化測試執(zhí)行:測試人員使用自動化測試工具,執(zhí)行生成的測試用例,對被測試系統(tǒng)進(jìn)行自動化測試,包括功能測試、性能測試、安全測試等,以檢驗被測試系統(tǒng)的正確性和可靠性。

(5)測試報告和總結(jié):測試人員整理測試結(jié)果和問題報告,生成測試報告和總結(jié),包括測試通過率、測試覆蓋率、缺陷統(tǒng)計、測試建議等,以提供給項目團(tuán)隊和管理者參考和決策。

基于模型的測試的優(yōu)點包括:測試效率高,可以自動生成測試用例和測試腳本,并自動執(zhí)行測試;測試覆蓋率高,可以覆蓋模型中的所有路徑和狀態(tài);測試可重復(fù)性好,可以多次執(zhí)行相同的測試用例和測試腳本;測試結(jié)果準(zhǔn)確性高,可以自動化地驗證被測試系統(tǒng)的正確性和可靠性。

然而,基于模型的測試也存在一些缺點,如模型的建立和維護(hù)成本高,需要投入大量的人力和物力資源,并且需要建模人員非常了解待測試應(yīng)用;門檻高,模型的構(gòu)建需要有非常專業(yè)的建模人員,熟練使用各種專業(yè)技能 [3];模型的應(yīng)用范圍有限,可能無法覆蓋所有的測試需求和測試場景。因此,在實際測試中,應(yīng)根據(jù)測試需求和應(yīng)用程序的特點,綜合選擇不同的測試方法和工具,以提高測試效率和質(zhì)量。

Fastbot [4] 是一款由字節(jié)跳動Quality Lab研發(fā)的一款開源的基于模型的GUI測試工具,用于發(fā)現(xiàn)手機(jī)app中的穩(wěn)定性問題。Fastbot將app的GUI信息抽象成模型中的state,將執(zhí)行的動作抽象成模型中的action,然后基于構(gòu)建的模型生成測試用例,并提供多種算法策略,目標(biāo)是達(dá)到較高的 Activity 覆蓋率及較強(qiáng)的問題發(fā)現(xiàn)能力。同時,F(xiàn)astbot還支持跨平臺測試,在海量設(shè)備上多機(jī)協(xié)同測試。Fastbot也利用了圖像檢測技術(shù)來支持較豐富的圖像 UI 異常檢測能力(黑白屏、圖像重疊、控件遮擋等等)。

03面向界面的圖形化測試的挑戰(zhàn)

根據(jù)statista網(wǎng)站上的報道,48%的移動應(yīng)用測試人員將圖形化界面看作主要的測試關(guān)注點[5]。面向界面的圖形化測試在應(yīng)用的功能和質(zhì)量起著至關(guān)重要的作用,在實際應(yīng)用中也存在不少挑戰(zhàn):

(1)代碼和設(shè)計變更:鑒于應(yīng)用界面以及功能的頻繁更新,測試人員需要不斷調(diào)整測試腳本以適應(yīng)新的測試場景。

(2)錯誤處理:當(dāng)測試復(fù)雜應(yīng)用程序時,可能會遇到各種程序問題,來干擾測試進(jìn)行,如何處理這些問題是一個常見的難題。

(3)測試工具與被測軟件的同步問題:測試工具與測試對象之間如果同步出了問題,很可能會導(dǎo)致測試失敗,影響測試結(jié)果的準(zhǔn)確性 [6]。

(4)依賴于測試工具:首先需要選用合適的測試工具,并對測試的應(yīng)用進(jìn)行相應(yīng)的定制和配置。

(5)需要專業(yè)技能:需要具備一定的編程和測試技能,才能進(jìn)行測試腳本編寫和自動化測試工具的配置和使用。

(6)多樣性:不同的軟件界面設(shè)計不同,測試人員需要熟悉各種不同的界面風(fēng)格和交互方式。

04總結(jié)

面向界面的圖形化測試技術(shù)已經(jīng)成為各種應(yīng)用程序測試的重要手段之一。這種測試技術(shù)廣泛應(yīng)用于各種應(yīng)用程序的測試中,特別是對于那些用戶界面比較復(fù)雜、交互性比較強(qiáng)的應(yīng)用程序,如游戲、手機(jī)app、網(wǎng)站等。此技術(shù)可以有效地提高測試效率和測試質(zhì)量。盡管取得了巨大進(jìn)展,但該測試技術(shù)仍然面臨著許多挑戰(zhàn),學(xué)術(shù)界和工業(yè)界也在不斷探索嘗試各種新的技術(shù)和方法,以提高測試的效率和質(zhì)量。

參考文獻(xiàn):

[1] Itkonen J, Mantyla M V, Lassenius C. How do testers do it? An exploratory study on manual testing practices[C]//2009 3rd International Symposium on Empirical Software Engineering and Measurement. IEEE, 2009: 494-497.

[2] Selenium IDE

[3] Dias Neto A C, Subramanyan R, Vieira M, et al. A survey on model-based testing approaches: a systematic review[C]//Proceedings of the 1st ACM international workshop on Empirical assessment of software engineering languages and technologies: held in conjunction with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE) 2007. 2007: 31-36.

[4] Fastbot https://github.com/bytedance/Fastbot_Android.

[5] “Focus areas for testing mobile applications from 2013 to 2017”

[6] Alégroth E, Feldt R, Ryrholm L. Visual gui testing in practice: challenges, problemsand limitations[J]. Empirical Software Engineering, 2015, 20: 694-744.

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 測試技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    117

    瀏覽量

    21069
  • 圖形化
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    14226
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    662

    瀏覽量

    39793
收藏 人收藏

    評論

    相關(guān)推薦

    通用自動測試軟件 - TAE

    INTEWORK-TAE(Test Automation Executor) 是一款通用的測試用例自動執(zhí)行框架,用于汽車電子自動測試,可支持仿真( MIL/SIL/HIL)、故障注
    的頭像 發(fā)表于 01-02 13:42 ?92次閱讀
    通用自動<b class='flag-5'>化</b><b class='flag-5'>測試</b>軟件 - TAE

    DRV8821-23 EVM圖形用戶界面

    電子發(fā)燒友網(wǎng)站提供《DRV8821-23 EVM圖形用戶界面.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 15:08 ?0次下載
    DRV8821-23 EVM<b class='flag-5'>圖形</b>用戶<b class='flag-5'>界面</b>

    DRV8800-01 EVM圖形用戶界面

    電子發(fā)燒友網(wǎng)站提供《DRV8800-01 EVM圖形用戶界面.pdf》資料免費(fèi)下載
    發(fā)表于 12-02 11:07 ?0次下載
    DRV8800-01 EVM<b class='flag-5'>圖形</b>用戶<b class='flag-5'>界面</b>

    圖形用戶界面與命令行接口的比較

    在計算機(jī)科學(xué)和信息技術(shù)領(lǐng)域,用戶與計算機(jī)交互的方式主要分為兩種:圖形用戶界面(GUI)和命令行接口(CLI)。這兩種界面各有優(yōu)勢和局限性,適用于不同的場景和用戶需求。 1. 定義與基本
    的頭像 發(fā)表于 11-12 14:38 ?465次閱讀

    什么是labview?labview編寫的程序由哪幾部分組成?

    ,簡稱NI)公司開發(fā)。它主要用于數(shù)據(jù)采集、儀器控制、數(shù)據(jù)分析和自動測試等領(lǐng)域。LabVIEW通過圖形化編程界面,使得工程師和科學(xué)家能夠快速開發(fā)和部署復(fù)雜的測量和自動
    的頭像 發(fā)表于 09-04 16:04 ?956次閱讀

    單片機(jī)圖形化編程軟件有哪些

    Arduino IDE以其簡單易用的界面和豐富的庫函數(shù),成為了許多初學(xué)者的首選。雖然它本質(zhì)上不是純粹的圖形化編程軟件,但其提供的示例代碼和直觀的操作方式,使得學(xué)習(xí)單片機(jī)編程變得相對容易。此外,Arduino社區(qū)龐大,擁有大量的教程和項目資源,進(jìn)一步降低了
    的頭像 發(fā)表于 09-02 10:14 ?1517次閱讀

    降本增效取得新進(jìn)展,拉普拉斯申請晶圓圖形化工藝專利

    來源:金融界 近日,據(jù)天眼查知識產(chǎn)權(quán)信息顯示,拉普拉斯新能源科技股份有限公司(以下簡稱“拉普拉斯”)申請一項名為“晶圓圖形化工藝”的專利,公開號CN202410574469.X。 專利摘要顯示,本
    的頭像 發(fā)表于 07-19 09:54 ?260次閱讀

    上位機(jī)可視界面編程軟件有哪些

    上位機(jī)可視界面編程軟件是一類用于開發(fā)圖形用戶界面(GUI)的軟件工具,它們通常提供了豐富的界面元素、易于使用的編程接口和強(qiáng)大的功能。這些軟
    的頭像 發(fā)表于 06-06 10:48 ?2677次閱讀

    c語言怎么做可視界面

    C語言是一種通用的編程語言,廣泛應(yīng)用于系統(tǒng)編程、嵌入式開發(fā)等領(lǐng)域。雖然C語言本身并不支持直接創(chuàng)建可視界面,但通過結(jié)合一些圖形庫和工具,我們可以為C語言程序開發(fā)出直觀、易用的可視
    的頭像 發(fā)表于 06-06 10:46 ?2478次閱讀

    微軟將優(yōu)化Windows Subsystem for Linux并加入圖形用戶界面設(shè)置

    微軟宣布提升Windows Subsystem for Linux(WSL)性能,推出全新設(shè)置應(yīng)用提供圖形化配置環(huán)境。
    的頭像 發(fā)表于 05-31 11:26 ?579次閱讀

    基于RT-Thread OS的嵌入式界面開發(fā)及機(jī)器視覺線上師資培訓(xùn)通知

    。在這些系統(tǒng)中,圖形化界面正逐漸成為人與機(jī)器交互的主要方式。未來的嵌入式圖形化界面技術(shù)將朝著更加人性
    的頭像 發(fā)表于 03-30 08:34 ?457次閱讀
    基于RT-Thread OS的嵌入式<b class='flag-5'>界面</b>開發(fā)及機(jī)器視覺線上師資培訓(xùn)通知

    stm的例程沒有ioc文件,請問怎樣圖形化編輯引腳?

    為什么stm的例程 沒有ioc文件,那請問咋樣圖形化編輯引腳
    發(fā)表于 03-28 08:29

    STMCubeIDE使用CubeMX圖形化配置USB后沒有自動添加頭文件路徑是什么原因?qū)е碌模?/a>

    STM32CubeIDE 1.10版本,使用內(nèi)置的CubeMX圖形化配置外設(shè)USB,配置完成后自動生成代碼,發(fā)現(xiàn)沒有自動添加Include相關(guān)路徑(USB的頭文件路徑),編譯也是報錯。 我在另外一臺
    發(fā)表于 03-20 06:15

    Qt For OpenHarmony圖形化的進(jìn)展突破

    Qt 適配 OpenHarmony 意義 Qt 是一個 C++ 跨平臺開發(fā)框架,主要用于開發(fā)圖形用戶界面(Graphical User Interface,GUI)程序,具有跨平臺類庫(支持目前
    的頭像 發(fā)表于 02-02 14:29 ?1599次閱讀
    Qt For OpenHarmony<b class='flag-5'>圖形化</b>的進(jìn)展突破

    人機(jī)交互技術(shù)有哪幾種 人機(jī)交互技術(shù)的發(fā)展趨勢

    的幾種形式: 圖形用戶界面(GUI):圖形用戶界面是目前最為常見的人機(jī)交互技術(shù)形式。它通過圖形化
    的頭像 發(fā)表于 01-22 17:47 ?3867次閱讀