[发明专利]消息传递并行程序多路径覆盖测试数据协同进化生成方法有效
申请号: | 201810343192.4 | 申请日: | 2018-04-17 |
公开(公告)号: | CN108549607B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 巩敦卫;王子鸣;姚香娟;田甜;孙百才;董南鹏;潘峰 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 221116 江苏省徐州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 传递 并行 程序 路径 覆盖 测试数据 协同 进化 生成 方法 | ||
本发明公布了一种消息传递并行程序多路径覆盖测试数据协同进化生成方法,旨在针对消息传递并行程序高效生成覆盖多目标路径的测试数据。具体步骤如下:(1)为程序每一个调度序列下的每一条目标路径分别构建对应种群,种群中的个体为编码后的程序输入;(2)设计种群性能与个体性能评价指标;(3)使用遗传算法对各种群进化求解,在这一过程中通过个体迁移使得个体趋于向性能好的种群进行迁移;(4)根据每一代进化结果停止已覆盖目标路径对应种群的进化,直到生成覆盖所有目标路径的测试数据或达到最大进化代数,终止算法。
技术领域
本专利属于软件测试领域,具体涉及一种消息传递并行程序多路径覆盖测试数据协同进化生成方法,可用于软件测试中生成覆盖多条目标路径的测试数据。
背景技术
软件测试是软件工程领域的一个重要组成部分,选择一个优秀的测试方法能够有效保证软件质量。在众多软件测试方法中,一种常用的方法是生成高质量的测试数据,并使用测试数据执行程序,通过这样的方式发现程序运行过程中存在的缺陷或错误。但是,采用这样的方法存在两个困难:一是生成有效的测试数据花费的时间较多;二是测试数据的质量难以得到保证。如果能够采取合适的方法,以较小的代价生成高质量的测试数据,那么,能够显著提高测试效率,并降低软件测试的开销。
并行程序,即含有两个或两个以上并行执行进程的程序,由于简单的开发方式、实现的便捷性,以及优秀的兼容性能,越来越受到程序开发者的重视,已经成功应用于包括图像处理、海洋模拟、化学过程等众多领域。并行程序的测试问题也逐渐被人们重视。并行程序与串行程序的重要区别是具有众多调度序列,即程序执行过程中进程的调度顺序形成的序列。调度序列的存在,使得并行程序的执行具有不确定性,即相同程序输入执行的调度序列不同,就可能得到不同的运行结果,从而使得并行程序的测试更为复杂。
在多种并行程序设计方法中,采用消息传递环境扩展传统的编程语言最为常用,其中的消息传递接口也是目前最广泛的并行编程环境,已经成为并行程序的国际标准。因此,这种消息传递并行程序的测试数据生成问题十分值得研究。
这类程序的路径覆盖测试数据生成问题可以通过遗传算法进行求解,常用方法是使用路径相似度作为适应值函数,通过静态分析对调度序列约简,并选取性能最好的调度序列,根据该调度序列构建一个种群,再采用遗传算法进化生成测试数据。若存在多条目标路径时,常用方法是依次生成覆盖每条目标路径的测试数据,或是选择合适的个体适应值计算方式,以期望执行一次算法即可生成覆盖多条目标路径的测试数据。然而,这些方法没有充分利用并行程序调度序列提供的信息,没有考虑调度序列间性能的差异,导致算法效率不太令人满意。
协同进化是一种使用多个种群进行进化的遗传算法,能够有效利用多种群信息。在进化过程中,通过评价个体与种群的适应性,以及不同种群的性能,使个体向性能好的种群迁移,可以提高进化的方向性。针对并行程序测试数据生成问题,如果使用这种方法,将并行程序的调度序列对应为种群,将程序输入转化为种群中的个体,并在进化过程中评价调度序列的性能,使程序输入逐渐向性能好的调度序列对应的种群迁移,那么,能够合理利用调度序列信息,提高测试数据生成的效率。
发明内容
本发明针对消息传递并行程序每一个调度序列下的每一条目标路径分别构建对应种群;接着,给出种群与个体的性能评价方法;然后,依据种群与个体性能,在遗传算法进化过程中合理执行个体迁移操作;最后,进化生成覆盖各目标路径的测试数据。
本发明所要解决的技术问题:克服现有方法的不足,提供一种测试数据生成方法,用以提高消息传递并行程序生成多路径覆盖测试数据的效率,降低测试成本。
本发明的技术方案:提出了一种消息传递并行程序多路径覆盖测试数据协同进化生成方法,其特征在于如下步骤:
步骤1:构建种群
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810343192.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:接口测试方法及装置
- 下一篇:一种APP的UI截图测试方法及系统