第二章 手工测试
1.软件缺陷的根源
本书讨论两种缺陷:
a.程序员引入
b.运行环境导致
2.缺陷预防和检测
(1)缺陷预防
缺陷预防技术一般是从开发角度来说的,包括:
a.更好的设计规范
b.是时代码审核制度(code review)
c.运行代码静态分析工具(static analysis tool)
d.运行单元测试(unit testing)
所有缺陷预防技术都有以下根本问题:
a.开分人员是糟糕的测试者
b.处于静止状态的软件
c.缺乏数据
(2)缺陷检测
测试人员一般使用两种形式的动态测试:
a.自动化测试(通过编写代码来测试一个应用程序)
b.手工测试(使用程序的用户界面,手工输入数据进行测试)
3.手工测试(manual testing)
(1)手工测试中使用脚本:
脚本(script)用于指定该使用什么样的输入值,也定义了如何去判断正确的软件输出结果。
(2)探索式测试:
如果完全抛开测试脚本,就称为探索式测试。
测试结果、测试实例和测试文档会在运行测试时创建。
最适用于使用“敏捷开发过程(agile method)”的web应用程序。
缺点在于测试人员有可能在测试中没有重点。在没有测试文档的情况下,测试人员如何保证良好的测试覆盖率呢?
指导方法的重要性。从测试策略的角度来说,明确到底要测什么和怎么测同样重要。
两种指导方法:局部探索式测试法(exploratory testing in the small)和全局探索式测试法(exploratory testing in the large)
a.局部探索式测试法:辅助测试人员在测试过程中及时作出决定。
b.全局探索式测试法:用于帮助测试人员设计整体测试计划和测试策略。
单个单独的测试用例应该覆盖软件哪些功能?
哪些软件的功能必须放在一起?
应该先测哪个功能?
如何决定哪个功能先测,哪个后测?
如果一个项目中有多个测试人员,应该用什么样的测试策略,以确保各个测试人员的工作相辅相成?
对于这些较高层次上有关总体测试和测试策略的决定,测试人员如何用探索式软件测试法进行取舍呢?
c.同时使用探索式测试和脚本测试:
这两种方法可以很好地结合起来。
使用正式脚本可以为探索式测试设立一个明确的框架范围,探索式测试则可以提高测试脚本测试的有效性,为脚本中的测试用例提供更多种多样的变化。