第一,交叉測試會找到以往被忽略的bug。
第二,熟悉不同模塊,測試人員將來可以在工作中互為備份。
第三,增強了團隊凝聚力,并激發對測試工作的熱情。
2. 測試自動化可以隨時觸發運行
測試自動化一旦開發完成,就可以在任何時間被觸發運行,而沒有下班或周末的概念,測試人員完全可以在下班之前觸發某個自動化開關,把測試任務移交給自動化腳本,然后經過一夜的運行,第二天早上上班來查看自動化測試報告,這是自動化的獨特優勢所在。從這個意義上講,測試自動化延伸了手工測試的工作時間和范圍。
3. 測試自動化有助于知識的存儲和移交
這是一個潛在的事實,在以前的手工測試一統天下的時候,測試人員的知識主要是靠文檔存儲,比如測試計劃,測試案例說明書,bug數據庫等等。因此,我們看到,當一個測試工程師離職的時候,他會把他的知識以文檔的方式留給原來的團隊。而隨著自動化測試的發展,這種測試知識的形式也在發生變化,測試人員的技術可以通過測試程序保留下來。對整個測試團隊來說,能夠量化共享的知識越多,團隊就越穩定,受到個體測試人員的影響就越少。這是老板愿意看到的場面,因此,從這個角度來說,測試經理比測試工程師更有動力去推動軟件測試自動化。
4. 第三方自動化測試工具的使用提高了自動化測試開發的效率
如果說前三點已經講清了自動化測試的合理性動機,那么自動化測試工具的應用則為自動化測試實施提供了保障,使得做自動化測試不在那么困難和復雜,而變得簡單和有效率。
使用Junit來完成案例一
import junit.framework.TestCase;
public class funTest extends TestCase {
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testFun() throws Throwable {
//調用被測函數
int i = Fun(2);
//使用junit提供的assert斷言語句比較結果
assertTrue(1,i);
}
}
在以上代碼中, funTest類,以及funTest類的setup函數和teardown函數(環境回收工作)是由Junit自動生成的,我們寫的測試程序只有2條語句,其中斷言語句assertTrue會通過比較,給出pass還是fail的結果報告?梢钥闯,使用Junit工具幫我們減少了自動化測試開發的工作量。
使用QTP來完成案例二,如下:
使用QTP錄制同樣的google搜索操作,只有兩條語句生成:
Browser(”Google”).Page(”Google”).WebEdit(”q”).Set “測所”
Browser(”Google”).Page(”Google”).WebButton(”Google 搜索”).Click
其中Browser,page,webEdit,webbutton都是QTP提供的對象,操作起來非常直觀方便。