一种基于组合测试的量子软件自动测试系统及方法技术方案

技术编号:34912369 阅读:13 留言:0更新日期:2022-09-15 07:01
本发明专利技术公开了一种基于组合测试的量子软件自动测试系统及方法,该系统涉及量子软件工程,包括输入模块、测试系统模块、配置模块及输出模块;输入模块收集被测量子程序的参数并输入至测试系统模块;测试系统模块包括测试用例生成模块、测试用例运行模块和测试评估模块;测试用例生成模块基于收集被测量子程序的参数,通过PICT工具生成测试用例并集合为测试集;测试用例运行模块抽取测试集中的测试用例运行,对运行次数进行计算,然后传输至Qiskit提供的Qasm量子计算模拟器中运行并输出运行结果;测试评估模块对该运行结果进行评价判断,以生成测试评估结果;将测试系统最终得到的测试结果输出给用户界面,完成量子软件的自动测试。动测试。动测试。

【技术实现步骤摘要】
一种基于组合测试的量子软件自动测试系统及方法


[0001]本专利技术涉及量子软件工程领域,尤其涉及一种基于组合测试量子软件自动测试系统及方法。

技术介绍

[0002]随着科技的高速发展,量子计算机也开始进入人们的视野,这是一种利用量子力学规律进行信息处理,借助量子比特,达到存储以及高速运算的装置,进行量子编码后,通过运行量子算法、量子程序快速处理信息并得到结果。
[0003]量子程序在许多领域也能够有较大的应用,例如金融、化学等,随着量子程序的不断发展,量子软件工程也应运而生。类似于经典软件工程,量子软件生命周期包括量子软件需求工程、量子软件设计、编码实施、量子软件测试、维护等。
[0004]然而,由于量子比特本身的特性,如不可复制、不可测量等,量子软件的实施在很多方面都存在较大困难。在量子软件测试方面,更是与经典软件测试有较大不同。目前量子软件测试方法、量子软件自动测试等方面存在较大缺口。

技术实现思路

[0005]为解决上述问题,本专利技术公开了一种基于组合测试的量子软件自动化测试工具系统及方法,能够实现量子软件的自动化测试。
[0006]一种基于组合测试的量子软件自动测试系统,包括输入模块、测试系统模块、配置模块及输出模块;输入模块收集用户提供被测量子程序的参数并输入至测试系统模块;测试系统模块包括测试用例生成模块、测试用例运行模块和测试评估模块;测试用例生成模块基于收集被测量子程序的参数,通过PICT工具生成测试用例,若干个测试用例集合为测试集;所述测试用例运行模块抽取测试集中的测试用例运行,对运行次数进行计算,然后传输至Qiskit提供的Qasm量子计算模拟器中运行并输出被测量子程序的运行结果;所述测试评估模块对该运行结果进行评价判断,以生成测试评估结果;将测试系统最终得到的测试结果输出给用户界面,完成量子软件的自动测试。
[0007]一种基于组合测试的量子软件自动测试方法,包括如下步骤:步骤1,将被测量子程序的程序代码文件、量子程序输入输出的相关参数、程序规范以及组合测试的相关参数通过输入模块输入测试系统;其中,组合测试工具将利用组合测试相关参数生成测试集;步骤2,基于测试系统模块运行测试用例,并判断测试结果:每次抽取测试集中的一个测试用例作为输入来初始化被测量子程序,并多次运行该量子程序得到输出值及输出分布;将程序规范与测试用例的运行输入输出进行比较,判断每个测试用例的具体测试结果,即通过测试或未通过测试且属于何种失败类型;若该测试集中存在某一个而测试用例未通过测试,则该测试集未通过;若该测试集中每一个测试用例都通过测试,则该测试集通过;步骤3,运行结束后,向用户提供步骤1中生成的测试集、量子程序在测试系统中的运行结果即测试用例运行后的输出值和输出分布结果,以及测试集的测试结果。
[0008]作为优选,步骤1中的软件程序规范为由程序的有效输入、有效输出组成的输入输出对,以及该输入所对应该的输出的出现概率组成的若干个三元组;量子程序输入输出的相关参数包括该程序量子比特总数量、有效输入所赋值的量子比特编号、有效输出所测量的量子比特数量;组合测试的相关参数包括生成测试集的数量、组合测试覆盖强度。
[0009]作为优选,将所述被测量子程序有效输入所赋值的量子总比特数以及组合测试覆盖强度输入组合测试工具中,能够得到一组满足测试需求的测试集;组合测试工具通过使用不同的随机种子以生成不同的测试集,实现多组测试集的生成。
[0010]作为优选,步骤2中定义测试失败类型分别为非期望输出uof以及输出分配故障和 wodf;根据程序量子比特总数量、有效输入所赋值的量子比特编号、有效输出所测量的量子比特数量以及所述测试集中一个测试用例作为输入以初始化被测的量子程序。
[0011]作为优选,运行量子程序后,根据用户上传的软件程序规范,结合所设计的测试失败类型以及数理统计方法,得出每一个测试用例的测试结果,若所有测试用例均通过测试,则该测试集通过测试,否则该测试集的测试结果为失败。
[0012]作为优选,评价、判断每个测试用例的具体测试结果的步骤如下:
[0013]步骤2.1,输入测试用例i,进行运行次数计算:由于量子程序运行结果的不确定性,每一个测试用例需要多次运行从而得到分布结果,因此对于某一测试用例,即输入i,我们运行num
rep
次将会得到一个或多个输出o1,

,o
n
,每一个输出对应一个频数c1,

,c
n
,其中, c1+c2+

+c
n
=num
rep
;步骤2.2,根据软件程序规范,输入i对应一个或多个有效输出o1,o2,

,o
m
,其中,m为输入i对应有效输出个数,每个输出值都存在期望输注概率,即,Prop(i,o
j
)=p
j
,0<j≤m;步骤2.3,测试运行后观测分布,将该分布与对应的期望输注概率分布进行比较,得到输出分布结果;首先判断是否存在非期望输出,即存在某一输出o
k
,在软件程序规范中的概率为0,Prop(i,o
k
)=0,0<k≤m;此时,该程序的错误被该测试用例即输入i触发,失败类型为非期望输出uof,未通过测试,直接进入步骤3,否则进入步骤2.4;步骤2.4,当测试用例的输出情况中不存在非期望输出时,使用假设检验皮尔逊卡方检验的拟合优度来判断测试结果,当拟合优度不满足一定条件时,判断该程序的错误被该测试用例即输入i触发,失败类型为wodf,否则该测试用例未触发该程序的错误。
[0014]作为优选,步骤3中生成三个文件,分别是每一个测试集;每一个测试用例的运行结果,包括输出以及其对应频数;每一个测试集及其每个测试用例的测试结果,若失败,则标明失败类型。
[0015]本专利技术与现有技术相比,有如下有益效果:
[0016]1、本专利技术从量子逻辑门角度进行量子程序测试,而非具体代码角度,因此能从一个较为根本的层面检测地检测量子软件是否存在问题,便于用户计算、修改所研究的量子程序;
[0017]2、本专利技术对测试用例的测试结果判断方法准确度较高,使用组合测试的方法对于检
‘0’

‘1’
序列具有较强的适用性;
[0018]3、本专利技术的所采用的测试方法具有较高的测试效率,使用组合测试方法所生成的测试集相对较小,因此运行测试集的开销也相对较小;
[0019]4、本专利技术系统对用户友好,操作方便,用户仅需上传相关量子程序信息以及相关的测试工具参数(或使用默认参数)即可获得该次自动测试的结果。
附图说明
[0020]图1为本专利技术一个实施例的总览示意图;
[0021]图2为本专利技术一个实施例所使用的被测量子程序的量子电路实例;
[0022]图3为本专利技术一个实施例的测试用例测试结本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于组合测试的量子软件自动测试系统,其特征在于,包括输入模块、测试系统模块、配置模块及输出模块;所述输入模块收集用户提供被测量子程序的参数并输入至测试系统模块;所述测试系统模块包括测试用例生成模块、测试用例运行模块和测试评估模块;测试用例生成模块基于收集被测量子程序的参数,通过PICT工具生成测试用例,若干个测试用例集合为测试集;所述测试用例运行模块抽取测试集中的测试用例运行,对运行次数进行计算,然后传输至Qiskit提供的Qasm量子计算模拟器中运行并输出被测量子程序的运行结果;所述测试评估模块对该运行结果进行评价判断,以生成测试评估结果;将测试系统最终得到的测试结果输出给用户界面,完成量子软件的自动测试。2.根据权利要求1所述的一种基于组合测试的量子软件自动测试方法,包括被测量子程序,其特征在于,还包括如下步骤:步骤1,将被测量子程序的程序代码文件、量子程序输入输出的相关参数、程序规范以及组合测试的相关参数通过输入模块输入测试系统;其中,组合测试工具将利用组合测试相关参数生成测试集;步骤2,基于测试系统模块运行测试用例,并判断测试结果:每次抽取测试集中的一个测试用例作为输入来初始化被测量子程序,并多次运行该量子程序得到输出值及输出分布;将程序规范与测试用例的运行输入输出进行比较,判断每个测试用例的具体测试结果,即通过测试或未通过测试且属于何种失败类型;若该测试集中存在某一个而测试用例未通过测试,则该测试集未通过;若该测试集中每一个测试用例都通过测试,则该测试集通过;步骤3,运行结束后,向用户提供步骤1中生成的测试集、量子程序在测试系统中的运行结果即测试用例运行后的输出值和输出分布结果,以及测试集的测试结果。3.根据权利要求2所述的基于组合测试的量子软件自动测试方法,其特征在于,所述步骤1中的软件程序规范为由程序的有效输入、有效输出组成的输入输出对,以及该输入所对应该的输出的出现概率组成的若干个三元组;量子程序输入输出的相关参数包括该程序量子比特总数量、有效输入所赋值的量子比特编号、有效输出所测量的量子比特数量;组合测试的相关参数包括生成测试集的数量、组合测试覆盖强度。4.根据权利要求3所述的基于组合测试的量子软件自动测试方法,其特征在于,将所述被测量子程序有效输入所赋值的量子总比特数以及组合测试覆盖强度输入组合测试工具中,能够得到一组满足测试需求的测试集;所述组合测试工具通过使用不同的随机种子以生成不同的测试集,实现多组测试集的生成。5.根据权利要求4所述的基于组合测试的量子软件自动测试方法,其特征在于,步骤2中定义测试失败类型分别为非期望输出uof以及输出分配故障和wodf;根据程序量子比特总数量、有效输入所赋值的量子比特编号、有效输出所测量的量子比特数量以及所述测试集中一个测试用例作为输入以初始化被测的量子程序。6.根据权利要求2至5任意一项所述的基于组合测试的量子软件自动测试方法,其特征在于,运行量子程序后,根据用户上传的软件程序规范,结合所设计的测试失败类型以...

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

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

1