论文标题
用多个子例程测试量子程序
Testing Quantum Programs with Multiple Subroutines
论文作者
论文摘要
由于量子程序的不确定性,量子程序中的错误是要追踪的挑战。因此,测试是确保量子软件质量的必不可少的方法。现有的测试方法仅着重于用量子电路或单个子例程测试量子程序,因此无法有效地测试使用多材料的量子程序。在本文中,我们首先讨论了测试多订阅量子程序时必须考虑的几个关键问题,并指出现有测试方法的局限性和问题。然后,我们提出了一个新的框架,用于测试允许单元和集成测试的多订阅量子程序。我们的框架包括两个新颖的测试覆盖标准,用于量子变量的等效类别分区,以指导我们的测试任务和技术,以测试具有几种常见模式的量子程序。我们还讨论了如何根据我们的框架生成测试案例。为了评估我们的测试框架的有效性,我们实施了一种称为Qsharptester的工具,用于用多个子例程测试Q \#程序。我们用它来对数百个来自七个原始Q \#程序的突变程序进行实验。实验结果表明,我们的测试方法比现有程序可以处理更广泛的量子程序,并且在几乎所有故障突变程序上都表现良好。
Errors in quantum programs are challenging to track down due to the uncertainty of quantum programs. Testing is, therefore, an indispensable method for assuring the quality of quantum software. Existing testing methods focus only on testing quantum programs with quantum circuits or single subroutines and, therefore, cannot effectively test quantum programs with multi-subroutines. In this paper, we first discuss several critical issues that must be considered when testing multi-subroutine quantum programs and point out the limitations and problems with existing testing methods. We then present a novel framework for testing multi-subroutine quantum programs that allow for both unit and integration testing. Our framework includes two novel test coverage criteria for the equivalent class partition of quantum variables to guide our testing tasks and techniques to test quantum programs with several common patterns. We also discuss how to generate test cases based on our framework. To evaluate the effectiveness of our testing framework, we implemented a tool called QSharpTester for testing Q\# programs with multiple subroutines. We used it to conduct experiments on hundreds of mutation programs deriving from seven original Q\# programs. The experimental results show that our testing methods can deal with broader types of quantum programs than existing ones and perform well on almost all faulty mutation programs.