軟體測試中就自動化測試是否終將能替代手動測試的討論。
在文章開始之前我想說本篇文章只代表個人言論。
就軟體測試中就自動化測試是否終將能替代手動測試的問題,我想先介紹一下手動測試和自動化測試。
1. 手工測試的概念
所謂的手工測試就是測試人員按照事先為覆蓋被測軟體需求編寫的測試用例,根據測試大綱中所描述的測試步驟和方法,手工的一個一個的輸入執行,包括與被測軟體進行互動,然後觀察結果,看被測程式是否存在問題,或在執行過程中是否會有異常發生,屬於比較原始但是必須執行的一個步驟。
2.自動化測試的概念
自動化測試,實際上是將大量的重複性的測試工作交給計算機完成,通常是使用自動化測試工具來模擬手工測試步驟,執行用某種程式設計語言編制的測試程式,控制被測軟體的執行,完成全自動或半自動測試的過程。
3.手工測試的特點
① 測試人員要負責大量文件、報表的制定和整理工作,會變得力不從心。
② 受軟體釋出日期、開發成本及人員、資源等諸多方面因素的限制,難以進行全面的測試。
③ 如果修正缺陷所需時間稍長,那麼想將手工測試應用與迴歸測試將變得異常困難。這是因為需要測試的測試用例太多。
④ 對測試過程中發現的大量缺陷缺乏科學、有效的管理手段,責任變得含混不清,沒有人能向決策層提供精確的資料以度量當前的工作進度及工作效率。這樣往往會導致最後的彙總報表資料不準確。
⑤ 反覆測試帶來的倦怠情緒及其他人為因素使得測試標準前後不一,測試花費的時間越長,測試的嚴格性也就越低。
⑥ 難以對不可視物件或物件的不可視屬性進行測試。
4.自動化測試的特點
① 高效率的進行測試
② 可以執行一些手工測試困難或者不可能做的測試
③ 測試的準確性得到提高,測試人員的技術要求可以降低
④ 資源利用率得到提高
⑤ 具有一致性和可重複性。
⑥ 有利於進行迴歸測試
⑦ 測試具有移植性和可重複性
⑧ 縮短測試的時間
5.自動化測試的侷限性
① 軟體自動化測試並不能代替人的工作,我們不要期望將所有的測試活動或測試進行自動化。
② 軟體自動化測試可能降低測試的效率。
③ 缺乏測試經驗。
④ 技術問題。
6.手工測試和自動化測試各自的使用場合
① 手工測試:
(1) 測試很少執行的專案中;
(2) 軟體執行仍然不穩定時;
(3) 測試結果很容易通過人驗證的測試專案;
(4) 測試專案中涉及物理互動比較多的時候。
② 自動化測試:
(1) 軟體維護時使用的迴歸測試;
(2) 執行壓力測試時;
(3) 配置和相容性測試等專案。
正如上面所說, 手動測試和自動化測試有各自的有點和侷限性,並且手工測試是傳統測試方法,有測試人員執行,缺點在於測試工作量大,重複多,迴歸測試難以實現;自動化測試利用軟體測試工具自動實現全部或者部分測試工作:管理,設計,執行和報告,制動化測試節省大量的測試開銷,並能完成一些手工測試無法實現的測試。一些人認為自動化測試事對手工測試的一種補充,自動化測試不可能完全替代手工測試,因為很多資料的正確性介面是否美觀業務邏輯的滿足程度等都離不開測試人員的人工判斷。所以他們認為自動化測試是不能能替代手動測試的。
而我則不這樣認為,社會在進步時代在發展。在剛有測試行業的時候,也沒有自動化測試,沒有測試軟體。隨著社會的發展,人們需求的增加,我們一定能開發出相應的測試軟體來取代手工測試的內容。
在本文開頭我已經說過了,本文僅代表個人言論。結尾再次重申。