劉智萍
摘要:針對當前手工測試無法滿足軟件測試的問題,通過軟件工程生命周期來分析測試自動化。首先對軟件工程的生命周期進行分析;其次對軟件測試自動化的定義進行了總結性描述,并分析了測試自動化的生命周期;最后對手機通信系統(tǒng)的測試自動化進行了分析。研究結論:對于軟件工程師和測試人員有著積極的作用。
關鍵詞:軟件工程;測試自動化;生命周期
中圖分類號:TB文獻標識碼:A文章編號:16723198(2014)14019402
隨著IT行業(yè)的迅猛發(fā)展,軟件所開發(fā)的功能越來越多,其軟件測試所需的花費也隨之增加。當發(fā)現(xiàn)軟件故障越晚,其花費的成本將更大。因此,越早發(fā)現(xiàn)軟件在設計中的故障,將會減少軟件的開發(fā)壓力并節(jié)省開發(fā)的時間。隨著技術的提高,測試自動化技術受到IT業(yè)內(nèi)的好評,在一定程度上節(jié)省了人力和財力的投入,但是測試自動化和軟件的生命周期沒有有效地進行結合,使得測試做了許多的無用功。
1軟件工程生命周期
1.1階段劃分
軟件的生命周期主要由軟件定義、軟件開發(fā)和軟件維護三部分組成。對于軟件的各個不同階段,盡可能地將軟件的開發(fā)設計工作劃分為具體的任務,并且使任務之間的關聯(lián)性降低,盡可能地相互獨立,從而可以有效地降低軟件開發(fā)的復雜性,利于軟件開發(fā)工作的組織管理,簡化其工作流程。
1.2軟件定義時期
對軟件進行定義的主要目的是明確軟件開發(fā)工作的總目標和該軟件工程的可行性,分析軟件系統(tǒng)需要實現(xiàn)的具體功能及采取何種手段實現(xiàn)該功能,并對整個系統(tǒng)所需要的成本和資源進行初步的估算,設計出工程的進度表。該階段的工作主要由系統(tǒng)分析員完成,其主要工作有:
(1)問題描述和可行性分析。
進行此階段分析時,主要由軟件系統(tǒng)的需求方和軟件開發(fā)方相互協(xié)商,明確軟件系統(tǒng)的目標及可行性。
問題描述主要是明確需要解決什么問題,對問題進行準確的定位,將問題的困難程度、性質、規(guī)模及目標等內(nèi)容以書面的形式進行描述,并上報給上級主管部門。對軟件需求方的使用者進行走訪,對問題的理解進行扼要的描述,并將寫好的報告反饋給用戶,查看問題的描述是否準確,統(tǒng)一雙方的意見,直至達到最終的協(xié)議。
對于可行性的分析,當前對于該定義并沒有給出明確的定義,其主要目的是描述該系統(tǒng)是否值得去做,是否有合適的技術能夠解決此問題。在該階段的可行性相對比較簡短,只是從總體上進行分析,并不涉及具體的問題。
(2)分析需求。
明確軟件系統(tǒng)可行之后,就需要對軟件的功能進行詳細的分析,即:為了達到使用者的要求,軟件系統(tǒng)必須能夠做什么和具備哪些具體的功能。另外,用戶當進行軟件操作時,必須有個清晰的認識,利用該軟件系統(tǒng)要達到哪個具體的目標。開發(fā)人員和使用者必須進行詳細的、準確的溝通,利用數(shù)據(jù)模型、數(shù)據(jù)字典、數(shù)據(jù)流圖及算法設計出整個軟件系統(tǒng)的邏輯模型。在該階段,必須讓用戶參加,并給出具體的意見。
1.3軟件開發(fā)時期
對于軟件的開發(fā),主要由計劃、設計、編碼和測試四部分組成,計劃和設計是系統(tǒng)設計,編碼和測試是系統(tǒng)實現(xiàn)。
軟件的開發(fā)由計劃開始,完善的計劃可以為軟件的開發(fā)節(jié)省大量的時間和精力;設計是在計劃的基礎上,進一步的完善,給出問題的每一個步驟,是對整個系統(tǒng)功能的完整描述;系統(tǒng)設計完成后,開始進行編碼操作,即對問題的具體實現(xiàn),在編碼中,要符合編寫規(guī)范的要求,保證程序的易讀易維護;沒有一個軟件是一次編寫成功的,需要反復的測試才行,當前的測試從小到大,分別是單元測試、集成測試和驗收測試,每次測試都要進行詳細的記錄,為以后軟件的維護打好基礎。
1.4軟件維護時期
如果說前面的步驟是軟件的實現(xiàn)過程,那么軟件的維護時期就是軟件的使用過程,軟件的維護時期最長,由于軟件隨著使用環(huán)境的不斷變化,軟件的功能逐漸不能滿足用戶的需求和無法正常使用,為了延長軟件的使用壽命,必須對軟件進行維護處理。對于軟件的維護活動主要分為4類,分別是:改正性維護、完善性維護、適應性維護和預防性維護。根據(jù)維護的情況不同,每個維護都要有詳細的報告,通過報告來進行制定維護計劃、修改軟件設計、代碼修改和測試等一系列的過程。
2測試自動化
開發(fā)人員設計好程序之后,無法直接投入使用,需要對代碼進行測試,而軟件測試是一個非常煩瑣的過程。據(jù)統(tǒng)計,軟件工程人員無法及時交付軟件的主要原因是在規(guī)定的時間內(nèi)沒有對軟件進行完整的測試和修訂。21世紀,時間就是金錢,時間就是企業(yè)的生命,軟件投入市場越早,就越有可能提前掌握先機,從而獲得更高的利潤。
傳統(tǒng)的軟件測試方法無疑已經(jīng)無法適應當前IT行業(yè)的發(fā)展,自動化測試軟件可以使測試流水化,使得在較短的時間內(nèi)充分對軟件進行測試,現(xiàn)在,越來越多的軟件企業(yè)選擇測試自動化。
2.1測試自動化的定義
當前,對于測試自動化的定義比較多,但總結起來為:能夠通過自動化的測試工具,針對軟件測試,在預設條件下運行系統(tǒng)或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。從而達到減輕手工測試的勞動量,節(jié)省測試時間的目的。
測試自動化在很多情況下都具有非常大的使用價值,例如在進行腳本測試時,可以產(chǎn)生許多重復調(diào)用的代碼,在進行壓力測試時,可重用很多次該腳本。如果利用手工測試方式進行壓力測試,那么可能要花費相當長的時間,而且有時有些軟件的缺陷還不能及時地發(fā)現(xiàn),測試自動化保證了軟件的穩(wěn)定性和準確性。
2.2測試自動化的生命周期
進行自動化測試的工具也是一種軟件,有其自身的生命周期,主要分為需求分析、計劃、設計、實現(xiàn)、集成、維護和終結等過程。
對于需求分析階段,主要是對測試的用例進行詳細的分析,明確測試用例的可行性,考察用例是否可以重復利用,對測試有何價值;在計劃階段,設計測試的進度和生成相關的文檔;設計主要是描述自動化測試的模塊,而描述是對這些模塊的實現(xiàn);對寫好的軟件模塊進行集成,生成相應的具有特定功能的測試包;最后對軟件的測試自動化工具進行維護,隨著時間的推移,結束自動化測試生命周期。
3測試自動化軟件的實現(xiàn)
3.1需求分析階段
在該階段,測試工程師和手機終端使用者要一起參加需求分析的討論,分析測試的環(huán)境和過程,測試不同的環(huán)境下手機的使用情況。
在進行手機通信測試的需求分析里,假定使用300個測試用例,分析其自動化測試的流程,形成書面的需求規(guī)格說明文檔,并進行專門的評審,對測試用例進行審查。
3.2計劃階段
主要完成計劃進度表的建立。例如整個手機終端測試需要五周時間完成,計劃和設計需要半周,開發(fā)和執(zhí)行需要三周,測試需要一周半。在規(guī)劃測試計劃時,在對每一次進行操作進行相關文檔的說明,其中文檔的完成工作也需要在計劃時間以內(nèi),建立和維護一個測試環(huán)境文檔是非常重要的。
3.3設計階段
對于手機通信系統(tǒng)來說,軟件的升級不會帶著新的錯誤,即功能是不變的,由于測試的腳本具有共用性,模塊化的設計是非常有必要的。在設計的過程中,要注重命名規(guī)則,以免發(fā)生混淆,使得模塊發(fā)生混亂。
3.4實現(xiàn)和集成階段
實現(xiàn)主要是在設計的基礎上,進行編碼,最終完成軟件,每次代碼更改運行要記錄初始狀態(tài)和運行后狀態(tài),及時進行備份。對軟件進行集成分塊測試,將生成的測試包提交給組裝集成測試人員,對其進行評審和驗證,詳細記錄其結果。
3.5維護和終結階段
軟件自動化測試生成后,要根據(jù)使用環(huán)境和用戶的不同進行維護處理,并不斷對其進行改進,這個過程可以通過問題跟蹤工具來完成。隨著新技術的來臨,軟件會越來越不適應企業(yè)的要求,就要對其進行終結,重新研發(fā)新的測試軟件。
4結語
軟件測試在軟件研發(fā)中所占的比重越來越大,人們對于測試的關注度也日益提高。本文利用軟件工程生命周期來分析測試自動化,由于篇幅所限,對于軟件測試自動化工具的具體實現(xiàn)并沒有給出,希望讀者在此基礎上進一步的研究。
參考文獻
[1]魏偉.笑傲測試,軟件測試流程方法與實施[M].北京:清華大學出版社,2006:110111.
[2]陸其明.腳本驅動的應用軟件開發(fā)方法與實踐[M].北京:清華大學出版社,2006:253255.
[3]Danlel Galin.軟件質量保證[M].北京:機械工業(yè)出版社,2004:162169.
[4]Roger Pressman.軟件工程:實踐者的研究方法[M].第三版.北京:機械工業(yè)出版,1995:279280.