第一,交叉测试会找到以往被忽略的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提供的对象,操作起来非常直观方便。