官术网_书友最值得收藏!

1.1 軟件測試的發展歷程

伴隨著軟件行業的發展,軟件測試也在不斷地發展,軟件測試大概經歷了圖1.1所示的幾個重要的階段。

圖1.1 軟件測試發展的幾個階段

早期軟件的復雜度相對較低,軟件規模也比較小,因此軟件錯誤大部分在開發人員的調試階段就發現并解決掉了。這個階段的測試就等同于調試。

現在,大部分開發工具都把調試工具集成進來,調試已經成為開發人員開發工作中不可或缺的一部分。甚至測試腳本的開發工具也會把基本的調試功能集成進來。

在20世紀50、60年代,調試功能傾向于解決編譯、單個方法的問題。隨著需求的復雜化,軟件規模越來越大,人們開始意識到僅僅依靠調試還不夠,還需要驗證接口邏輯、功能模塊、不同系統間的功能是否正常,所以引入一個獨立的測試組織來進行獨立的測試。

這個階段的測試絕大部分是在產品完成后進行的,因此測試分析方法簡單、力度不足、時間有限,軟件交付后還是存在大量的問題。

這個階段沒有形成測試方法論,主要靠錯誤猜測和經驗推斷。人們對軟件測試也沒有明確的定位、深入地思考軟件測試的真正含義。

1973年,Bill Hetzel博士給出了軟件測試的第一個定義,即“軟件測試就是對程序能夠按預期的要求運行建立起一種信心”。1983年,他又對這個定義進行了修訂,改成“軟件測試就是以評價一個程序或系統的品質或能力為目的的一項活動。”

因此這個階段對軟件測試的認識是:軟件測試是用于驗證軟件產品是正確工作的、符合要求的。

但同一時期,Glenford J. Myers則認為,軟件測試不應該專注于驗證軟件是工作的,而是將驗證軟件是不工作的作為重點,他提出的軟件測試定義是“測試是以發現錯誤為目的而進行的程序或系統的執行過程”。

20世紀80年代后,軟件行業飛速發展,軟件規模越來越大,復雜度越來越高。人們對軟件的質量開始重視。軟件測試的理論和技術都得到了快速的發展。人們開始把軟件測試作為軟件質量保證的重要手段。

1982年在美國北卡羅來納大學召開了首次軟件測試的正式技術會議,軟件測試理論開始迅速發展,隨之出現了各種軟件測試方法和技術。

1983年,電氣電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)對軟件測試做出了如下定義。

●使用人工或自動的手段來運行或測量軟件系統的過程,目的是檢驗軟件系統是否滿足規定的要求,并找出與預期結果之間的差異。

●這個階段認為,軟件測試是一門需要經過設計、開發和維護等完整階段的軟件工程。

從此,軟件測試進入了一個新的時期,軟件測試成為一個專門的學科,形成了各種測試的理論方法和測試技術,某些測試工具開始得到廣泛應用。

20世紀90年代后,軟件工程百花齊放,出現了各種新的軟件開發模式,以敏捷開發模式為代表的新一代軟件開發模式開始出現,并且贏得很多開發團隊的擁護。

由此帶來的是對軟件測試的重新思考,而大部分人傾向于軟件測試將與軟件開發融合的觀點。開發人員將擔負起軟件測試的責任,測試人員將更多地參與到測試代碼的開發中去。軟件開發與測試的界限變得模糊起來。TDD把測試作為起點和首要任務。

盡管軟件測試經過幾十年的發展,已經得到了長足的進步,但是與軟件開發的發展比較起來,可以看到軟件測試的發展還是比較緩慢的。

軟件開發得益于計算機硬件的發展、計算速度的提高,還有計算機語言的發展、編譯器的發展、開發工具的發展。因此比起軟件早期的開發,無論是開發速度還是工作效率都有了很大的提高。

軟件開發擺脫了早期的機器語言編碼方式和匯編語言,跨越了結構化編程語言,進入面向對象的時代,開發人員的編程能力得到了很大的提高。而開發工具的不斷改進,則起到了推波助瀾的作用,使得開發人員無論是在編碼速度還是調試方面都受益匪淺。

反觀軟件測試,雖然測試工具層出不窮,但是并沒有革命性的發展。測試人員大部分情況下還是要依賴手工的測試。

軟件測試受到越來越多人的重視,但是大部分的軟件測試方法和理論還是沿用20世紀的研究結果。因此,軟件測試的發展還需要更多熱愛測試的人投入,需要更多的研究,無論是在測試的理論、方法,還是工具上。

軟件測試發展比較緩慢的另外一個原因是質量成熟度模型和質量風險評估沒有一個比較廣泛和可用的業界標準。

主站蜘蛛池模板: 吐鲁番市| 开江县| 蒲城县| 宝清县| 凌海市| 穆棱市| 广西| 锦屏县| 麻栗坡县| 余庆县| 毕节市| 衡山县| 绥芬河市| 阜城县| 开阳县| 灵璧县| 岳普湖县| 昌邑市| 顺义区| 堆龙德庆县| 湘西| 突泉县| 平山县| 双柏县| 日土县| 吉水县| 黄陵县| 黄大仙区| 呈贡县| 花垣县| 新巴尔虎左旗| 凤庆县| 哈巴河县| 共和县| 奎屯市| 福海县| 阿拉善盟| 射阳县| 衡阳市| 车致| 乐清市|