基于知识图谱的软件测试用例复用方法研究
作者单位:南昌航空大学
学位级别:硕士
导师姓名:郑巍
授予年度:2022年
学科分类:081203[工学-计算机应用技术] 08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:随着移动互联网的快速发展,近年软件规模也呈爆炸式的增长,软件代码量越来越多,百万行的代码软件比比皆是。对于如此大体量的软件来说,如果每一个功能的测试用例都要重新编写,那无疑要使用大量的人力时间成本,这就限制了软件的测试迭代速度。因此,研究如何提高编写高质量测试用例速度对测试人员有着极其重要的意义。本文针对测试用例的特点,引入了知识图谱,利用知识图谱中丰富的语义信息提出了两种测试用例复用的方法。具体研究工作如下:1.知识图谱可以把测试文档中的项目、测试项、测试用例、测试记录、问题报告单等数据关联起来,丰富测试用例的“上下文,以便更好的对测试用例进行推荐,找到软件缺陷。本文基于构建的软件测试用例知识图谱,提出了一种基于知识图谱的测试用例复用方法(Test Case Reuse Based on Knowledge Graph,TCRKG)。首先通过领域专家并结合测试文档制定构建本体的规则,根据本体和结构化的数据完成知识图谱的构建;然后根据测试中可能常用的问题,通过朴素贝叶斯分类模型设置问题模板;在确定问题模板之后,得到测试用例集合,在这些候选测试用例集合中寻找相似度最大的测试用例;最后通过测试用例相似度计算,给用户推荐相似度最高的测试用例集合。2.在TCRKG方法的基础上,为了挖掘测试用例的语义信息,提出了一种多维知识神经网络(Multidimensional Knowledge Neural Network,MKNN)。MKNN方法的关键一环是多维度知识感知卷积神经网络(Multi-dimension Knowledge-aware Convolutional Neural Network,MCNN),能够很好的处理测试用例多属性句子表示。MCNN的输入是由词嵌入和实体嵌入两通道组成,来提取句子的特征表示。为了对每个用户都做到精准推荐,考虑不同用户的偏好,给不同的用户加上不同的权重。因此,在MKNN中设计了一个注意力模块,以动态聚合用户关于当前候选测试用例的历史记录。实验结果表明,通过实验的横向和纵向对比,MKNN比传统测试用例复用方法具有更高的推荐准确度,可以有效的提高测试用例的复用率。本文提出的软件测试用例复用方法通过整合测试用例及其相关的软件测试资源,让一个个孤立的测试用例汇聚成具有关联的知识图谱。利用构建的软件测试用例知识图谱,为挖掘测试用例的语义信息提供了条件,也为测试用例的精准推荐提供了可能。