?

軟件測試中測試模型的應用

2013-05-08 09:07
鐵路通信信號工程技術 2013年1期
關鍵詞:軟件測試測試方法設計階段

寧 鑫

(北京全路通信信號研究設計院有限公司,北京 100073)

寧鑫,男,碩士畢業于北京航空航天大學,測試工程師。主要研究方向包括列車運行產品的軟件測試技術、接口測試和系統測試等方面,曾經參與“BTM應用于城軌ATC系統的適配與安全認證”的軟件測試和軟件需求測試,“運輸擴能提效技術研究”項目軟件測試和軟件需求測試,“CTCS-300T車載設備的(CTCS-2功能)優化技術研究”的軟件測試等項目。

在軟件生命周期中,軟件開發過程中已經有了較成熟的開發模型(如瀑布模型、漸進模型和快速開發(RAD)等)作為指導,但是這些開發模型都沒有關注或體現軟件測試活動的價值。由于軟件測試在質量安全軟件中的重要性,同樣需要相關的模型指導測試工作的進行。

本文共分為4個部分,第一部分概述軟件測試的內容;第二部分介紹軟件測試模型種類;第三部分通過對比各種測試模型的優劣在不同的軟件測試需求中選擇不同的模型;第四部分得出結論,說明軟件工程中的軟件測試模型在軟件測試工作中應用的重要性。

1 軟件測試的概述

在傳統的軟件工程中,軟件測試就是測試軟件代碼本身是否違反編碼規則,是否功能正確,但全面而完整的軟件測試不僅僅是測試軟件代碼本身,它還包括了軟件定義階段和設計階段的測試,如對軟件的需求分析、設計規格說明等進行測試。

軟件測試的方法既可以分為靜態測試和動態測試,也可以分為白盒測試、黑盒測試和灰盒測試等,從不同的角度可進行不同的劃分。關鍵是在實際的項目中,在進行軟件測試時,無論采用哪一種或幾種測試方法,都一定要滿足軟件測試過程的完整性和充分性。

對一個軟件項目進行測試時,首先進行靜態測試(包括人工檢測和計算機輔助分析),然后做動態測試(包括單元測試、集成測試),最后還需要進行確認測試和系統測試。在此需要說明的是對于安全軟件和非安全軟件,軟件測試過程中每種測試所執行的內容和要求是不一樣的。

2 軟件測試的模型

2.1 V模型

V模型主要反映測試活動與分析和設計的關系,此模型將測試活動分為幾種獨立的過程,分別對應相應的開發過程,如圖1所示。V模型的局限性在于,它把軟件測試作為在軟件代碼編程完成后才開始的一個階段,系統前期產生的錯誤直到后期的驗收測試才能發現。

2.2 W模型

在軟件各開發階段增加同步對應測試過程,便形成W模型。如圖2所示,W模型的特點是“盡早地和不斷地進行軟件測試”。W模型是對V模型的一個補充,雙“V”結構模型,補充了軟件需求分析階段、設計階段、代碼實現階段等各個階段的測試工作。

2.3 H模型

H模型的軟件測試過程強調測試活動完全是獨立的,與開發等其他流程可以并發地進行,只要某個測試點準備就緒時,就可以進行一個階段的測試活動,并且這樣的過程在整個軟件生命周期中隨時可以開始。如圖3所示。

2.4 X模型

X模型是將程序抽離成程序片段進行測試,然后通過各種的交接活動,最終集成為可執行的程序,如圖4所示。

目前X模型還是一種未成熟的模型,沒有被文檔化,但是在X模型中提出探索性測試等理論也是值得學習和借鑒的。

3 軟件測試模型應用比較

V模型的軟件測試包括需求測試、設計測試和源代碼測試,源代碼測試是為了確保程序的正確性,需求和設計測試是為了使整個系統滿足用戶的需求。

V模型存在的缺陷:軟件測試工作開始的很晚,必須要在編碼完成后才能開始,容易使人理解為軟件測試是軟件生命周期的最后一個階段。軟件測試就是測試代碼的正確性,這樣忽略了需求和設計階段的測試工作。而這些非編碼階段隱藏的錯誤或者缺陷一直到后期的驗收測試才有可能被發現,而這時在進行修改已經很難了,從而很可能導致一個項目的失敗。

V模型作為一種相對“簡單”的軟件測試模型,在一些非安全軟件或只需要進行需求驗證測試的軟件工程中是十分適用的。

W模型可以看作是雙“V”模型。W模型很明確的顯示了需求階段、設計階段也需要進行相應的測試活動,如Fagan法。W模型強調了測試人員需要對項目設計階段進行參與,并對相應的階段進行完整而充分的測試,保證每個階段的錯誤或者缺陷及時盡早的發現并改正,而不是遺留到編碼結束后才發現不可測或者設計階段包含致命的錯誤。

若依據W模型進行測試,一旦項目的需求分析開始,便要開始對需求進行測試,包括編制測試方法,測試案例等,還要對需求進行可測試性和不可測性劃分。當設計文檔都編制完成后,就應該開始對軟件設計進行測試,同樣必須制定測試方法,編寫測試案例,查找設計階段的缺陷。

和V模型一樣,W模型也不是完美的,由于模型都是一種理想化的抽象,而現實的軟件開發過程必然不可能一個階段和一個階段的區別很明顯,每個階段都有重復交叉的工作,我們不可能等待到一個階段百分百完成后,才開始下一個階段的工作,那樣工作效率會大大降低。

實際的軟件開發項目中,我們必須合理的規劃軟件開發與軟件測試工作,使得軟件需求分析、設計和編碼等活動有機的疊加在一起,使得測試和開發工作真正做到即相互制約,又相互促進。

對于安全軟件的測試來講,W模型能較好的發揮測試工作的充分性,滿足安全軟件測試的要求。

H模型對軟件測試活動做了更高一級的抽象,軟件測試活動是獨立的,不依賴于其他軟件開發工作,軟件測試工作既可以有序的先后進行,也可以并行執行。一個軟件測試活動能不能開始執行的唯一條件是軟件測試準備是否就緒。在H模型中,軟件測試和軟件開發不在那么緊密的聯系在一起,一種測試活動本身也可能反復、多次進行的。

X模型將整個軟件工程的程序先“分解”,后“整合”。對程序片段進行測試,測試完成后逐步集成成交大規模的代碼程序,最終目標是全部整合成一個可執行的軟件。X模型提出的探索性測試并不是事先計劃的特殊類型的測試,使得測試不局限于測試方法本身,但也可能對測試造成人力、物力和財力的浪費,對測試員的熟練程度要求比較高。X模型的局限性在于沒有體現對需求、設計等活動的測試過程。

4 結論

在實際的軟件測試項目中,要根據軟件項目的安全等級,規模,和項目的時間安排等各種因素選擇合適的測試模型,我們不能為使用測試模型而使用模型,不然起不到應由的測試模型的指導意義,反而可能使得一個項目失敗。

在這些模型中,V模型的更加“簡單”,使得它在一些快速開發、輔助工具開發或者小規模軟件測試中使用十分合適;W模型更加強調了測試工作的完成性和充分性,在一些軟件開發周期長,軟件安全等級要求高或者是復雜的軟件項目中使用,可以很好的保障項目質量;H模型的特點是強調軟件測試是獨立的;X模型更加靈活,也提出了探索性測試這種值得借鑒的測試方法,但是X模型沒有體現對需求和設計活動等的測試過程,對安全軟件來說不具備測試完整性和充分性。

根據軟件測試項目的需求,可以靈活地選擇合適的軟件測試模型來提高軟件測試的效率、保障軟件產品的質量。

[1] Patton,R. 軟件測試[M].北京:機械工業出版社,2006.

[2]蔡建平.嵌入式軟件測試實用技術[M].北京:清華大學出版社,2010.

[3]羅國慶.實用軟件測試方法與應用[M] . 北京:電子工業出版社,2003.

[4] Paul C Jorgensen. Software Testing:A Craftman’s Approach[M] . 北京:機械工業出版社,2008.

[5]鄭人杰.計算機軟件測試技術[M].北京:清華大學出版社,1992.

猜你喜歡
軟件測試測試方法設計階段
基于泊松對相關的偽隨機數發生器的統計測試方法
BIM技術在設計階段的應用
基于OBE的軟件測試課程教學改革探索
航天軟件測試模型構建與應用
基于云計算的軟件自動化測試方法
DLD-100C型雷達測試方法和應用
市政工程設計階段的工程造價控制方法
EXCEL和VBA實現軟件測試記錄管理
軟件測試工程化模型及應用研究
對改良的三種最小抑菌濃度測試方法的探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合