软件测试笔记(十五)- 自动化测试和测试工具

了解如何使用计算机软件的测试其他软件。了解如何使用工具测试和自动化测试的不同方法。

一、工具和自动化的好处

如果要测试某项特性,也许需要不止一次执行测试,而是重复多次,还要检查确认在前面的测试中发现的软件缺席修复之后,同时又没有引入新的软件缺陷,重复执行测试的过程称为 回归测试

工具和自动化测试的主要属性:

  1. 速度。自动化会以10倍、100倍、甚至1000倍的速度来执行测试用例。
  2. 效率。如果一个测试工具减少了执行测试用例的时间,测试员就会有更多时间进行测试计划,考虑新的测试用例。
  3. 准确度和精确度。测试工具可以一如既往的每次执行同样的测试,并且毫无差错地检查结果。
  4. 节省资源。测试工具可以用来模拟真实的情况,大大减少执行测试需要的物力资源。
  5. 仿真和模拟。测试工具常用来代替正常情况系与产品连接的硬件或软件。
  6. 加持不懈。测试工具和自动化测试用于不会劳累或者版半途而废。

了解测试工具能做什么以及怎么做,考虑如何用它们来完成测试任务。

二、测试工具

使用工具的类型取决于测试的软件类型,以及是黑盒测试还是白盒测试。

注意:非入侵式 工具和入侵式工具的重大差别。测试员通常设法使用侵入性尽量小的工具,以减少工具影响到测试结果的可能性。
(1)如果工具仅用于监视和检查软件而不对其进行修改,就认为是 非入侵式工具
(2)但是如果工具一任何方式修改了程序代码或者控制了操作环境,就属于 入侵式工具

  • 查看器和监视器
  1. 查看器(viewer) 或者 监视器(monitor) 测试工具能够看到在正常情况系看不到的软件运行的细节。
  2. 通信分析器(communications analyzer 或者comm analyzer) ,是一种查看器,允许查看通过 络或者其他通信电缆传输的原始协议数据。在 络中,这种监视器被称为嗅探器(sniffer).

大多数编译器附带的代码调试器也可以看做查看器,因为它们允许程序员或者白盒测试员查看内部变量值和程序状态,任何能够洞察系统,看到一般用户看不到的数据的工具都可以归类为查看测试工具。

  • 驱动程序

驱动程序 是控制和操作被测试软件的工具。

最简单的驱动程序的例子是 批处理文件(batch file) :是指依先后顺序执行的程序或命令的一个简单清单。

技巧:在设法驱动被测试的软件室,想一想从外部控制程序的所有可行办法。然后,想办法用自动提供测试输入的方式代替外部控制。

  1. 和驱动程序本质上时相反的,桩不控制或者操作被测试软件,相反,它接收或者相应软件发送的数据。
    当软件需要与外部设备进行通信时经常要用到桩。
  2. 仿真器(emulator) :是在实际使用中用来代替真正设备的设备。

仿真器和桩的区别在于桩还给测试程序提供手段来查看和解释发送给它的数据,桩是仿真器的超集。

  • 压力和负载工具

压力和负载工具用于向被测试软件增加压力和负载。

  1. *** 压力程序*** 可以分别设置内存量、磁盘空间大小、文件数量以及在该机器上运行软件的其他可用资源。
  2. 负载工具 通过增大负载,是软件不看重负。可以方便地设置到相应的测试级别、执行测试、观看结果。

负载工具和压力工具的相似之处是,他们为软件创造了用其他凡是难以创造的环境条件。

  • 干扰注入器和噪声发生器

干扰注入器(interference injectors)噪声发生器(noise generators) 类似于压力和负载工具,但是在行为上更具有随机性。

决定在哪里和如何使用干扰注入器和噪声发生器时,考虑何种外部因素会影响测试软件,然后设法改变和操纵这次影响因素看软件如何应对。

  • 分析工具

分析工具(analysis tool)虽然常常不受中试,但是它们能够促进测试,节省大量的时间。

  1. 文字处理软件。
  2. 电子表格软件。
  3. 数据库软件。
  4. 文件比较软件。
  5. 抓屏和比较软件
  6. 调试器
  7. 二进制——十六进制计算器
  8. 秒表
  9. 录像机或者照相机

三、软件测试自动化

测试自动化只是另一类测试工具,但是值得特别考虑。

之前所学的测试工具虽然确实有效,但是仍然需要手工操作或者监视。假如将这些工具结合起来,启动、执行几乎不需要人工干预会怎么样/p>

软件测试自动化(test automation) :是指可以执行测试用例、查找软件缺陷、分析看到的信息、记录结果。

  • 宏录制和回放

最基本的测试自动化类型是录制第一次执行测试用例时的键盘和鼠标操作,然后在需要重新执行这些测试时回放一次。

设置宏的相关步骤:

  1. 名称。
  2. 重复次数。
  3. 出发事件。
  4. 捕捉对象。
  5. 回放速度。
  6. 回放位置。

注意:在使用宏录制器捕捉鼠标移动和单击时小心。程序并非总是在屏幕上的统一位置启动和出现。把回放未知设置为相对程序窗口比设置为屏幕的绝对位置更好,但是,即便如此,GUI的一丁点变化也会扰乱捕捉的步骤。

  • 可编程的宏

可编程宏是在简单录制和回放的变化上的一大进步。预期通过录制第一次执行测试时的操作来创建可编程宏,不如在创建时编写回放系统遵循的简单指令。

注意:

  1. 首先,可编程的宏限于直接执行命令行——只能循环和重复。
  2. 在常规变成语言中可以见到的变量和决策语句不能使用,而且没有自动检查测试结果的能力。
  • 完全可编程的自动测试工具

完全可编程的自动测试工具 :是指具有成熟编程语言的能力,加上驱动被删除软件的宏命令,以及进行验证的能力。

自动化工具最重要的就是要实现检查软件是否以预期方式运行:

  1. 屏幕捕获。
  2. 控件值。
  3. 文件和其他输出。

四、随机测试:猴子和大猩猩

测试猴子(test monkey) (:这一类自动测试不是为了帮助执行或者自动执行测试用例而设计的,其目标是模拟用户可能的操作。

  • 笨拙的猴子

笨拙的猴子:是指一点都不了解被测试软件,只是随机地单击鼠标或者敲击按键,直到俩件事情之一发生——或者完成循环,或者软件、操作系统崩溃。

只靠点击鼠标或者敲击按键来发现软件缺陷也许没有意义,但这样做得原因如下:

  1. 如果有足够的时间和精力,就像猴子学莎士比亚名著一样,随机输入最终可能打出程序员和测试员没有想到的奇特序列。
  2. 不停重复和使用笨拙的猴子可能会暴露内存泄漏等软件缺陷,这类缺陷要在正常使用软件数小时或者数天之后才能出现。
  • 半聪明的猴子

笨拙的猴子可能特别有效,它们易于编写,可能会发现导致崩溃的严重缺陷。然而,它们缺乏一些使其更加有效的重要特性。增加这些特性来提高猴子的纸上,使其成为半聪明的猴子。

  1. 大多数可编程自动化工具提供了一种方式,是测试总是针对某些特定应用程序,或者应用程序关闭了停止工作。
  2. 具有崩溃辨认能力,如果为猴子编写新功能,使其能识别发生率崩溃,并红心启动计算机,然后重新开始测试。就能多找出缺陷来。
  • 聪明的猴子

聪明的猴子:如果猴子可以看懂描述软件的全部状态信息,它就可以像用户那样试用软件,只是使用更快,而且可以验证遇到的情况。

聪明的猴子也不仅限于查找崩溃缺陷。他同时查看数据、检查操作结果、找出其余预期结果的差距。

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

测试自动化不是万能的。如果正确规划和执行的话,工具和自动化可以使测试效率大大提高,并且能发现其他方式不能发现的缺陷。

在使用测试工具和自动化是要注意以下问题:

  1. 软件变更。编写的自动糊程序具备灵活性,在需要是能够方便快捷地改变。
  2. 人眼和直觉不可替代。
  3. 验证难以实现。要保证测试工具只检查需要的画面,而且能够在产品开发过程中高效处理变化。
  4. 容易过分依赖自动化。这些工具有助于提高效率,但是需要在软件运行时使用它们,并进行实际的测试,才能找出软件缺陷。
  5. 编写宏、开发工具和编制猴子都属于开发工作。软件测试员应该遵守要求程序员遵守的标准和规范。
  6. 某些工具是入侵式的,可能导致被测试的软件不正常地失败。

参考文献

  1. 《软件测试(原书第2版)》
  2. 《软件测试的艺术(原书第3 版)》

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月23日
下一篇 2019年7月23日

相关推荐