《软件测试》[(美)Ron Patton]第十五章阅读总结

第15章 自动测试和测试工具

一、工具和自动化的好处

  • 如果要测试某项特性,也许需要不止一次执行测试,而是重复多次。还要检查确认在前面的测试中发现的软件缺陷修复了,同时又没引入新软件缺陷。
  • 重复执行测试的过程称为回归测试
  • 软件测试工具和自动化可以提供比手工测试更有效的手段,工具和自动化的主要属性是:
    (1)速度。
    (2)效率。
    (3)准确度和精确度。
    (4)节省资源。
    (5)仿真和模拟。
    (6)坚持不懈。
  • :软件测试工具不能代替软件测试员——它们只能帮助软件测试员更好地工作。

二、测试工具

  • 测试工具的好处:
    1)使用时并不是总需要深入了解工具在怎样做或者做什么;
    2) 可以要建立工具监视和改变上百万计算机之间原始通信的工具;
  • 测试工具分为两种:非入侵式工具和入侵式工具。如果工具仅用于监视和检查软件而不对其进行修改,就认为是非入侵式工具。但是如果工具以任何方式修改了程序代码或者控制了操作环境,就属于入侵式工具。由于入侵的程度各有不同,测试员通常设法使用侵入性尽量小的工具,以减少工具影响测试结果的可能性。
    下面讨论测试工具的主要分类及其使用方式:
1、查看器和监视器
  • 查看器和监视器测试工具能够看到正常情况下看不到的软件运行的细节。
  • 举例:代码覆盖率分析器(入侵式工具)、通信分析器。
  • 大多数编译器附带的代码调试器可以看做查看器,因为他们允许程序员或白盒测试员查看内部变量值和程序状态。
  • 任何能够洞察系统,看到一般用户看不到的数据的工具都可以归类为查看工具。
2、驱动程序

驱动程序是控制和操作被测试软件的工具。最简单的驱动程序例子是批处理文件,即依先后顺序执行的程序或命令的一个简单清单。

3、桩
  • 桩与驱动程序本质上是相反的,桩不控制或者操作被测试软件;相反,它接收或者响应软件发送的数据。
  • 当软件需要与外部设备进行通信时经常要用到桩。
  • 仿真器是在实际使用中用来替代真正设备的设备。仿真器和桩的区别在于桩还给测试程序提供手段来查看和解释发送给它的数据,桩是仿真器的超集。
4、压力和负载工具

压力和负载工具用于向被测试软件增加压力和负载。负载工具和压力工具的相似之处是,它们为软件创造了用其他方式难以创造的环境条件。

5、干扰注入器和噪声发生器

干扰注入器和噪声发生器类似于压力和负载工具,但是在行为上更具有随机性。即产生的压力和负载不断变化。

6、分析工具

书中这里指的是帮助和简化测试工作的常用工具,如:文字处理软件、电子表格软件、数据库软件、文件比较软件、抓屏和比较软件、调试器、二进制——十六进制计算器、秒表、录像机或者照相机等等。

三、软件测试自动化

1、宏录制和回放
  • 最基本的测试自动化类型是录制第一次执行测试用例时的键盘和鼠标操作,然后在需要重新执行这些测试时回放一次(Mac:Quickeys;Windows:Macro Magic)。
  • 宏录制器和播放器是一种驱动程序工具(用于控制和操作被测试软件的工具)。
    书中以Windows系统下的Macro Magic软件为例进行介绍,并说明此方式的三个缺点:
    1)只能自动快速执行测试步骤,不能自动验证执行结果;
    2)即使可以调整回放速度,也不见得总能保持宏同步执行;
    3)GUI的一点点变化都会扰乱捕捉的步骤。
  • 除了这些限制之外,录制和回放宏是自动执行简单测试任务的流行方式。
2、可编程的宏
  • 可编程的宏还可以解决录制宏的许多时序问题,不是依靠绝对延时,而是等待特定条件成立才继续执行。与录制宏相比优点是:可以暂停执行,向测试员提示预期结果,并可以询问测试是通过还是失败。
  • 此方式的缺点:
    1)没有自动检查测试结果的能力;
    2)可编程宏限于直接执行命令行——只能循环和重复。
3、完全可编程的自动测试工具

此类自动测试工具多基于BASIC编程语言,提供的命令为编写测试用例提供了极大的便利,提高可读性和可靠性。其重要特点是进行验证的能力,实际上就是检查软件是否以预期方式运行。实现这一点有以下几种方式:
1) 屏幕捕获。首次执行自动测试时,可以在肯定正确的关键点捕捉并保存屏幕图像,与以后进行测试时的屏幕图像进行比较,如果不同,即为软件缺陷。
2)控件值。比屏幕捕获更进一步,可以检查软件窗口中各种控件的值。
3)文件和其他输出。同样的,如果软件把数据保存在文件中,自动化工具就能在建立文件之后将其读出,与已知正确的文件比较。
验证是自动测试要克服的最后一个大难题。一旦具备该能力,就可以对绝大多数测试用例进行验证,以更加容易或者完全自动化的方式执行测试用例。

四、随机测试

随机测试是目的是模似用户可能的操作,书中把这一类自动化工具称为测试猴子(test monkey)。它的工作是在产品发布之前,模似用户可能的操作方式来补充测试用例,这有可能发现以其他测试方式会漏掉的软件缺陷。

1、笨拙的猴子

笨拙的猴子不会进行验证,只是随机地单击鼠标或者敲击按键。直到死循环、软件或操作系统崩溃。其目的是:
(1)随机输入程序员或测试员,在测试过程中没有想到的奇特序列;
(2)暴露内存泄漏等软件缺陷。

2、半聪明的猴子
  • 总结书上的内容,此方式目的是弥补“笨拙的猴子”在不知道系统崩溃的情况下,继续进行测试的问题。
  • 技巧:解决跟踪测试猴子行为的办法是用摄影机录下屏幕上的内容。
  • “半聪明的猴子”有崩溃辨认的能力。在系统崩溃后,它会以日志等方式,记录测试失败前后的状态,并且可以实现重启计算机,重新开始测试的功能。
3、聪明的猴子

聪明的猴子会阅读软件的状态转换图,从而知道软件的操作方法,像用户那样试用软件。它可以实现的功能是:查看数据、检查操作结果、找出其与预期结果的差别。如果在测试用例中编程设计聪明猴子,它可以随机执行、查找软件缺陷、记录结果。

五、使用测试工具和自动化的实质

在使用测试工具和自动化之前,应该对以下这些重要的问题加以考虑:
1)软件变更。编写的自动化程序具备灵活性,在需要时能够方便快捷地改变。
2)人眼和直觉是不可替代的。
3)验证难以实现。
4)容易过分依赖自动化。
5)不要花费太多时间使用达不到测试软件目的的测试工具和自动化。
6)编写宏、开发工具和编制猴子都属于开发工作。
7)某些工具是入侵式的,可能导致被测试的软件不正常地失败。

小测验

1、说出使用软件测试工具和自动化的一些好处。
它们可以加快执行测试用例的时间;能够提高软件测试员的效率,从而留出更多的时间进行测试计划和测试用例开发。它们精确且不会懈怠。
2、在决定使用软件测试工具和自动化时,要考虑哪些缺点或注意事项?
因为软件在产品开发过程中会变化,测试工具也要随着变化。测试员可能会陷入陷阱,花费太多时间去设计测试工具和自动化,而忽视了实际测试。容易过分依赖自动化。自己动手测试是无可替代的。
3、工具和自动化之间有何差别?
测试工具有助于测试,简化手工完全测试任务。自动化也是一种工具,但是它的执行不需要人工干预。想一想在木匠呼呼大睡时电锯和钉锤能盖好房子吗?
4、查看工具和注入工具有何异同?
这两种类型的工具都可以深入到软件中一般用户在正常情况下无法访问的地方。查看工具是非入侵式,只允许查看发生了什么。注入工具是入侵式的——不仅允许查看发生了什么,还可以操纵。利用这些工具,可以尝试在普通用户级层次难以执行或不可能执行到的测试用例。
5、判断是非:入侵式工具是最佳类型,因为其操作与测试的软件最贴近。
错。入侵式工具在一些情形下可以提供更好的信息和控制,但是他具有可能影响软件和测试结果的不利一面。最好是仔细评估每种情况,选择最适用的工具,且副作用最小。
6、最简单但很有效的测试自动化类型是什么?
记录和回放测试用例,只需要手工执行测试一次,这是非常有效的。他把测试员从单调的重复性操作中解放出来,给测试员更多的时间用来寻找难以发现的软件缺陷。
7、说出可以增加到问题6所述的测试自动化中,使其更有效的一些特性。
简单编写一些步骤,而不只是捕捉步骤。暂停或等待软件对操作相应的能力。使宏知道软件缺陷是否出现的一些简单验证。
8、聪明猴子比宏和笨拙的猴子有什么优点?
他们几乎都有自知能力,知道软件的状态图表,知道自己在哪里,能做什么。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值