在前面的文章中,我们提到了测试类型定义需要综合考虑各个方面的输入,包括开发文档定义的需求(包括涉及的一些标准与规范等)、ISO/IEC 9126质量模型、测试经验,以及通过分析在研发阶段发现的缺陷、产品发布之后用户反馈的缺陷分析等。图1是结合数据通信产品的特点,而定义的测试类型:
图1 某个数据通信产品中的测试类型
1)测试类型定义
(1)功能性(Functionality)
功能性指的是软件或者产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力。通过评价特征集和程序的能力、交付的函数的通用性、和整体系统的安全性来评估。例如:假如NIF端口收到的数据包外层EtherType类型和端口的VLAN S-Tag EtherType不一样,那么将数据包看成是untagged的类型,并给数据包加上一个相应的VID类型。
(2)可靠性(Reliability)
可靠性指的是在软件或者产品指定条件下使用时,软件产品维持规定性能级别的能力,以及在异常或者错误的情况下,恢复的能力等。比如系统的容错性(Fault Tolerance)、易恢复性(Recovery)、健壮性(Robustness)、稳定性(Stability)等。例如:系统在异常断电之后,在断电恢复之后能够正常恢复系统,并且系统的业务可以正常恢复工作。
(3)易用性(Usability)
易用性指的是软件或者产品在指定条件使用时,软件产品被理解、学习、使用和吸引用户的能力。易用性是一个非常主观的测试类型,而且在需求中很难定义。因此这个测试类型需要测试人员了解作为用户的一般使用习惯和方式。包括易操作性(Operability)、易学习性(Learnability)、易理解性(Understandability)、易安装性(Installability)等。例如:软件系统的版本程序安装,应该有具体的安装指导步骤,并且是简单易懂,容易操作;
(4)可移植性(Migration)
可移植性指的是软件或者产品、或者数据等从一种环境转换到另一种环境的能力。例如:R1.0版本的数据库,可以直接应用到R2.0版本的软件中。
(5)配置(Configuration)
配置是指产品或者软件在运行状态下,是否能够按照提供的参数范围进行配置。例如:MAC地址的老化时间的范围是15秒到3825秒之间,并且以15秒作为步长,老化时间的缺省值是300秒,即5分钟。
(6)容量(Volume)
容量是指产品或者软件在运行状态下,是否能够达到需求要求的最大容量值。例如:假如VLAN是802.1ad模式,MAC地址的学习模式是IVL。在IVL模式中,最多可以创建的VLAN数是256。
(7)性能(Performance)
性能指的是软件或者产品在典型的配置运行条件下,它的处理速度、响应时间、资源消耗、吞吐量、效率、丢报率等。例如:RSTP的收敛时间不能超过15秒。
(8)一致性(Compliance)
一致性在这里主要是指协议的一致性,即系统实现的协议和标准、规范或者行业标准之间的符合程度。例如:VLAN的帧结构应该和IEEE 802.1Q 1998标准保持一致。
2)应用测试类型
测试类型的定义需要综合考虑各个方面的输入,并且它并不是一次性的测试活动。随着测试对象的变化、测试人员经验技能等的增加,需要不断更新测试类型,以反映知识、技能和经验的继承。
下面以大家熟知的手机呼叫功能为例,根据前面定义的测试类型,简单细化得到了一些测试条件。从该案例中,我们可以看到通过测试类型是如何帮助测试人员拓阔思路,从而提高测试覆盖率的(实际的测试用例要复杂和全面一些,这里只是作为一个例子进行讲解)。
表1 测试类型在手机呼叫功能中的应用
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|