Ch 4. 检查产品说明书
本章将开始介绍首个实际操作的测试——检查产品说明书,以便在编写软件之前就找出缺陷。除此之外,本章还将包括对白盒测试和黑盒测试、静动态测试、审查产品说明书的细节等内容。
开始测试
除了大爆炸模式之外,每一种模式中开发小组都会根据需求文档编写一份产品说明书,用于定义软件是什么样的。产品说明书通常是利用文字和图形描述产品的书面文档。
提示
要求团队为小型软件编写细致的文档似乎有些过分,为什么不干脆让程序员按自己的想法编写程序呢?
开发过程中开发人员常常会产生这种疑问,这时便需要 QA 人员、测试人员和项目管理者来说明文档的重要性:程序员之间对于产品外观、功能和使用方式的理解可能会有所偏差,在测试员和程序员之间亦如此。为了确保最终产品符合客户要求以及正确计划测试投入的唯一方法,就是在产品说明书中完整描述产品。
黑盒测试与白盒测试
- 黑盒测试(或称功能性测试、行为测试):测试人员只关注软件的功能,而不关注软件的内部代码结构。正如其名,黑盒测试中测试人员将软件看做黑盒(对于用户而言就是这样),只关注软件的输入和输出,以及软件的功能是否符合需求。
- 白盒测试(或称透明盒测试、基于覆盖的测试):测试人员访问程序员的代码,并根据代码来制定测试用例。它依赖于对程序细节的严密检验,对软件的逻辑路经进行测试。在程序的不同点检验“程序的状态”以判定其实际情况是否和预期的状态相一致。
- 白盒测试容易产生无形的偏见,因为一旦测试员开始尝试适应代码操作,测试便可能变得不够客观。
备注
想想 第三章 中的确认和验证的区别。
对软件的黑盒测试与白盒测试狭义上说都是确认的方法:测试员依照产品说明书的要求,检查软件是否符合预期。如果产品说明书出现问题,那么黑盒测试和白盒测试都会出现问题。
静态测试与动态测试
- 静态测试:不对软件进行运行,仅仅进行静态分析和审核。
- 动态测试:对软件进行运行,检查软件的行为。
示例
让我们以检查二手汽车的例子来说明静态测试和动态测试的区别。
- 静态测试:检查汽车的外观、内饰、发动机、车轮等是否完好。
- 动态测试:开车试驾,检查汽车的行驶性能、刹车性能、转向性能等。
测试产品说明书
测试产品说明书属于静态黑盒测试。无论产品说明书的格式如何——图文兼具,亦或是仅仅存在于核心人员的脑海中——静态黑盒测试都能够实施。
对产品说明书进行高级审查
定义软件产品是个复杂而模糊的过程,期间难免会出现问题。为了更有效地对其进行测试,测试员必须意识到要站在一个较高的层次开展审查,而非陷入对细节的吹毛求疵中。
换言之,应该先理解产品说明书的内容及其背后的诸多为什么和怎么做,再去尝试找出那些根本性的问题、疏忽。
假设自己是客户
审查产品说明书时,测试员应该且最容易做的就是站在客户的角度看待问题。毕竟,客户是软件的最终使用者,他们的需求和期望定义了