全部博文(626)
分类: Web开发
2013-09-17 09:50:20
章15 自动测试和测试工具(2)
三、软件测试自动化
测试自动化(test automation)是一类工具。它可以执行测试用例、查找软件缺陷、分析看到的信息、记录结果。这就是软件测试自动化。
1、宏录制与回放
最基本的测试自动化类型是录制第一次执行测试用例时的键盘和鼠标操作,然后在需要重新执行这些测试时回放一次。
在MAC系统上有Quickeys工具可以录制并回放;在windows上有Macro Magic工具。
宏录制器和播放器是一种驱动程序工具。用于控制和操作被测试软件的工具。
如Macro Magic设置向导可以设置宏的如下选项:
1)名称:为宏命名;
2)重复次数:设置宏在运行时重复或者循环的次数;
3)触发条件:设置宏如何启动,可以按热键、输入一串字符、单击快捷方式、当某个窗口显示出来时或者当系统闲置一段时间之后;
4)捕捉对象:可以选择只捕获(记录)键盘操作或键盘和鼠标的移动和单击都记录;
5)回放速度:该速度比最初录制时最多慢20%,最多快500%;
6)回放位置:该选项确定鼠标移动和单击位置与某个窗口的位置是绝对的还是相对的。
注意:在使用宏录制器捕捉鼠标移动和单击时要小心,因为程序并非总是在屏幕上的同一位置启动和出现。把回放位置设置为相对于程序窗口比设置为屏幕的绝对位置更好,即便如此,GUI的一点变化也会扰乱捕捉的步骤。
2、可编程的宏
可编程的宏是在简单录制和回放的变化上的一大进步。与其通过录制第一次执行测试时的操作来创建可编程的宏,不如在创建时编写回放系统遵循的简单指令。
可编程的宏与录制的宏相比,具有真正的优势:
1)它可以暂停执行,向测试员提示预期结果,并询问测试是通过还是失败。
2)还可以解决录制宏的许多时序问题,不是依靠绝对延时,而是等待特定条件成立才继续执行。
然而,在进行复杂测试时还遗漏了两个重要之处:
1)可编程的宏限于直接执行命令行——只能循环和重复;
2)在常规编程语言中可以见到的变量和决策语句不能使用,而且没有自动检查测试结果的能力。
3、完全可编程的自动测试工具
像可视化测试程序这样的自动测试工具为软件测试员创建强大测试提供了手段。
许多工具基于BASIC编程语言。
这些自动化工具具有的最重要的特点是进行验证的能力,实际上就是检查软件是否以预期方式运行。实现这一点的方式:
1)屏幕捕获:首次执行自动测试时,可以在肯定正确的关键点捕捉并保存屏幕图像;
2)控件值:检查软件窗口中各种控件的值;
3)文件和其它输出。
验证是自动测试要克服的最后一个大难题。
四、随机测试:猴子和大猩猩
有一类测试工具不是为帮助执行或者自动执行测试用例而设计的,其目标是模拟用户可能的操作,此类自动化工具称为测试猴子(test monkey)。
测试猴子的来源:如果让一百万只猴子在一百万只键盘上敲一百万年,从统计的角度上讲,它们最终就可能写出莎士比亚话剧Adventures of Curious George(好奇乔治历险记)等巨著。
1、笨拙的猴子
最简单最直接的测试猴子是笨拙的猴子:只是随机地单击鼠标或者敲击按键。
不停重复和使用笨拙的猴子可能会暴露内存泄漏等软件缺陷。
2、半聪明的猴子
在笨拙的猴子的基础上加上日志记录,将猴子的所有操作记录到一个文件中。
当猴子发现软件缺陷时,只需查看日志文件,找出在失败前猴子做了些什么。
技巧:另外一个解决方法时用摄像机录下屏幕上的内容。当发现软件出现故障时,就倒回去重新看看。
3、聪明的猴子
不仅限于查找崩溃缺陷,同时还查看数据、检查操作结果、找出其与预期结果的差别。
五、使用测试工具和自动化的实质
记住,测试自动化不是万能的。如果正确规划和执行的话,工具和自动化可以使测试效率大大提高并且能发现其它方式不能发现的缺陷。
然而,如果自动化和工具步入歧途,会导致无数的自动化测试的努力被放弃,并且使项目成本大大增加。
考虑以下因素:
1)软件变更;
2)人眼和自觉是不可替代的;
3)验证难以实现;
4)容易过分依赖自动化;
5)不要花费太多时间使用达不到测试软件目的的测试工具和自动化;
6)编写宏、开发工具和编制猴子都属于开发工作;
7)某些工具是入侵式的。