當(dāng)一個(gè)軟件從雛形到真正的在一臺計(jì)算機(jī)上運(yùn)行的時(shí)候,誰也不能保證計(jì)算機(jī)軟件能一步到位的滿足人們的需求。所以就有了軟件測試。以下是小編整理的軟件的自動化測試論文,希望能讓你更加了解軟件的自動化測試。
1、軟件測試自動化簡介
談到自動化測試,一般就會提到測試工具。許多人覺得使用測試工具就是實(shí)現(xiàn)了測試自動化,這種理解是不對的,至少是片面的。的確,測試工具的使用是自動化測試的一部分工作,但“用測試工具進(jìn)行測試”不等于“自動化測試”。
自動化為測試而存在的,所以自動化測試的真正含義可以理解為“一切可以由測試是相對手計(jì)算機(jī)系統(tǒng)自動完成的測試任務(wù)都已經(jīng)由計(jì)算機(jī)系統(tǒng)或軟件工具、程序來承擔(dān)并自動執(zhí)行”。它包含了下列3層含義:
“一切”,不僅僅指測試執(zhí)行的工作——對被測試的對象進(jìn)行驗(yàn)證,還包括測試的其它工作,如缺陷管理、測試管理、環(huán)境安裝、設(shè)置和維護(hù)等。
“可以”,意味著某些工作無法由系統(tǒng)自動完成,如腳本的開發(fā)、測試用例的設(shè)計(jì),需要?jiǎng)?chuàng)造性,其工作需要手工處理。
即使由系統(tǒng)進(jìn)行自動化測試,還少不了人的干預(yù),包括事先安排自動化測試任務(wù)、測試結(jié)果分析、調(diào)試測試腳本等。
嚴(yán)格意義上,“自動化測試(Automated Testing)”不等于“測試自動化(Test Automation)”。自動化測試,模擬手工測試步驟,通過執(zhí)行程序語言編制的測試腳本自動地測試軟件,自動地實(shí)施軟件的單元測試、功能測試、負(fù)載測試或性能測試等。自動化測試集中體現(xiàn)在實(shí)際測試執(zhí)行(test execution)的過程,也就是由手工逐個(gè)地運(yùn)行測試用例的操作過程被測試工具自動執(zhí)行的過程所代替。自動化測試,強(qiáng)調(diào)借助工具(不僅僅是工具,有時(shí)包括策略和工件)來完成測試的執(zhí)行,也就是用工具來幫助或輔助測試,這個(gè)執(zhí)行過程可能是全自動的,也可能是半自動的。
測試自動化的要求高得多,側(cè)重說明將測試用自動化設(shè)計(jì)和實(shí)現(xiàn)的過程,即所有的測試工作都能有計(jì)算機(jī)系統(tǒng)自動完成,包括:測試環(huán)境的搭建和設(shè)置,如上載安裝包到服務(wù)器;腳本自動生成,如根據(jù)UML狀態(tài)圖、時(shí)序圖等生成可運(yùn)行的測試腳本;測試數(shù)據(jù)的自動產(chǎn)生,例如自動產(chǎn)生數(shù)據(jù)負(fù)載測試所需要的大量數(shù)據(jù);測試操作步驟的自動執(zhí)行,包括測試執(zhí)行過程的控制;測試結(jié)果分析,實(shí)際輸出和預(yù)期輸出的自動對比分析;測試流程的自動處理,即測試工作流的自動實(shí)現(xiàn),包括測試計(jì)劃復(fù)審和批準(zhǔn)、測試任務(wù)安排和執(zhí)行、缺陷生命周期等流程的自動化處理。測試報(bào)告自動生成功能等。
這樣,測試自動化意味著測試全過程的自動化和測試管理工作的完全自動化,是測試工程師所追求的一種理想境界,但是很難實(shí)現(xiàn)的。
自動化測試方案選擇需要考慮的方面:
自動化測試和手工測試都不影響測試的有效性和仿效性,自動化測試只是對測試的經(jīng)濟(jì)性和修改性有影響,自動化測試通常要比手動測試經(jīng)濟(jì)得多,自動化測試的方法越好,長期使用獲得的收益就越大。
2、采用什么樣的自動化測試方案,需要考慮以下幾個(gè)方面的因素
1)項(xiàng)目的影響:自動化測試能否幫助你的項(xiàng)目進(jìn)度、覆蓋率、風(fēng)險(xiǎn),或者讓開發(fā)更敏捷?
2)復(fù)雜度:自動化是否容易實(shí)現(xiàn),包括數(shù)據(jù)和其他環(huán)境的影響。
3)時(shí)間:自動化測試的實(shí)現(xiàn)需要多少時(shí)間?
4)早期需求和代碼的穩(wěn)定性:需求或早期的代碼是否能證明是在范圍內(nèi)變化的?
5)維護(hù)工作量:代碼是否能長期保持相對穩(wěn)定?功能特性是否會進(jìn)化?
6)覆蓋率:自動化測試能否覆蓋程序的關(guān)鍵特性和功能?
7)資源:測試組是否擁有足夠的人力資源、硬件資源和數(shù)據(jù)資源來運(yùn)行自動化測試。
8)自動化測試的執(zhí)行:負(fù)責(zé)執(zhí)行自動化測試的小組是否擁有足夠的技能和時(shí)間去運(yùn)行自動化測試。
3、適合自動化測試的場景主要為
1)測試任務(wù)明確,不會頻繁變動。2)每日構(gòu)建后的測試驗(yàn)證。3)回歸測試、壓力測試、性能測試。4)軟件系統(tǒng)界面穩(wěn)定,改動較少。5)需要在多種平臺上運(yùn)行相同的測試案例、組合遍歷型的測試、大量重復(fù)的測試任務(wù)。6)軟件維護(hù)周期長。7)待測軟件系統(tǒng)開發(fā)比較規(guī)范,能夠保證系統(tǒng)的可測性。8)項(xiàng)目進(jìn)度壓力不大。9)具備大容量的自動化測試平臺。10)測試人員具備較強(qiáng)的編程能力。
4、軟件測試自動化的實(shí)施步驟
我們對自動化測試充滿了希望,然而,自動化測試卻經(jīng)常帶給我們沮喪和失望。雖然,自動化測試可以把我們從困難的環(huán)境中解放出來,在實(shí)施自動化測試解決問題的同時(shí),又帶來同樣多的問題。本文介紹自動化測試的6個(gè)步驟:改進(jìn)自動化測試過程,定義需求,驗(yàn)證概念,支持產(chǎn)品的可測試性,具有可延續(xù)性的設(shè)計(jì)(design for sustainability),有計(jì)劃的部署等。
首先了解下幾個(gè)使自動化測試項(xiàng)目陷入困境的原因:
1)自動化測試時(shí)間不充足。
2)缺乏經(jīng)驗(yàn):嘗試測試自己的程序的程序員經(jīng)常采用自動化測試。由于缺乏經(jīng)驗(yàn),很難保證自動化測試的順利開展。
3)更新?lián)Q代頻繁(High turnover):當(dāng)自動化測試更新?lián)Q代頻繁的時(shí)候,你就喪失了剛剛學(xué)習(xí)到的自動化測試經(jīng)驗(yàn)。
4)不愿思考軟件測試:很多人發(fā)現(xiàn)實(shí)現(xiàn)產(chǎn)品的自動化測試比測試本身更有趣。自動化工程師不參與到軟件測試的具體活動中。
5)關(guān)注于技術(shù):如何實(shí)現(xiàn)軟件的自動化測試是個(gè)技術(shù)問題。不過,過多的關(guān)注如何實(shí)現(xiàn)自動化測試,導(dǎo)致忽略了自動化測試方案是否符合測試需要。
在自動化測試開發(fā)過程中遵守已經(jīng)建立的軟件開發(fā)規(guī)則,按照在軟件開發(fā)項(xiàng)目中采用的標(biāo)準(zhǔn)步驟,實(shí)現(xiàn)測試自動化:
步驟一:改進(jìn)軟件測試過程。
采用列有產(chǎn)品特性的列表,然后對照列表檢查;貧w測試檢查列表可以告訴應(yīng)該測試哪些方面。在開始測試之前,需要完善回歸測試檢查表,并且確保已經(jīng)采用了確定的的測試方法,指明測試中需要什么樣的數(shù)據(jù),并給出設(shè)計(jì)數(shù)據(jù)的完整方法。確認(rèn)可以提供上面提到的文檔后,需要明確測試設(shè)計(jì)的細(xì)節(jié)描述,還應(yīng)該描述測試的預(yù)期結(jié)果。在開始更為完全意義上的測試自動化之前,必須已經(jīng)完成了測試設(shè)計(jì)文檔。測試設(shè)計(jì)是測試自動化最主要的測試需求說明。
步驟二:定義需求。
應(yīng)該有一份自動化測試需求,用來描述需要測試什么。測試需求應(yīng)該在測試設(shè)計(jì)階段詳細(xì)描述出來,自動化測試需求描述了自動化測試的目標(biāo)。
步驟三:驗(yàn)證概念。
盡可能快地驗(yàn)證采用的測試工具和測試方法的可行性,站在產(chǎn)品的角度驗(yàn)證所測試的產(chǎn)品采用自動化測試的可行性。需要盡快地找出可行性問題的答案,需要確定你的測試工具和測試方法對于被測試的產(chǎn)品和測試人員是否合適。
驗(yàn)證概念的試驗(yàn)主要有:
回歸測試:回歸測試是最宜采用自動化測試的環(huán)節(jié)。
配置測試:你的軟件支持多少種不同的平臺?你打算在所有支持的平臺上測試執(zhí)行所有的測試用例嗎?那么采用自動化測試是有幫助的。
測試環(huán)境建立:對于大量不同的測試用例,可能需要相同的測試環(huán)境搭建過程。在開展自動化測試執(zhí)行之前,先把測試環(huán)境搭建實(shí)現(xiàn)自動化。
非GUI測試:實(shí)現(xiàn)命令行和API的測試自動化比GUI自動化測試容易的多。
步驟四:支持產(chǎn)品的可測試性。
軟件產(chǎn)品一般會用到下面三種不同類別的接口:命令行接口(command line interfaces,縮寫CLIs)、應(yīng)用程序接口(API)、圖形用戶接口(GUI)。
無論你需要支持圖形界面接口、命令行接口還是API接口,如果你盡可能早的在產(chǎn)品設(shè)計(jì)階段提出產(chǎn)品的可測試性設(shè)計(jì)需求,你很可能成功。
步驟五:具有可延續(xù)性的設(shè)計(jì)。
自動化測試設(shè)計(jì)中考慮自動化在未來的可擴(kuò)充性是很關(guān)鍵的,不過,自動化測試的完整性也是很重要的。把注意力放在通過設(shè)計(jì)保證測試的可延續(xù)性上,選擇一個(gè)合適的測試體系架構(gòu),將進(jìn)一步邁向成功的自動化測試。主要從以下幾方面考慮,測試的可檢視性、測試的可維護(hù)性、測試的完整性、測試的獨(dú)立性、測試的可重復(fù)性。
步驟六:有計(jì)劃的部署。
需要提供自動化測試程序的安裝文檔和使用文檔,保證自動化測試程序容易安裝和配置。
5、結(jié)束語
最后,我們還不得不承認(rèn),自動化測試和手工測試往往交織在一起,相互補(bǔ)充,工具執(zhí)行過程往往需要人工分析,手工測試時(shí)也可以借助工具處理某些數(shù)據(jù)、日志或顯示某些信息。也就是說,不是試圖用自動化測試來代替所有的手工測試,而應(yīng)該在尊重手工測試的同時(shí),遵守已經(jīng)建立的軟件開發(fā)規(guī)則,按照在軟件開發(fā)項(xiàng)目中采用的標(biāo)準(zhǔn)步驟,實(shí)現(xiàn)測試自動化。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時(shí)刪除。