论文部分内容阅读
软件测试是确保软件质量的有效手段之一。在实际的软件测试过程中软件产品的更新和升级会增加相应的测试用例。随着时间的推移,测试用例集中就会出现冗余。因此需要对测试用例集进行约简,但是测试用例集的约简会对其检错率产生影响。所以如何平衡两者之间的关系,是一个重要的研究课题。 已有的实验数据表明,程序耦合度高的部分易于出现错误。将耦合度量应用于测试用例集约简技术中,以提高测试用例集的错误检测率是本文的研究出发点。研究内容包括基于逆向程序流的切片技术、耦合度量公式的改进等。 已有的基于逆向程序流的切片方法存在切片结果不够准确的问题,本文研究发现该问题产生的原因为:分析过程中没有删除已处理的变量、没有根据程序实际执行时语句的先后次序进行分析等。对此本文为每个待切片点变量建立逆向扫描指针、用CFG表示出每个函数的程序流以及用函数调用关系对应表来处理函数之间的调用,通过给出了一个改进的基于逆向程序流的切片方法,解决了相应问题,同时将基于逆向程序流的切片方法扩展到了面向对象的语言中。 针对现有的基于程序切片的耦合度量公式没有对耦合公共部分不同类型的节点进行区分,导致耦合度量结果不够合理的问题,本文给出了一个改进的耦合度量公式。该公式通过区分耦合公共部分不同类型的节点,更好地反映了程序的耦合性质。本文还提出了一种将基于程序切片的耦合度量应用于测试用例集约简过程中的策略,并给出了其中构造覆盖准则的算法。该策略较好地平衡了约简后测试用例集的规模和错误检测率。 最后,通过实验检验了基于程序切片的耦合度量在测试用例集约简中应用的合理性和有效性。