With the advance in quantum computing in recent years, quantum software becomes vital for exploring the full potential of quantum computing systems. Quantum programming is different from classical programming, for example, the state of a quantum program is probabilistic in nature, and a quantum computer is error-prone due to the instability of quantum mechanisms. Therefore, the characteristics of bugs in quantum software projects may be very different from that of classical software projects. This work aims to understand the characteristics of bugs in quantum software projects, in order to provide insights to help devise effective testing and debugging mechanisms. To achieve this goal, we conduct an empirical study on the bug reports of 125 quantum software projects. We observe that quantum software projects are more buggy than classical software projects and that quantum project bugs are more costly to fix than classical project bugs. We also identify the types of the bugs and the quantum programming components where they occurred. Our study shows that the bugs are spread across different components, but quantum-specific bugs particularly appear in the compiler, gate operation, and state preparation components. The three most occurring types of bugs are Program anomaly bugs, Configuration bugs, and Data type and structure bugs. Our study highlights some particularly challenging areas in quantum software development, such as the lack of scientific quantum computation libraries that implement comprehensive mathematical functions for quantum computing. Quantum developers also seek specialized data manipulation libraries for quantum software engineering like Numpy for quantum computing. Our findings also provide insights for future work to advance the quantum program development, testing, and debugging of quantum software, such as providing tooling support for debugging low-level circuits.
翻译:随着近年来量子计算的进步,量子软件对于探索量子计算系统的全部潜力至关重要。例如,量子软件的编程与古典编程不同,例如,量子程序的性质是概率性的,量子计算机由于量子机制的不稳定而容易出错。因此,量子软件项目中的错误特性可能与古典软件项目的特性大不相同。这项工作的目的是了解量子软件项目中的错误特性,以便提供洞察,帮助设计有效的测试和调试机制。为了实现这一目标,我们对125量子软件项目的错误报告进行了实验性研究。我们观察到量子软件项目比古典软件项目项目更具有概率性,而量子项目错误比典型项目错误更容易出错。因此,量子软件项目项目项目的特点可能与古典软件项目项目项目的特点大不相同。我们的研究显示,这些错误分布在不同组成部分中,但量子错误特别出现在编程、门操作和州级编制中。我们最经常发生的三种类型的错误是程序性错误、配置型量子软件项目比古典软件项目项目项目项目更难,我们用来进行定量的量子计算,例如数学计算模型的量序计算。我们用来测量的计算系统,用来测量的计算,用来研究,例如数学的量子计算系统,例如数学的量子计算机的量子计算机的计算,以及数据计算,用来进行量子测试的计算。