如何正確理解自動化測試技術

2021-04-30 13:14:57 字數 2108 閱讀 2015

談到自動化測試,一般就會提到測試工具。許多人覺得使用了

一、兩個測試工具就是實現了測試自動化,這種理解是不對的,至少是片面的。的確,測試工具的使用是自動化測試的一部分工作,但

「用測試工具進行測試

」不等於

「自動化測試

」。那什麼是

「自動化測試」?

半自動化測試過程,算不算自動化測試?是否可以為

「自動化測試

」給出如下定義?

以自動化的方式完成測試?

測試過程的自動化?

將手工測試的過程變成了自動化測試的過程?

擺脫手工測試的各種途徑和方法?

自動化為測試而存在的,所以自動化測試的真正含義可以理解為

「一切可以由測試是相對手計算機系統自動完成的測試任務都已經由計算機系統或軟體工具、程式來承擔並自動執行

」。它包含了下列

3層含義:

「一切」,不僅僅指測試執行的工作

——對被測試的物件進行驗證,還包括測試的其它工作,如缺陷管理、測試管理、環境安裝、設定和維護等。

「可以」,意味著某些工作無法由系統自動完成,如指令碼的開發、測試用例的設計,需要創造性,其工作需要手工處理。

即使由系統進行自動化測試,還少不了人的干預,包括事先安排自動化測試任務、測試結果分析、除錯測試指令碼等。

嚴格意義上,

「自動化測試(

automated testing)」

不等於「

測試自動化(

test automation)」

。自動化測試,模擬手工測試步驟,通過執行程式語言編制的測試指令碼自動地測試軟體,自動地實施軟體的單元測試、功能測試、負載測試或效能測試等。自動化測試集中體現在實際測試執行(

test execution

)的過程,也就是由手工逐個地執行測試用例的操作過程被測試工具自動執行的過程所代替。自動化測試,強調借助工具(不僅僅是工具,有時包括策略和工件)來完成測試的執行,也就是用工具來幫助或輔助測試,這個執行過程可能是全自動的,也可能是半自動的。

測試自動化的要求高得多,側重說明將測試用自動化設計和實現的過程,即所有的測試工作都能有計算機系統自動完成,包括:

測試環境的搭建和設定,如上載安裝包到伺服器;

指令碼自動生成,如根據

uml狀態圖、時序圖

等生成可執行的測試指令碼;

測試資料的自動產生,例如自動產生資料負載測試所需要的大量資料;

測試操作步驟的自動執行,包括測試執行過程的控制;

測試結果分析,實際輸出和預期輸出的自動對比分析;

測試流程的自動處理,即測試工作流的自動實現,包括測試計畫複審和批准、測試任務安排和執行、缺陷生命週期等流程的自動化處理。

測試報告自動生成功能等。

這樣,測試自動化意味著測試全過程的自動化和測試管理工作的完全自動化,是測試工程師所追求的一種理想境界,但是很難實現的。往往不能完全通過全自動化過程來完成乙個完整的測試任務,自動化到不需要人工參與的程度是不現實的。雖然不能完全實現那種理想境界,但是我們每時每刻可以向這個方向去思考,優化每項工作,一切可以由計算機系統自動完成的測試任務都已經由計算機系統或工具來承擔並自動執行。

在一般情況下,人們並不嚴格區分

「自動化測試」和

「測試自動化

」,就是通過工具或程式來對軟體進行測試,一般不需要大量的手工操作來完成測試,而只要很少的人工干預。自動化測試,理應從工作效率和產品質量的目的出發,而不是為了自動化而自動化,在某些時刻,也可能得不償失,即投入過大,產出遠遠小於投入。脫離了目的,測試人員可能會變成自動化測試的奴隸。奢想做到百分之百地實現自動化測試,不僅不現實,所引起的代價可能會非常大,而且可能引起負面性,造成質量水平的降低。(說的可怕地,自己把握度啦)

最後,我們還不得不承認,自動化測試和手工測試往往交織在一起,相互補充,工具執行過程往往需要人工分析,手工測試時也可以借助工具處理某些資料、日誌或顯示某些資訊。也就是說,不是試圖用自動化測試來代替所有的手工測試,而應該在尊重手工測試的同時,盡量採用自動化測試,根據各自的特點充分發揮各自的優勢,使手工測試和自動化測試實現完美結合。(目前,我應該沒有陷入盲目地追求自動化測試的死胡同裡,完美結合,各自發揮優勢。)

如何正確理解自動化測試?

談到自動化測試,一般就會提到測試工具。許多人覺得使用了 一 兩個測試工具就是實現了測試自動化,這種理解是不對的,至少是片面的。的確,測試工具的使用是自動化測試的一部分工作,但 用測試工具進行測試 不等於 自動化測試 那什麼是 自動化測試 半自動化測試過程,算不算自動化測試?是否可以為 自動化測試 給...

如何正確理解自動化測試?

談到自動化測試,一般就會提到測試工具。許多人覺得使用了 一 兩個測試工具就是實現了測試自動化,這種理解是不對的,至少是片面的。的確,測試工具的使用是自動化測試的一部分工作,但 用測試工具進行測試 不等於 自動化測試 那什麼是 自動化測試 半自動化測試過程,算不算自動化測試?是否可以為 自動化測試 給...

python自動化測試,自動化基本技術原理

在之前的文章裡面提到過 做自動化的首要本領就是要會 透過現象看本質 落實到實際的it工作中就是 透過介面看資料。掌握上面的這樣的本領可不是容易的事情,必須要有紮實的計算機理論基礎,才能看到深層次的本質東西。資料庫應用系統 可能是最典型的網路應用程式了,關於它的軟體架構如下 一般在邏輯上分為4層 使用...