如何正確理解自動(dòng)化測試技術(shù) 自動(dòng)化測試框架
談到自動(dòng)化測試,一般就會(huì )提到測試工具。許多人覺(jué)得使用了一、兩個(gè)測試工具就是實(shí)現了測試自動(dòng)化,這種理解是不對的,至少是片面的。的確,測試工具的使用是自動(dòng)化測試的一部分工作,但“用測試工具進(jìn)行測試”不等于“自動(dòng)化測試”。那什么是“自動(dòng)化測試”? 半自動(dòng)化測試過(guò)程,算不算自動(dòng)化測試?是否可以為“自動(dòng)化測試”給出如下定義?
以自動(dòng)化的方式完成測試?
測試過(guò)程的自動(dòng)化?
將手工測試的過(guò)程變成了自動(dòng)化測試的過(guò)程?
擺脫手工測試的各種途徑和方法?
自動(dòng)化為測試而存在的,所以自動(dòng)化測試的真正含義可以理解為“一切可以由測試是相對手計算機系統自動(dòng)完成的測試任務(wù)都已經(jīng)由計算機系統或軟件工具、程序來(lái)承擔并自動(dòng)執行”。它包含了下列3層含義:
“一切”,不僅僅指測試執行的工作——對被測試的對象進(jìn)行驗證,還包括測試的其它工作,如缺陷管理、測試管理、環(huán)境安裝、設置和維護等。
“可以”,意味著(zhù)某些工作無(wú)法由系統自動(dòng)完成,如腳本的開(kāi)發(fā)、測試用例的設計,需要創(chuàng )造性,其工作需要手工處理。
即使由系統進(jìn)行自動(dòng)化測試,還少不了人的干預,包括事先安排自動(dòng)化測試任務(wù)、測試結果分析、調試測試腳本等。
嚴格意義上,“自動(dòng)化測試(Automated Testing)”不等于“測試自動(dòng)化(Test Automation)”。自動(dòng)化測試,模擬手工測試步驟,通過(guò)執行程序語(yǔ)言編制的測試腳本自動(dòng)地測試軟件,自動(dòng)地實(shí)施軟件的單元測試、功能測試、負載測試或性能測試等。自動(dòng)化測試集中體現在實(shí)際測試執行(test execution)的過(guò)程,也就是由手工逐個(gè)地運行測試用例的操作過(guò)程被測試工具自動(dòng)執行的過(guò)程所代替。自動(dòng)化測試,強調借助工具(不僅僅是工具,有時(shí)包括策略和工件)來(lái)完成測試的執行,也就是用工具來(lái)幫助或輔助測試,這個(gè)執行過(guò)程可能是全自動(dòng)的,也可能是半自動(dòng)的。
測試自動(dòng)化的要求高得多,側重說(shuō)明將測試用自動(dòng)化設計和實(shí)現的過(guò)程,即所有的測試工作都能有計算機系統自動(dòng)完成,包括:
測試環(huán)境的搭建和設置,如上載安裝包到服務(wù)器;
腳本自動(dòng)生成,如根據UML狀態(tài)圖、時(shí)序圖等生成可運行的測試腳本;
測試數據的自動(dòng)產(chǎn)生,例如自動(dòng)產(chǎn)生數據負載測試所需要的大量數據;
測試操作步驟的自動(dòng)執行,包括測試執行過(guò)程的控制;
測試結果分析,實(shí)際輸出和預期輸出的自動(dòng)對比分析;
測試流程的自動(dòng)處理,即測試工作流的自動(dòng)實(shí)現,包括測試計劃復審和批準、測試任務(wù)安排和執行、缺陷生命周期等流程的自動(dòng)化處理。
測試報告自動(dòng)生成功能等。
這樣,測試自動(dòng)化意味著(zhù)測試全過(guò)程的自動(dòng)化和測試管理工作的完全自動(dòng)化,是測試工程師所追求的一種理想境界,但是很難實(shí)現的。往往不能完全通過(guò)全自動(dòng)化過(guò)程來(lái)完成一個(gè)完整的測試任務(wù),自動(dòng)化到不需要人工參與的程度是不現實(shí)的。雖然不能完全實(shí)現那種理想境界,但是我們每時(shí)每刻可以向這個(gè)方向去思考,優(yōu)化每項工作,一切可以由計算機系統自動(dòng)完成的測試任務(wù)都已經(jīng)由計算機系統或工具來(lái)承擔并自動(dòng)執行。
在一般情況下,人們并不嚴格區分“自動(dòng)化測試”和“測試自動(dòng)化”,就是通過(guò)工具或程序來(lái)對軟件進(jìn)行測試,一般不需要大量的手工操作來(lái)完成測試,而只要很少的人工干預。自動(dòng)化測試,理應從工作效率和產(chǎn)品質(zhì)量的目的出發(fā),而不是為了自動(dòng)化而自動(dòng)化,在某些時(shí)刻,也可能得不償失,即投入過(guò)大,產(chǎn)出遠遠小于投入。脫離了目的,測試人員可能會(huì )變成自動(dòng)化測試的奴隸。奢想做到百分之百地實(shí)現自動(dòng)化測試,不僅不現實(shí),所引起的代價(jià)可能會(huì )非常大,而且可能引起負面性,造成質(zhì)量水平的降低。
最后,我們還不得不承認,自動(dòng)化測試和手工測試往往交織在一起,相互補充,工具執行過(guò)程往往需要人工分析,手工測試時(shí)也可以借助工具處理某些數據、日志或顯示某些信息。也就是說(shuō),不是試圖用自動(dòng)化測試來(lái)代替所有的手工測試,而應該在尊重手工測試的同時(shí),盡量采用自動(dòng)化測試,根據各自的特點(diǎn)充分發(fā)揮各自的優(yōu)勢,使手工測試和自動(dòng)化測試實(shí)現完美結合。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/