能夠測試軟件的所有功能的代表性測試用例。
專門針對可能會被修改影響的軟件功能的附加測試。
針對修改過的軟件成分的測試。
回歸測試可以有選擇地重復執行集成和系統測試的測試用例,回歸測試變動比較小,同時測試所基于的實際硬件環境相對比較穩定。但回歸測試要頻繁地重復運行,需要的工作量很大,所以,回歸測試最值得自動化。自動測試便于回歸測試以非常高效的方式進行。
(3) 按測試內容分,接口測試、路徑測試、功能測試、健壯性測試、性能測試、用戶界面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試。
本文的測試系統主要針對集成測試和系統測試階段,在這些階段測試的內容主要是功能測試、健壯性測試、性能測試、用戶界面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試。
1.1.2 自動測試的概述
自動化測試是借助于測試工具、測試規范,從而局部或全部代替人工進行測試及提高測試效率的過程。
自動測試相對于手工測試而言,其主要進步在于自動測試工具的引入。自動測試的一般定義[1]為:各種測試活動的管理與實施,包括測試腳本的開發與執行,以便使用某種自動測試工具來驗證測試需求。測試活動的自動化在許多情況下可以獲得最大的實用價值,尤其在自動測試的測試用例開發和組裝階段,測試腳本被重復調用,可重用腳本可能運行很多次。因此,采用自動測試可以獲得很高的回報。
系統測試級上的回歸測試是有效應用自動測試的情況?;貧w測試設法驗證改進后的系統提供的功能是否按照規定執行,系統在運行中沒有出現非預期變化。自動測試幾乎可以不加改動地重用先前的測試用例和測試腳本,以非常有效的方式執行回歸測試。
自動測試具有以下優點[4]:
(1) 能執行更多更頻繁的測試,使某些測試任務的執行比手動方式更高效,可以更快地將軟件推向市場;
(2) 能執行一些手動測試困難或不可能做的測試;
(3) 更好地利用資源,利用整夜或周末空閑的設備執行自動化測試;
(4) 將煩瑣的任務自動化,讓測試人員投入更多的精力設計出更多更好的測試用例,提高測試準確性和測試人員的積極性;
(5) 自動測試具有一致性和可重復性的特點,而且測試更客觀,提高了軟件的信任度。
但自動化測試仍然存在著一定的局限性[15]:
(1) 不能取代手工測試,不可能自動化所有的測試。如測試只是偶爾執行,或待測系統經常變動、不穩定,測試需要大量的人工參與時,就不適宜采用自動測試。
(2) 自動測試工具本身不具有想象力,只是按命令執行。而手工測試時測試執行者可以在測試中判斷測試輸出是否正確,以及改進測試,還可以處理意外事件。
(3) 自動測試對測試質量的依賴性較大,在確保測試質量的前提下,實施自動化測試才有意義。
(4) 自動測試在剛開始執行時,工作效率并不一定高于手動測試,只有當整個自動測試系統成熟,且測試工程師熟練掌握測試工具后,工作效率才會隨著測試執行次數的增加而提高。
(5) 自動測試的成本可能高于手工測試。自動測試的成本大致有以下幾個部分組成:自動測試開發成本、自動測試運行成本、自動測試維護成本和其他相關任務帶來的成本。軟件的修改帶來測試腳本部分或全部修改,就會增加測試維護的開銷。
1.1.3 測試與自動化測試概念的區別
測試[5]是通過執行測試用例實現,描述測試用例質量有四個特征:有效性、修改性、可仿效性和經濟性。有效性指是否能發現缺陷、或至少可能發現缺陷;可仿效性指測試用例是否能測試多項內容,以減少測試用例的數量;經濟性指測試用例的執行、分析和調試是否經濟;修改性指每次軟件修改后對測試用例的維護成本。通常要平衡這四個方面。
自動測試技術,與測試技術存在著很大區別。自動化的程度與測試的質量是獨立的。無論自動執行還是手動執行測試都不影響測試的有效性和仿效性。測試本身的有效性直接導致測試的成敗,而自動測試只對測試的經濟性和修改性有影響,自動測試通常要比手動測試經濟得多,自動測試的方法越好,長期使用獲得的收益就越大。測試質量取決于測試執行者實現測試質量的技術;而自動化質量取決于測試自動化者的自動化技術。
原文轉自:http://www.uml.org.cn/Test/200804098.asp