軟件的自動化測試論文

當一個軟件從雛形到真正的在一臺計算機上運行的時候,誰也不能保證計算機軟件能一步到位的滿足人們的需求。所以就有了軟件測試。以下是小編整理的軟件的自動化測試論文,希望能讓你更加了解軟件的自動化測試。

軟件的自動化測試論文

1、軟件測試自動化簡介

談到自動化測試,一般就會提到測試工具。許多人覺得使用測試工具就是實現了測試自動化,這種理解是不對的,至少是片面的。的確,測試工具的使用是自動化測試的一部分工作,但“用測試工具進行測試”不等於“自動化測試”。

自動化爲測試而存在的,所以自動化測試的真正含義可以理解爲“一切可以由測試是相對手計算機系統自動完成的測試任務都已經由計算機系統或軟件工具、程序來承擔並自動執行”。它包含了下列3層含義:

“一切”,不僅僅指測試執行的工作——對被測試的對象進行驗證,還包括測試的其它工作,如缺陷管理、測試管理、環境安裝、設置和維護等。

“可以”,意味着某些工作無法由系統自動完成,如腳本的開發、測試用例的設計,需要創造性,其工作需要手工處理。

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

嚴格意義上,“自動化測試(Automated Testing)”不等於“測試自動化(Test Automation)”。自動化測試,模擬手工測試步驟,通過執行程序語言編制的測試腳本自動地測試軟件,自動地實施軟件的單元測試、功能測試、負載測試或性能測試等。自動化測試集中體現在實際測試執行(test execution)的過程,也就是由手工逐個地運行測試用例的操作過程被測試工具自動執行的過程所代替。自動化測試,強調藉助工具(不僅僅是工具,有時包括策略和工件)來完成測試的執行,也就是用工具來幫助或輔助測試,這個執行過程可能是全自動的,也可能是半自動的。

測試自動化的要求高得多,側重說明將測試用自動化設計和實現的過程,即所有的測試工作都能有計算機系統自動完成,包括:測試環境的搭建和設置,如上載安裝包到服務器;腳本自動生成,如根據UML狀態圖、時序圖等生成可運行的測試腳本;測試數據的自動產生,例如自動產生數據負載測試所需要的大量數據;測試操作步驟的自動執行,包括測試執行過程的控制;測試結果分析,實際輸出和預期輸出的自動對比分析;測試流程的自動處理,即測試工作流的自動實現,包括測試計劃複審和批准、測試任務安排和執行、缺陷生命週期等流程的自動化處理。測試報告自動生成功能等。

這樣,測試自動化意味着測試全過程的自動化和測試管理工作的完全自動化,是測試工程師所追求的一種理想境界,但是很難實現的。

自動化測試方案選擇需要考慮的方面:

自動化測試和手工測試都不影響測試的有效性和仿效性,自動化測試只是對測試的經濟性和修改性有影響,自動化測試通常要比手動測試經濟得多,自動化測試的方法越好,長期使用獲得的收益就越大。

2、採用什麼樣的自動化測試方案,需要考慮以下幾個方面的因素

1)項目的影響:自動化測試能否幫助你的項目進度、覆蓋率、風險,或者讓開發更敏捷?

2)複雜度:自動化是否容易實現,包括數據和其他環境的影響。

3)時間:自動化測試的實現需要多少時間?

4)早期需求和代碼的穩定性:需求或早期的代碼是否能證明是在範圍內變化的?

5)維護工作量:代碼是否能長期保持相對穩定?功能特性是否會進化?

6)覆蓋率:自動化測試能否覆蓋程序的關鍵特性和功能?

7)資源:測試組是否擁有足夠的人力資源、硬件資源和數據資源來運行自動化測試。

8)自動化測試的執行:負責執行自動化測試的小組是否擁有足夠的技能和時間去運行自動化測試。

3、適合自動化測試的場景主要爲

1)測試任務明確,不會頻繁變動。2)每日構建後的測試驗證。3)迴歸測試、壓力測試、性能測試。4)軟件系統界面穩定,改動較少。5)需要在多種平臺上運行相同的測試案例、組合遍歷型的測試、大量重複的測試任務。6)軟件維護週期長。7)待測軟件系統開發比較規範,能夠保證系統的可測性。8)項目進度壓力不大。9)具備大容量的自動化測試平臺。10)測試人員具備較強的編程能力。

4、軟件測試自動化的實施步驟

我們對自動化測試充滿了希望,然而,自動化測試卻經常帶給我們沮喪和失望。雖然,自動化測試可以把我們從困難的環境中解放出來,在實施自動化測試解決問題的同時,又帶來同樣多的`問題。本文介紹自動化測試的6個步驟:改進自動化測試過程,定義需求,驗證概念,支持產品的可測試性,具有可延續性的設計(design for sustainability),有計劃的部署等。

首先了解下幾個使自動化測試項目陷入困境的原因:

1)自動化測試時間不充足。

2)缺乏經驗:嘗試測試自己的程序的程序員經常採用自動化測試。由於缺乏經驗,很難保證自動化測試的順利開展。

3)更新換代頻繁(High turnover):當自動化測試更新換代頻繁的時候,你就喪失了剛剛學習到的自動化測試經驗。

4)不願思考軟件測試:很多人發現實現產品的自動化測試比測試本身更有趣。自動化工程師不參與到軟件測試的具體活動中。

5)關注於技術:如何實現軟件的自動化測試是個技術問題。不過,過多的關注如何實現自動化測試,導致忽略了自動化測試方案是否符合測試需要。

在自動化測試開發過程中遵守已經建立的軟件開發規則,按照在軟件開發項目中採用的標準步驟,實現測試自動化:

步驟一:改進軟件測試過程。

採用列有產品特性的列表,然後對照列表檢查。迴歸測試檢查列表可以告訴應該測試哪些方面。在開始測試之前,需要完善迴歸測試檢查表,並且確保已經採用了確定的的測試方法,指明測試中需要什麼樣的數據,並給出設計數據的完整方法。確認可以提供上面提到的文檔後,需要明確測試設計的細節描述,還應該描述測試的預期結果。在開始更爲完全意義上的測試自動化之前,必須已經完成了測試設計文檔。測試設計是測試自動化最主要的測試需求說明。

步驟二:定義需求。

應該有一份自動化測試需求,用來描述需要測試什麼。測試需求應該在測試設計階段詳細描述出來,自動化測試需求描述了自動化測試的目標。

步驟三:驗證概念。

儘可能快地驗證採用的測試工具和測試方法的可行性,站在產品的角度驗證所測試的產品採用自動化測試的可行性。需要儘快地找出可行性問題的答案,需要確定你的測試工具和測試方法對於被測試的產品和測試人員是否合適。

驗證概念的試驗主要有:

迴歸測試:迴歸測試是最宜採用自動化測試的環節。

配置測試:你的軟件支持多少種不同的平臺?你打算在所有支持的平臺上測試執行所有的測試用例嗎?那麼採用自動化測試是有幫助的。

測試環境建立:對於大量不同的測試用例,可能需要相同的測試環境搭建過程。在開展自動化測試執行之前,先把測試環境搭建實現自動化。

非GUI測試:實現命令行和API的測試自動化比GUI自動化測試容易的多。

步驟四:支持產品的可測試性。

軟件產品一般會用到下面三種不同類別的接口:命令行接口(command line interfaces,縮寫CLIs)、應用程序接口(API)、圖形用戶接口(GUI)。

無論你需要支持圖形界面接口、命令行接口還是API接口,如果你儘可能早的在產品設計階段提出產品的可測試性設計需求,你很可能成功。

步驟五:具有可延續性的設計。

自動化測試設計中考慮自動化在未來的可擴充性是很關鍵的,不過,自動化測試的完整性也是很重要的。把注意力放在通過設計保證測試的可延續性上,選擇一個合適的測試體系架構,將進一步邁向成功的自動化測試。主要從以下幾方面考慮,測試的可檢視性、測試的可維護性、測試的完整性、測試的獨立性、測試的可重複性。

步驟六:有計劃的部署。

需要提供自動化測試程序的安裝文檔和使用文檔,保證自動化測試程序容易安裝和配置。

5、結束語

最後,我們還不得不承認,自動化測試和手工測試往往交織在一起,相互補充,工具執行過程往往需要人工分析,手工測試時也可以藉助工具處理某些數據、日誌或顯示某些信息。也就是說,不是試圖用自動化測試來代替所有的手工測試,而應該在尊重手工測試的同時,遵守已經建立的軟件開發規則,按照在軟件開發項目中採用的標準步驟,實現測試自動化。