|
好的测试员具有一种直觉,这种直觉引导他们彻底全面地思考测试场景。使测试员产生这种直觉的技术术语就是故障模型,因为故障模型提供了一个模型或框架,用来讨论代码中的故障是如何以及为什么能在软件执行时引起软件失效。对于测试员来说,重要的是能够构造出一个准确的故障模型,并在测试过程中使用该模型,确保能检查出隐错最可能隐藏的地方。
故障模型基于两个基本问题:软件环境和软件能力。
一、软件环境
1.人类用户
对于软件来说,一般有两种界面:GUI和API
1)通过GUI控件提交输入
其中,对数据传送控件进行测试是个难题,另一个关键问题是使用GUI控件的次序。测试员必须确保开发人员使用了适当的假定,并保证由预定的输入序列软件不会轻易地由于改变调用次序而使之失效。
2)通过程序提交输入
用于测试API的策略和用于测试GUI的策略非常相似。不同的是API测试员处理的是API调用和参数选择,而GUI测试员处理的是GUI控件和数据。唯一的差别是传送机制:测试API的是程序,测试GUI的是键盘。
2.文件系统用户
作为测试员,其职责是理解受测软件处理的文件及文件格式。对相应的行为,测试员也必须能够用要求的内容组成文件来进行测试。
3.操作系统用户
操作系统是直接与应用程序交互的唯一实体。它是所有实际用户与应用程序之间的中介,通过提供内存、文件处理、堆空间等直接与应用程序交互,操作系统的这个部分就是内核。
4.软件用户
作为测试员,我们必须确保我门的应用程序能处理针对外部资源的预期行为,以及合理但非预期的行为
二、软件能力
所有软件均具有的四种基本能力为:
1)软件从其环境中接受输入
2)软件生成输出,并将输出提交给它的环境
3)软件内部以一种或多种数据结构形式存储数据
4)软件使用输入和存储的数据执行计算
知道测试员的故障模型很简单:如果软件在实施上述四个任务之一时出错,就说明软件失效。
1.测试输入
我们的职责是测试软件能否防止接收无效值,并测试有效输入的非法组合迷惑该软件。
2.测试输出
输出不仅在格式和数量上应该是正确的,而且在逻辑上也应该是正确的。
3.测试数据
测试员的职责就是针对数据结构进行输入-往里增加、从中获取、将其上溢,将其下溢,并做一些操作,搅乱数据结构,从而使系统失效。
4.测试计算 |
|