论文部分内容阅读
随着软件系统在各个领域的深入和渗透,软件质量已经成为软件产品最重要的要素,只有高质量的软件产品才能赢得市场和消费者的欢迎.而软件测试是保证软件质量的最重要的手段之一,只有做好软件测试,才能从根本上提高软件的质量.状态图测试是近年来研究的较多的一种基于规格说明的测试,状态图测试最早可以追溯到Tsun S.Chow[4]的理论.状态图能够发现系统对象行为状态方面发生的错误,而这些错误是结构化测试和功能性测试所不能够发现的.在状态图的类测试方面的研究虽然有很多,但是却比较零散,不同个人和组织的理论研究都是基于不同的理论基础,而这些理论基础之间并没有进行很好的统一,很少有人对这些研究成果作出客观的分析与比较,更没有给出基于状态图测试的实践指导.本文针对这种情况,对基于状态图的测试覆盖度标准及测试策略进行了比较和分析,我们认为现行的基于状态图的测试理论可以分为基于图的测试理论,基于测试树理论[4]以及基于对具有改变事件的使能转换的UML状态图的测试理论[1],我们统一了这些测试策略和测试覆盖度标准,同时给出了状态图引起并产生的错误类型.在此基础上,我们对这些状态图测试策略和覆盖度标准进行了分析和比较,给出了它们之间的包含关系以及三种理论研究之间的联系,分析了这些测试策略和覆盖度标准的错误检查能力,从而为测试人员在应用和选择这些测试策略和覆盖度标准时提供了一个清晰、明确的依据.此外,我们提出了两点参照标准用于在类测试中如何应用基于状态图的测试.参照标准(一)针对单个状态图的测试给出了实际的指导,并以注释打印系统和电梯系统的实例说明了参照标准(一)是可行的,并能够得出很好的结果.参照标准(二)针对多个状态图建议使用并行的测试方法,我们通过具体的实例说明并行测试可以发现单独对一个状态图使用Chow方法所不能发现的错误.Jeff[1]虽然给出了转换的全谓词测试策略,但是该测试策略:(1)仅仅对单个转换中的谓词进行了讨论;(2)没有考虑系统达到前状态的路径选择的问题.我们在第四章中给出了自己的测试策略和路径选择标准:转换序列的全谓词测试策略和前状态路径选择标准.前者讨论了如何针对转换序列(多个转换)的全谓词来产生测试用例,后者给出了系统达到前状态的路径选择标准,从而弥补了Jeff方法的不足.