軟件測試發展歷史


本文是一篇譯文,翻譯的是Dave Gelperin和William C. Hetzel 發表的一篇名為“軟件測試發展”(THE GROWTH OF SOFTWARE TESTING)的文章,原文地址:http://www.clearspecs.com/downloads/ClearSpecs16V01_GrowthOfSoftwareTest.pdf。

本文並不枯燥,看完后你也許會和我有同樣的感受:原來軟件測試也能追本溯源(不是程序員拍腦袋想出來的),也有其存在的必然性與合理性。

迄今為止,軟件測試的發展一共經歷了五個重要時期:

  • 1957年之前-調試為主(Debugging Oriented)
  • 1957–1978-證明為主(Demonstration Oriented)
  • 1979–1982-破壞為主(Destruction Oriented)
  • 1983–1987-評估為主(Evaluation Oriented)
  • 1988–至今-預防為主(Prevention Oriented)

 

  • 調試為主

  20世紀50年代,計算機剛誕生不久,只有科學家級別的人才會去編程,需求和程序本身也遠遠沒有現在這么復雜多變,相當於開發人員一人承擔需求分析,設計,開發,測試等所有工作,當然也不會有人去區分調試和測試。然而嚴謹的科學家們已經在開始思考 “怎么知道程序滿足了需求?”這類問題了。

 

  • 證明為主

  1957年,Charles Baker在他的一本書中對調試和測試進行了區分:
  調試(Debug):確保程序做了程序員想它做的事情
  測試(Testing):確保程序解決了它該解決的問題

  這是軟件測試史上一個重要的里程碑,它標志測試終於自立門戶師出有名了。
當時計算機應用的數量,成本和復雜性都大幅度提升,隨之而來的經濟風險也大大增加,測試就顯得很有必要了,這個時期測試的主要目就是確認軟件是滿足需求的,也就是我們常說的“做了該做的事情”。

 

  • 破壞為主

  1979年,《軟件測試的藝術》 (The Art of Software Testing)第一版問世,這本書是測試界的經典之作。書中給出了軟件測試的經典定義:

  The process of executing a program with the intent of finding errors.
  測試是為發現錯誤而執行程序的過程。

  這個觀點較之前證明為主的思路,是一個很大的進步。我們不僅要證明軟件做了該做的事情,也要保證它沒做不該做的事情,這會使測試更加全面,更容易發現問題。

 

  • 評估為主

  1983年,美國國家標准局(National Bureau of Standards)發布“Guideline for Lifecycle Validation, Verification and Testing of Computer Software”,也就是我們常說的VV&T。VV&T提出了測試界很有名的兩個名詞:驗證(Verification)和確認(Validation)
  Verification: Are we building the product right?
  Validation: Are we building the right product?

人們提出了在軟件生命周期中使用分析,評審,測試來評估產品的理論。軟件測試工程在這個時期得到了快速的發展:

  • 出現測試經理(test manager),測試分析師(test analyst)等職稱
  • 開展正式的國際性測試會議和活動
  • 發表大量測試刊物
  • 發布相關國際標准

以上種種都預示着:軟件測試正作為一門獨立的,專業的,具有影響力的工程學發展起來了。

 

  • 預防為主

  預防為主是當下軟件測試的主流思想之一。STEP(Systematic Test and Evaluation Process)是最早的一個以預防為主的生命周期模型,STEP認為測試與開發是並行的,整個測試的生命周期也是由計划,分析,設計,開發,執行和維護組成,也就是說,測試不是在編碼完成后才開始介入,而是貫穿於整個軟件生命周期。我們都知道,沒有100%完美的軟件,零缺陷是不可能的,所以我們要做的是:盡量早的介入,盡量早的發現這些明顯的或隱藏的bug,發現得越早,修復起來的成本越低,產生的風險也越小。

  雖然每一個發展階段對軟件測試的認識都有其局限性,但是前輩們一直在思考和總結前人的經驗,創造性地提出新的理論和方向,這種精神非常值得尊敬和學習。所謂以銅為鏡,可正衣冠;以史為鏡,可明得失。知道了從哪里來,方能更好的明白該到哪里去。

 

如需轉載,請注明出處,這是對他人勞動成果的尊重~


免責聲明!

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



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