软件产品的质量不仅依赖于产品的基本功能特性,产品的实际表现行为,即非功能特性也是客户评价产品质量的重要因素。因此,测试人员在测试设计过程中,不仅要考虑功能测试用例,也需要考虑产品的非功能测试用例,从而更好的实现产品对不同质量特性的覆盖。测试人员可以根据软件产品应该具备的质量特性,更好的设计测试用例来验证和检查产品的质量是否满足质量要求。
基于质量特性的测试主要包括:
◆ 质量模型
◆ 功能测试
◆ 非功能测试
3)基于风险的测试
测试人员对软件或者软件产品进行测试的时间是有限的。另外,由于成本等方面的原因,测试人员能够获取的测试资源也是非常有限的。在有限的测试时间和测试资源的情况下,测试人员必须考虑如何确定测试的重点和测试优先级以有效的开展测试活动。
采用基于风险的测试策略,测试人员首先可以根据风险对测试范围进行优先级的划分,将测试设计和执行放在优先级高的区域,即选择测试重点;其次,可以将测试资源分配到高风险的地方,从而更加有效的利用测试资源;第三,可以帮助测试人员确定测试对象在哪些地方容易出现错误,并设计相应的测试用例来发现这些错误;第四,基于风险可以更好的对测试状态和测试结果进行报告,从而更好的对测试过程和测试质量进行监控,并根据实际的测试状态对后续测试进行及时调整。
基于风险的测试主要包括:
◆ 认识风险
◆ 基于风险的测试技术
◆ 基于风险的测试管理
4)基于经验的测试
软件或者软件产品的需求规格说明是进行测试用例设计和执行的基础。但是实际的测试过程中,测试人员面对的需求可能是不完善的、经常变更的,甚至是没有任何需求文档。这个时候,如何利用测试团队以前的经验,对于有效开展测试活动是至关重要的。
不管是测试人员自己的经验还是测试团队的经验,它们都是开展基于经验的测试的基础。测试的经验可以帮助选择针对测试对象的显现和隐现的需求;也可以帮助测试人员获取测试点,从而帮助测试用例的设计;假如测试人员对测试对象的功能和测试范围没有任何经验,通过探索性的测试活动,可以逐步了解测试对象,并不断调整测试的内容和方向。
基于经验的测试主要包括:
◆ 基于缺陷分类的测试
◆ 探索性测试
◆ 基于应用的测试
测试人员在测试过程中将会面临各种各样的测试设计相关的问题和挑战。问题驱动的软件测试设计,提供了四类不同的测试思想,它们可以有针对性的解决测试设计过程中面临的问题。问题驱动的软件测试设计中的四类测试设计思想并不是完全独立的,就像测试设计过程中各种问题会交织出现一样,测试人员也需要综合应用这些测试技术。
问题驱动的软件测试设计,综合了软件测试设计技术和作者多年软件测试设计实践经验,可以为读者提供系统的测试设计思路,从而不断提高测试人员的测试设计能力。