Quantum computing is getting increasing interest from both academia and industry, and the quantum software landscape has been growing rapidly. The quantum software stack comprises quantum programs, implementing algorithms, and platforms like IBM Qiskit, Google Cirq, and Microsoft Q#, enabling their development. To ensure the reliability and performance of quantum software, various techniques for testing and analyzing it have been proposed, such as test generation, bug pattern detection, and circuit optimization. However, the large amount of work and the fact that work on quantum software is performed by several research communities, make it difficult to get a comprehensive overview of the existing techniques. In this work, we provide an extensive survey of the state of the art in testing and analysis of quantum software. We discuss literature from several research communities, including quantum computing, software engineering, programming languages, and formal methods. Our survey covers a wide range of topics, including expected and unexpected behavior of quantum programs, testing techniques, program analysis approaches, optimizations, and benchmarks for testing and analyzing quantum software. We create novel connections between the discussed topics and present them in an accessible way. Finally, we discuss key challenges and open problems to inspire future research.
翻译:量子计算正日益受到学术界和工业界的关注,量子软件领域也随之迅速发展。量子软件栈包含实现算法的量子程序,以及支持其开发的平台,如IBM Qiskit、Google Cirq和Microsoft Q#。为确保量子软件的可靠性与性能,研究者已提出多种测试与分析技术,例如测试生成、缺陷模式检测和电路优化。然而,由于相关研究数量庞大且涉及多个学术社区,全面了解现有技术面临困难。本文对量子软件测试与分析的最新进展进行了全面综述。我们整合了来自量子计算、软件工程、编程语言和形式化方法等多个研究领域的文献。本综述涵盖广泛主题,包括量子程序的预期与非预期行为、测试技术、程序分析方法、优化策略以及量子软件测试与分析的基准。我们在所讨论的主题之间建立了新的联系,并以易于理解的方式呈现。最后,我们探讨了关键挑战与开放性问题,以启发未来研究。