测试人员在测试过程中每天都会面临各种测试设计方面的问题和挑战。如何应用各种不同的测试设计技术和测试理念来有效解决这些问题和挑战,是每个测试人员必须考虑的。本书结合作者丰富的软件测试设计理论知识及多年软件测试设计实践经验,并经过不断的提炼和总结,提出了“问题驱动的软件测试设计”的方法。该方法将不同的测试设计技术融合贯通,形成一套完整的测试设计思想,并将它们应用于具体的软件测试设计过程中,从而更好的解决前面提及的各种问题和挑战。问题驱动的软件测试设计的架构如图1所示。
图1 问题驱动的软件测试设计
问题驱动的软件测试设计,详细描述了这四类不同的软件测试设计思想,并通过具体的示例和案例分析,阐述了它们是如何有针对性的解决了测试人员在测试设计过程中面临的四类问题。问题驱动的软件测试设计,主要包括:
1)经典测试设计技术
尽早发现测试对象中的缺陷是软件测试的一个重要目的。尽早发现和修改缺陷,不仅可以降低成本,同时也可以防止将缺陷引入到开发的下个阶段,从而避免缺陷的雪崩效应。为了有效的开展软件测试活动,应该将软件测试贯穿于整个软件开发生命周期,而不仅仅作为代码编写之后的一个阶段。而静态测试是测试人员在早期介入时可以选择的一个重要技术。
除了静态测试,通过运行测试对象而进行的动态测试,也是测试过程中的重要测试活动。测试人员通过应用经典测试设计技术,可以更加科学的选择测试对象的输入以及输入组合进行测试用例的设计,不仅可以有效的减少测试用例的数目,避免测试用例的冗余,而且可以更好的实现对各种覆盖率的要求。
经典测试设计技术主要包括:
◆ 静态测试
◆ 基于结构的测试
◆ 基于规格说明的测试
2)基于质量特性的测试
软件质量是带有内在主观性质的,不同的利益相关者对同一个产品的质量理解和要求是不一样的。作为测试人员,为了更好的满足不同利益相关者对产品质量的不同要求,测试人员需要系统的了解软件或者软件产品应该具备的质量特性。