許多編程組越來(lái)越依賴(lài)于自動(dòng)化測(cè)試,特別是那些使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的組。有許多框架可以編寫(xiě)測(cè)試,每次將代碼輸入版本控制系統(tǒng)時(shí),連續(xù)集成軟件都會(huì)自動(dòng)運(yùn)行測(cè)試。
雖然自動(dòng)化不能重現(xiàn)人類(lèi)所能做的一切(以及他們所認(rèn)為的所有方式),但它對(duì)回歸測(cè)試非常有用。但是,為了真正有用,它確實(shí)需要一個(gè)精心開(kāi)發(fā)的測(cè)試套件的測(cè)試腳本。
雖然手動(dòng)測(cè)試可能會(huì)在軟件應(yīng)用程序中發(fā)現(xiàn)許多缺陷,但這是一個(gè)費(fèi)時(shí)費(fèi)力的過(guò)程。此外,它可能無(wú)法有效地發(fā)現(xiàn)某些類(lèi)型的缺陷。測(cè)試自動(dòng)化是一個(gè)編寫(xiě)計(jì)算機(jī)程序來(lái)進(jìn)行測(cè)試的過(guò)程,否則就需要手動(dòng)完成這些測(cè)試。一旦測(cè)試實(shí)現(xiàn)了自動(dòng)化,它們就可以快速運(yùn)行了。對(duì)于維護(hù)壽命長(zhǎng)的軟件產(chǎn)品來(lái)說(shuō),這通常是最劃算的方法,因?yàn)樵趹?yīng)用程序的生命周期中,即使是很小的補(bǔ)丁也會(huì)導(dǎo)致在早期工作的特性中斷。
測(cè)試自動(dòng)化一般有兩種方法:
·代碼驅(qū)動(dòng)的測(cè)試。對(duì)類(lèi)、模塊或庫(kù)的公共(通常)接口使用各種輸入?yún)?shù)進(jìn)行測(cè)試,以驗(yàn)證返回的結(jié)果是否是正確的。
·圖形用戶(hù)界面測(cè)試。測(cè)試框架生成用戶(hù)界面事件,如擊鍵和鼠標(biāo)單擊,并觀(guān)察導(dǎo)致用戶(hù)界面的變化,以驗(yàn)證程序的可觀(guān)察行為是正確的。
測(cè)試自動(dòng)化工具可能很昂貴,而且通常與手動(dòng)測(cè)試結(jié)合使用。從長(zhǎng)遠(yuǎn)來(lái)看,它可以實(shí)現(xiàn)具有成本效益,特別是在回歸測(cè)試中重復(fù)使用時(shí)。
自動(dòng)生成測(cè)試用例的一種方法是通過(guò)使用系統(tǒng)的模型進(jìn)行測(cè)試用例生成來(lái)進(jìn)行基于模型的測(cè)試,但研究將繼續(xù)進(jìn)行各種替代方法。
自動(dòng)化是什么,何時(shí)自動(dòng)化,甚至是否真的需要自動(dòng)化,這些都是測(cè)試(或開(kāi)發(fā))團(tuán)隊(duì)必須做出的關(guān)鍵決策。選擇產(chǎn)品的正確功能,在很大程度上決定了自動(dòng)化的成功。應(yīng)避免自動(dòng)化不穩(wěn)定的特性或正在進(jìn)行更改的特性。
代碼驅(qū)動(dòng)測(cè)試
軟件開(kāi)發(fā)的一個(gè)日益增長(zhǎng)的趨勢(shì)是使用測(cè)試框架,如xUnit框架(例如,JUnit和NUnit),允許執(zhí)行單元測(cè)試,以確定代碼的各個(gè)部分在各種情況下是否按預(yù)期發(fā)揮作用。測(cè)試用例描述了需要在程序上運(yùn)行的測(cè)試,以驗(yàn)證程序是否按預(yù)期運(yùn)行。
代碼驅(qū)動(dòng)的測(cè)試自動(dòng)化是敏捷軟件開(kāi)發(fā)的一個(gè)關(guān)鍵特性,其中它被稱(chēng)為測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)(TDD)。在編寫(xiě)代碼之前,需要先編寫(xiě)單元測(cè)試來(lái)定義該功能。只有當(dāng)所有測(cè)試都通過(guò)時(shí),該代碼才被認(rèn)為是完整的。支持者認(rèn)為,它生產(chǎn)的軟件比通過(guò)人工探索進(jìn)行測(cè)試的代碼更可靠,成本也更低。它被認(rèn)為更可靠,因?yàn)榇a覆蓋率更好,而且它在開(kāi)發(fā)過(guò)程中不斷運(yùn)行,而不是在瀑布式開(kāi)發(fā)周期結(jié)束時(shí)運(yùn)行一次。開(kāi)發(fā)人員在進(jìn)行更改時(shí)立即發(fā)現(xiàn)缺陷,而修復(fù)缺陷的成本最低。最后,代碼重構(gòu)更安全;將代碼轉(zhuǎn)換為更簡(jiǎn)單的形式,代碼重復(fù)更少,但等效的行為,不太可能引入新的缺陷。
圖形用戶(hù)界面(GUI)測(cè)試
許多測(cè)試自動(dòng)化工具提供了記錄和回放功能,允許用戶(hù)交互式地記錄用戶(hù)操作,并回放任何次數(shù),并將實(shí)際結(jié)果與預(yù)期結(jié)果進(jìn)行比較。這種方法的優(yōu)點(diǎn)是它需要很少或不需要軟件開(kāi)發(fā)。這種方法可以應(yīng)用于任何具有圖形用戶(hù)界面的應(yīng)用程序。然而,依賴(lài)于這些特性就帶來(lái)了主要的可靠性和可維護(hù)性問(wèn)題。重新標(biāo)記一個(gè)按鈕或?qū)⑵湟苿?dòng)到窗口的另一部分,可能需要重新記錄該測(cè)試。錄制和回放還經(jīng)常添加不相關(guān)的活動(dòng)或錯(cuò)誤地記錄一些活動(dòng)。
這種類(lèi)型的工具的一個(gè)變體是用于對(duì)網(wǎng)站的測(cè)試。這里的“界面”是網(wǎng)頁(yè)。這種類(lèi)型的工具也需要很少或不需要軟件開(kāi)發(fā)。然而,這樣的框架使用了完全不同的技術(shù),因?yàn)樗亲x取html,而不是觀(guān)察窗口事件。
另一個(gè)變體是無(wú)腳本的測(cè)試自動(dòng)化,它不使用記錄和回放,而是構(gòu)建被測(cè)試應(yīng)用程序的模型,然后允許測(cè)試人員通過(guò)簡(jiǎn)單地編輯測(cè)試參數(shù)和條件來(lái)創(chuàng)建測(cè)試用例。這不需要任何腳本技能,但具有腳本方法的所有能力和靈活性。測(cè)試用例維護(hù)很容易,因?yàn)闆](méi)有代碼需要維護(hù),而且由于被測(cè)試的應(yīng)用程序會(huì)更改,因此可以簡(jiǎn)單地重新學(xué)習(xí)或添加軟件對(duì)象。它可以應(yīng)用于任何基于gui的軟件應(yīng)用程序。
要測(cè)試什么
測(cè)試工具可以幫助自動(dòng)化任務(wù),如產(chǎn)品安裝、測(cè)試數(shù)據(jù)創(chuàng)建、GUI交互、問(wèn)題檢測(cè)(考慮配備了oracles的解析或輪詢(xún)代理)、缺陷日志記錄等,而不一定是以端到端方式自動(dòng)化測(cè)試。
在考慮測(cè)試自動(dòng)化時(shí),必須保持滿(mǎn)足普遍的要求:
·平臺(tái)和操作系統(tǒng)獨(dú)立性
·數(shù)據(jù)驅(qū)動(dòng)功能(輸入數(shù)據(jù)、輸出數(shù)據(jù)、元數(shù)據(jù))
·可自定義的報(bào)告(數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)、晶體報(bào)告)
·易于調(diào)試和日志記錄
·版本控制友好-最小的二進(jìn)制文件
·可擴(kuò)展的和可定制的(開(kāi)放的api,以便能夠與其他工具集成)
·通用驅(qū)動(dòng)程序(例如,在Java開(kāi)發(fā)生態(tài)系統(tǒng)中,這意味著Ant或Maven和流行的ide)。這使得測(cè)試能夠與開(kāi)發(fā)人員的工作流集成。
·支持無(wú)人值守的測(cè)試運(yùn)行,以便與構(gòu)建過(guò)程和批處理運(yùn)行進(jìn)行集成。連續(xù)集成服務(wù)器需要這樣做。
·電子郵件通知(在故障或閾值級(jí)別上的自動(dòng)通知)。這可能是執(zhí)行它的測(cè)試運(yùn)行器或工具。
·支持分布式執(zhí)行環(huán)境(分布式測(cè)試臺(tái))
·分布式應(yīng)用程序支持(分布式SUT)
自動(dòng)化框架方法
框架是一個(gè)設(shè)置特定產(chǎn)品自動(dòng)化規(guī)則的集成系統(tǒng)。該系統(tǒng)集成了功能庫(kù)、測(cè)試數(shù)據(jù)源、對(duì)象細(xì)節(jié)和各種可重用模塊。這些組件作為小型構(gòu)建塊,需要組裝以表示業(yè)務(wù)流程。該框架提供了測(cè)試自動(dòng)化的基礎(chǔ),并簡(jiǎn)化了自動(dòng)化工作。
定義自動(dòng)化框架和測(cè)試工具之間的邊界
工具是專(zhuān)門(mén)針對(duì)某些特定的測(cè)試環(huán)境而設(shè)計(jì)的。例如:Windows自動(dòng)化工具、web自動(dòng)化工具等。它作為一個(gè)自動(dòng)化過(guò)程的驅(qū)動(dòng)代理。但是,自動(dòng)化框架并不是執(zhí)行某些特定任務(wù)的工具,而是一個(gè)提供解決方案的基礎(chǔ)設(shè)施,其中不同的工具可以插入自己,并以統(tǒng)一的方式完成它們的工作。因此,為自動(dòng)化工程師提供了一個(gè)共同的平臺(tái)。
有各種類(lèi)型的框架。它們是根據(jù)它們所利用的自動(dòng)化組件進(jìn)行分類(lèi)的。這些內(nèi)容包括:
·數(shù)據(jù)驅(qū)動(dòng)測(cè)試
·模塊化驅(qū)動(dòng)的測(cè)試
·關(guān)鍵字驅(qū)動(dòng)測(cè)試
·混合動(dòng)力測(cè)試
·基于模型的測(cè)試
測(cè)試工具
程序測(cè)試和故障檢測(cè)可以通過(guò)測(cè)試工具和調(diào)試器得到顯著的幫助。
測(cè)試/調(diào)試工具包括以下功能:
·程序監(jiān)控,允許全面或部分監(jiān)控程序代碼,包括:
·指令集模擬器,允許完整的指令級(jí)監(jiān)控和跟蹤設(shè)施
·程序動(dòng)畫(huà),允許在源級(jí)別或機(jī)器代碼中逐步執(zhí)行和條件斷點(diǎn)
·代碼覆蓋報(bào)告
·格式化轉(zhuǎn)儲(chǔ)或符號(hào)調(diào)試,允許在錯(cuò)誤或選定點(diǎn)上檢查程序變量的工具
·自動(dòng)化的功能GUI測(cè)試工具用于通過(guò)GUI重復(fù)系統(tǒng)級(jí)的測(cè)試
·基準(zhǔn)測(cè)試,允許進(jìn)行運(yùn)行時(shí)性能比較
·性能分析(或分析工具),可幫助突出顯示熱點(diǎn)或資源使用情況
其中一些特性可以合并到集成開(kāi)發(fā)環(huán)境(IDE)中。
審核編輯 :李倩
-
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5772瀏覽量
84667 -
代碼
+關(guān)注
關(guān)注
30文章
4896瀏覽量
70571
原文標(biāo)題:自動(dòng)化測(cè)試
文章出處:【微信號(hào):QCDZYJ,微信公眾號(hào):汽車(chē)電子工程知識(shí)體系】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
電池電量的兩種測(cè)試方法
手機(jī)自動(dòng)化測(cè)試方法
討論Linux系統(tǒng)中設(shè)置開(kāi)機(jī)自動(dòng)運(yùn)行的兩種方法
基于LabVIEW的自動(dòng)化控制和編程設(shè)計(jì)
LCD1602初始化流程圖及程序的兩種方法

使用jdbc連接上oracle的兩種方法
NI針對(duì)自動(dòng)化和定制化的測(cè)試需求提出兩種平臺(tái)化方案
簡(jiǎn)述人工智能和機(jī)器學(xué)習(xí)實(shí)現(xiàn)完全自動(dòng)化的5種方法
AVR單片機(jī)在電機(jī)轉(zhuǎn)速測(cè)量中兩種方法總結(jié)

STM32操作矩陣鍵盤(pán)的兩種方法——掃描和中斷

簡(jiǎn)述安裝打印機(jī)驅(qū)動(dòng)的兩種方法

評(píng)論