System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于突变和多目标搜索的量子程序测试用例生成方法技术_技高网

基于突变和多目标搜索的量子程序测试用例生成方法技术

技术编号:39971343 阅读:11 留言:0更新日期:2024-01-09 00:48
本发明专利技术公开了一种基于突变和多目标搜索的量子程序测试用例生成方法,将突变测试应用于量子程序,并使用多目标搜索算法自动生成量子程序测试集,以尽量少的测试用例杀死尽可能多的突变体。本发明专利技术公开的方法包括以下步骤:输入被测量量子程序的代码、量子程序输入输出的相关参数、软件程序规范等;定义遗传算法中个体的编码方式,每次抽取一个测试用例输入量子程序,多次运行得到输出值及输出分布;根据用户上传的软件程序规范,结合设计的测试失败类型和数理统计方法,评估测试结果;更新各测试用例评估各突变体的对应失败/成功记录,计算两个目标函数,优化搜索。本发明专利技术提出在目标函数中引入折扣因子,降低等价突变体的影响,节约了计算资源。

【技术实现步骤摘要】

本专利技术涉及量子软件工程领域,尤其涉及一种基于突变和多目标搜索的量子程序测试用例生成方法


技术介绍

1、量子计算是一种基于量子力学基本原理的计算,目前是最受关注的新型计算模式之一。量子软件实现了可以在量子计算机上执行的量子应用程序。量子软件工程,即将经典软件工程扩展至量子领域,与经典软件工程类似,量子软件的整个生命周期将包括量子软件需求分析、设计、编码、测试、维护。与经典软件一样,为实现量子应用程序的预期功能,确保量子软件的正确性十分重要。因此,测试是检查量子软件正确性的直接选择。

2、在量子软件测试中,量子比特固有的特性以及硬件条件等各方面的限制使得测试量子程序面临许多困难。一方面,量子计算结果的不确定性、量子的退相干性造成的结果误差、观测计算中的量子比特对于计算过程的破坏等都将是测试中面临的不可避免的问题;另一方面,量子计算机可高质量制备和可操控的量子比特个数受到目前硬件条件的限制。总结以上两个方面可以得出量子软件测试还存在很大的研究空间。


技术实现思路

1、专利技术目的:

2、为了解决上述问题,本专利技术结合传统软件工程中测试数据生成方法,提出从基于搜索的软件工程出发,将搜索算法应用于量子程序测试数据的自动生成;另一方面,考虑到量子程序输入输出数据和程序运行的固有特性,将突变测试应用于搜索算法中目标函数的设计。技术方案:

3、本专利技术公开了一种基于突变和多目标搜索的量子程序测试用例生成方法,包括如下步骤:

4、(1)将被测量量子程序的程序代码文件、量子程序输入输出的相关参数、软件程序规范、测试集的最大大小、测试的难度级别,输入本专利技术提出的方法;

5、(2)选择遗传算法为多目标搜索算法,并定义个体的编码方式。每次抽取测试集中的一个测试用例输入被测量的量子程序,并多次运行该量子程序得到输出值及输出分布;

6、(3)运行量子程序后,根据用户上传的软件程序规范,结合设计的测试失败类型和数理统计方法,评估测试用例的测试结果;

7、(4)设计多目标搜索算法中的两个目标函数,根据(3)中得到的测试结果计算适应度,优化搜索;

8、(5)重复(2)-(4),直至遗传算法完成需要的代数,获得最终生成的测试集。

9、进一步地,所述步骤(1)中的软件程序规范为期望的输出概率分布,是由程序的有效输入、有效输出组成的输入输出对以及该输入所对应的输出出现概率组成的若干个三元组;量子程序输入输出的相关参数包括该程序量子比特总数量、有效输出所测量的量子比特数量。

10、进一步地,在所述步骤(2)中,将量子程序的测试集作为遗传算法的染色体,且组成染色体的单个变量分别对应测试集中的单个测试用例。为了判断生成的变量是否是有效的测试用例,本专利技术定义了量子程序的输入值域。由于量子程序执行结果的不确定性,为了观测输出的分布情况,通常需要重复运行多次量子程序。对运行次数进行计算后,将测试用例传输至qiskit提供的qasm量子计算模拟器中运行并统计输出的运行结果分布。

11、进一步地,所述步骤(3)中判断测试结果的具体步骤如下:

12、(3.1)测试运行后观测分布,将该分布与对应的期望输出概率分布(即软件程序规范)进行比较,得到输出分布结果;

13、(3.2)首先判断是否存在非期望输出,即存在某一输出在软件程序规范中的概率为0,此时,该程序的错误被该测试用例触发,失败类型为非期望输出uof,未通过测试;

14、(3.3)当测试用例的输出情况中不存在非期望输出时,使用假设检验皮尔逊卡方检验的拟合优度来判断测试结果,当拟合优度不满足一定条件时,判断该程序的错误被该测试用例触发,失败类型为wodf,否则该测试用例未触发该程序的错误。

15、进一步地,所述步骤(4)中的两个目标函数设计具体如下所述:

16、第一个目标是最小化测试用例的数量。虽然这种优化对于一般测试来说很重要,但对于量子软件测试来说更重要,因为在公开可用的真正量子计算机(例如ibm的量子计算机)上可执行测试用例的数目是有限的。

17、第二个目标是最小化未被生成的测试套件杀死的突变体的数量。其中,尤其需要解决突变测试中众所周知的问题,即等价突变体。等价突变体即与原始程序等价的突变体,因此不能被杀死。由于检测等效性通常是无法确定的,所以通常不知道哪些突变体是等效的,因此在生成过程中,资源被浪费在试图杀死无法杀死的突变体上。为缓解这个问题,引入了折扣因子,它估计了一个突变体是等价的可能性,这样搜索就可以避免不断试图杀死那些无法杀死的突变体。

18、需要注意的是,在第二个目标函数中,由于需要根据之前生成的测试用例评估各突变体的记录判断其杀死突变体的能力,需要存储各测试用例测试对应的各突变体的失败/成功记录,并不断更新。

19、进一步地,所述步骤(5)中的搜索终止条件为达到设置的最多代数,最终生成以最少的测试用例杀死尽可能多的突变体的测试集。

20、本专利技术与已有技术比,有如下优势:

21、(1)本专利技术从量子逻辑门角度进行量子程序测试,而非具体代码角度,因此能从一个较为根本的层面检测地检测量子软件是否存在问题,便于用户计算、修改所研究的量子程序;

22、(2)本专利技术生成的测试集以尽量少的的测试用例杀死尽可能多的突变体,节省了执行测试用例的计算资源;

23、(3)本专利技术在适应度函数中引入了折扣因子,降低等价突变体的影响,避免了测试用例一直尝试杀死不可被杀死的突变体。

本文档来自技高网...

【技术保护点】

1.基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,所述软件程序规范为被测量子程序的期待输出概率分布,其包含所有有效输入、其有效输出和该输出出现概率组成的三元组。

3.根据权利要求1所述的基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,所述步骤二中包括:

4.根据权利要求3所述的基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,定义测试集在遗传算法中作为个体的编码方式具体包括:

5.根据权利要求3所述的基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,所述步骤三中包括:

6.根据权利要求1所述的一种基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,所述目标函数分别根据最小化测试集的大小和最小化不能被杀死的突变体数目设计得到。

7.根据权利要求6所述的一种基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,第二个目标函数的设计具体包括:

【技术特征摘要】

1.基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,所述软件程序规范为被测量子程序的期待输出概率分布,其包含所有有效输入、其有效输出和该输出出现概率组成的三元组。

3.根据权利要求1所述的基于突变和多目标搜索的量子程序测试用例生成方法,其特征在于,所述步骤二中包括:

4.根据权利要求3所述的基于突变和多目标搜索的量子程序测试用例生成方法,其...

【专利技术属性】
技术研发人员:余桐轩王铁鑫
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1