测试软件是一项艰苦的工作。当对测试用例进行等价划分时,必然会减少了测试的覆盖范围。如果测试员需要做更多的测试,该如何办?

  方法是开发并使用工具。

  一、工具和自动化的好处

  在大多数软件的开发模式中,软件发布之前要多次重复代码??测试??修复的过程。

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

  软件测试工具和自动化可以在有限的时间内执行多次测试。

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

  1)速度;

  2)效率;

  3)准确度和精确度;

  4)节省资源;

  5)仿真和模拟;

  6)坚持不懈。

  注意:软件测试工具不能代替软件测试员??它们只能帮助软件测试员更好地工作。

  一定要注意,使用测试工具不见得总是对的,有时手工测试是不可代替的。

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

  二、测试工具

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

  测试工具的好处是使用时并不是总需要深入了解工具在怎样做或者做什么。

  测试员不必了解工具是怎样做到的,只要知道它做得到可以了??这是黑盒测试。

  另一方面,测试员要有效使用这些工具,需要具备一些白盒技能以及底层协议的知识。

  1、非入侵式工具和入侵式工具的区别:

  1)非入侵式工具:如果工具仅用于监视和检查软件而不对其进行修改,认为是非入侵式工具。

  2)入侵式工具:如果工具以任何方式修改了程序代码或者控制了操作环境,属于入侵式工具。

  由于入侵的程度各有不同,测试员通常设法使用侵入性尽量小的工具,以减少工具影响测试结果的可能性。

  2、查看器和监视器

  查看器(viewer)或者监视器(monitor)测试工具能够看到正常情况下看不到的运行的细节。

     分析器是查看器的一个例子。

  代码覆盖率分析器是如何提供一种方式来查看哪些代码行得以运行、什么函数正在运行、执行测试时所运行的代码分支的。大多数的代码覆盖率分析器是入侵式工具,因为它们需要编译并链接到原程序中才能获得所需信息。

  2)通信分析器(communicationsanalyzer)是另一种查看器的例子。

  它只是监听线路,提取经过的数据,在另一台计算机上显示。利用该系统可以查看通信数据的正确性以及观察软件缺陷为什么会产生。

  通过查看从线上提取的数据,可以确定问题是出于创建数据的机器还是解释数据的机器。这种类型的系统对软件是非入侵式的。

  在网络中,真正监视器被称为嗅探器(sniffer)。

  3)大多数编译器所带的代码调试器也可以看做是查看器,看到一般用户看不到的数据的工具都可以归类为查看测试工具。

  3、驱动程序

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

  简单的驱动程序的例子是批处理文件(batchfile)。在DOS时代很流行,然而,在现金的操作系统和编程语言下,执行测试程序有更多复杂的方法。如java和perl脚本可以取代老的MS-DOS批处理文件,并且windows任务调度程序可以在全天24小时的任意时刻执行各种测试程序。

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