軟件測試的起源與發展——筆記


         軟件測試的概念和定義:

      1972年,軟件測試領域的先驅Bill Hetzel博士(代表論著《The Complete Guide to Software Testing》),提出了對軟件測試的定義:“就是建立一種信心,認為程序能夠按預期的設想運行。Establish confidence that a program does what it is supposed to do. ”   為表明軟件正確而進行測試

      1979年Glenford J. Myers(代表論著《The Art of Software Testing》)提出了對軟件測試的定義:“測試是為發現錯誤而執行的一個程序或者系統的過程。The process of executing a program or system with the intent of finding errors.”           測試的目的是尋找錯誤,並且是盡最大可能找出最多的錯誤。 Myers還給出了與測試相關的三個重要觀點,那就是: 

                            1、  測試是為了證明程序有錯,而不是證明程序無錯誤;        

                            2、  一個好的測試用例是在於它能發現至今未發現的錯誤;     

                             3、  一個成功的測試是發現了至今未發現的錯誤的測試

    1983年Bill Hetzel博士將定義修訂為:“評價一個程序和系統的特性或能力,並確定它是否達到預期的結果。軟件測試就是以此為目的的任何行為。在設計規定的 環境下運行軟件的功能,將其結果與用戶需求或設計結果相比較,如果相符則測試通過,如果不相符則視為Bug。這一過程的終極目標是將軟件的所有功能在所有設計規定的環境全部運行,並通過。
    軟件測試定義發生了改變,測試不單純是一個發現錯誤的過程,而且將測試作為軟件質量保證SQA)的主要職能,包含軟件質量評價的內容測試是以評價一個程序或者系統屬性為目標的任何一種活動。測試是對軟件質量的度量。 所以到現在軟件測試也有了行業標准(IEEE/ANSI),“使用人工或自動的手段來運行或測定某個軟件系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別”這個定義明確指出:軟件測試的目的是為了檢驗軟件系統是否滿足需求。它再也不是一個一次性的,而且只是開發后期的活動,而是與整個開發流程融合成一體。   
    總結:軟件測試這個行業的定義到目前為止是4個:  a.從為了表明軟件是正確而測試的正向性測試。→b.從為了表明軟件是錯誤而測試的反向性測試。→ c.到按照需求來進行測試,符合需求的則認為測試通過,不符合的則認為有bug。→d.到現在都用的行業標准:測試不單純是一個發現錯誤的過程。主要是從軟件質量的角度來測試。
 
  •    軟件測試的成熟度:
        CMM(能力成熟度模型Capability Maturity Model,英文縮寫為CMM)逐漸成為了評估軟件開發過程的管理以及工程能力的標准。CMM的核心是把軟件開發視為一個過程,並根據這一原則對軟件開發和維護過程進行監控和研究。Burnstein博士提出了測試成熟度模型(TMM),依據CMM的框架提出測試的5個不同級別,關注於測試的成熟度模型。
  TMM 測試成熟度分解為 5 級別,關注於 5 個成熟度級別遞增: 
Phase 0 :測試和調試沒有區別,初了支持調試外,測試沒有其他目的 
Phase 1 :測試的目的是為了表明軟件能夠工作 
  Phase 2 :測試的目的是為了表明軟件不能夠能夠正常工作
 
  Phase 3 :測試的目的不是要證明什么,而是為了把軟件不能正常工作的預知風險降低到能夠接受的程度
 
  Phase 4 : 測試不是行為,而是一種自覺的約束 (mental discipline) ,不用太多的測試投入產生低風險的軟件上的 
 
        總結:CMM更注重於管理軟件得過程。
 
  軟件測試模型的演變 

       V模型:改進軟件開發的效率和效果。

        

     W模型:測試是伴隨着整個軟件開發周期。而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利於盡早地全面的發現問題。例如,需求分析完成后,測試人員就應該參與到對需求的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利於及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。

                        

   總結:

    V模型的局限性是把測試作為編碼之后的一個階段,是針對程序而尋找錯誤的活動,,而忽視了測試活動對需求分析,系統設計等活動的驗證和確認的功能。

    W模型的局限性是在W模型中,需求、設計、編碼等活動被視為串行的,同時,測試和開發活動也保持着一種線性的前后關系,上一階段完全結束,才可正式開始下一個階段工作。

 

 

 

軟件測試的起源與發展這篇文章來源於 51testing博客,作者是 袁琳   網址鏈接是:http://www.51testing.com/html/87/n-6987.html

                                
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM