论文部分内容阅读
软件测试是目前保障软件质量最主要和最有效的方法。它是为了发现程序中的错误而执行程序的过程。手工测试繁琐而复杂,不仅要耗费大量时间和成本,还易出错。因此,自动化测试意义重大。测试用例直接影响测试的质量和成本,因而自动生成测试用例是实现软件测试过程自动化的关键。
统一建模语言(Unified Modeling Language,UML)是一种标准化的可视化建模语言。它作为系统的设计规约可用于系统测试工作,其中,基于UML模型自动产生测试用例是重要研究内容。由于UML是程序的抽象设计规约,直接基于UML模型生成的测试用例通常是抽象的,还需经测试人员修改和完善后才能直接用于测试;或者需对UML建模作一定限制和扩展后,才能基于UML模型自动生成相应程序的具体测试用例。前者的自动化程度受到限制,后者在增加UML建模复杂性的同时也提高了对UML使用人员的要求,在一定程度上影响了UML的易用性。因此,如何基于UML模型自动生成更有效的测试用例成为一项有意义的工作。本文针对UML活动图,研究了基于活动图模型的测试用例自动生成技术,主要工作如下:
(1)本文提出了一种基于UML活动图自动生成测试用例的新方法。该方法通过随机测试方法产生大量测试用例驱动待测程序运行,使用活动图的运行时验证技术对运行结果进行验证并获取测试用例对活动图的覆盖信息,最后筛选出满足活动图的测试充分性准则的测试用例集。
(2)上述方法中,要满足活动图的路径覆盖准则,完全随机方法可能会产生大量冗余的测试用例,影响了方法效率。本文进而提出一种基于UML活动图的反馈指导自动生成测试用例方法。该方法使用机器学习中的分类技术,通过对已运行的测试用例及其对活动图的覆盖信息的学习构建分类器来指导生成覆盖目标路径的测试用例,从而减少测试过程中冗余测试用例的产生。
基于本文研究工作,我们开发了原型工具并进行了实例研究。实验表明:本文提出的基于UML活动图自动生成测试用例的方法能产生满足活动图测试充分性准则的测试用例集,改进后的基于UML活动图的反馈指导自动生成测试用例方法确实减少了测试过程中的冗余测试用例数量,从而证明了本文方法的实用性和有效性。