摘要:隨著軟件規模的擴大,軟件開發要求快速度、低成本和高質量,這使得軟件的質量保障成為軟件開發的重要環節。軟件測試作為軟件質量保障中的主要內容,越來越多的受到關注。
關鍵字:軟件測試目的;自動化測試工具;存在問題
背景:
信息技術的飛速發展,使軟件產品應用到社會的各個領域,軟件產品的質量自然成為人們共同關注的焦點。不論軟件的生產者還是軟件的使用者,均生存在競爭的環境中,軟件開發商為了占有市場,必須把產品質量作為企業的重要目標之一,以免在激烈的競爭中被淘汰出局。用戶為了保證自己業務的順利完成,當然希望選用優質的軟件。質量不佳的軟件產品不僅會使開發商的維護費用和用戶的使用成本大幅增加,還可能造成災難性的后果(如民航訂票系統、銀行結算系統、證券交易系統、自動飛行控制軟件、軍事防御和核電站安全控制系統等)。
為了解決這一問題,人們在開發過程中使用了很多方法,力圖通過嚴謹的開發過程保證軟件的質量。這些努力當然是創造高質量軟件產品的有效方法。但對軟件進行測試仍然是保證軟件質量最重要和最有效的方法。
軟件測試的目的,第一是確認軟件的質量,其一方面是確認軟件做了你所期望的事情,另一方面是確認軟件以正確的方式來做了這個事件。第二是提供信息,比如提供給開發人員或程序經理的反饋信息,為風險評估所準備的信息。第三軟件測試不僅是在測試軟件產品的本身,而且還包括軟件開發的過程。如果一個軟件產品開發完成之后發現了很多問題,這說明此軟件開發過程很可能是有缺陷的。因此軟件測試的第三個目的是保證整個軟件開發過程是高質量的。
進入上世紀90年代,軟件行業開始迅猛發展,軟件的規模變的非常大,在一些大型軟件開發過程中,測試活動需要花費大量的時間和成本,而當時測試的手段幾乎完全都是手工測試,測試的效率非常低;并且隨著軟件復雜度的提高,出現了很多通過手工方式無法完成測試的情況,于是,很多測試實踐者開始嘗試開發商業的測試工具來支持測試,輔助測試人員完成某一類型或某一領域內的測試工作,而測試工具也逐漸盛行起來。通過運用測試工具,可以達到提高測試效率的目的。測試工具的發展,大大提高了軟件測試的自動化程度,讓測試人員從繁瑣和重復的測試活動中解脫出來,專心從事有意義的測試設計等活動。采用自動比較技術,還可以自動完成測試用例執行結果的判斷,從而避免人工比對存在的疏漏問題。設計良好的自動化測試,在某些情況下可以實現“夜間測試 ” 和 “無人測試”。在大多數情況下,軟件測試自動化可以減少開支,增加有限時間內可執行的測試,在執行相同數量測試時節約測試時間。 而測試工具的選擇和推廣也越來越受到重視。對測試工具能夠發揮的作用,大家都已經了解并認可了,但是很多引入自動化測試工具的軟件公司并沒有能夠讓測試自動化發揮應有的作用。主要存在以下問題:
1 過高的期望
沒有建立一個正確的軟件測試自動化的觀念,或操之過急,或認為測試自動化可以代替手工測試,或認為測試自動化可以發現大量新缺陷,或不夠重視而不愿在初期投入比較大的開支等。多數情況下,對軟件測試自動化存在過于樂觀的態度、過高的期望,人們都期望通過這種測試自動化的方案能解決目前遇到的所有問題。
2 缺乏專業的測試人才
有些軟件公司舍得花幾十萬元去買測試工具軟件,但缺乏具有良好素質、經驗的測試人才。軟件測試自動化并不是簡簡單單地使用測試工具,還需要有良好的測試流程、全面的測試用例等來配合腳本的編寫,這就要求測試人員不僅熟悉產品的特性和應用領域、熟悉測試流程,而且很好地掌握測試技術和編程技術。
3 測試工具本身的問題
一般不會對自動測試腳本再做大規模的測試,所以自動測試腳本的質量往往依賴于TA工程師(測試自動化工程師)的經驗和工作態度,如果自動測試工具不能提供一種機制來保證腳本的質量,那將直接影響到測試結果的正確性。
4 盲目引入測試工具
有一點很明確,不同的測試工具面向不同的測試目的、具有各自的特點和適用范圍,所以不是任何一個優秀的測試工具都能適應不同公司的需求。
5 沒有良好的使用測試工具的環境
建立良好的測試工具應用環境,需要測試流程和管理機制做相適應的變化,也只有這樣,測試工具才能真正發揮其作用。
6 其它問題
軟件測試自動化所需要的測試腳本其維護量很大,而且軟件產品本身代碼的改變也需要遵守一定的規則,從而保證良好的測試腳本使用重復性,也就是說測試自動化和軟件產品本身不能分離。其次,提供軟件測試工具的第三方廠家,對客戶的應用缺乏足夠理解,很難提供強有力的技術支持和具體問題的解決能力。也就是說,軟件測試工具和被測試對象-軟件產品或系統的互操作性會存在或多或少問題,加之技術環境的不斷變化,所有這些對測試自動化的應用推廣和深入,都帶來很大的影響。