论文标题
量子软件生态系统中的错误特征
Bug Characteristics in Quantum Software Ecosystem
论文作者
论文摘要
近年来,随着量子计算的进步,量子软件对于探索量子计算系统的全部潜力至关重要。量子编程与经典编程不同,例如,量子程序的状态本质上是概率的,并且由于量子机制的不稳定,量子计算机容易出错。因此,量子软件项目中错误的特征可能与经典软件项目的特征大不相同。这项工作旨在了解量子软件项目中错误的特征,以便提供见解以帮助设计有效的测试和调试机制。为了实现这一目标,我们对125个量子软件项目的错误报告进行了实证研究。我们观察到,量子软件项目比经典软件项目更易于车,而量子项目错误比经典项目错误更为昂贵。我们还确定了错误发生的错误类型和量子编程组件。我们的研究表明,这些错误分布在不同的组件上,但是量子特异性错误尤其出现在编译器,门操作和状态制备组件中。发生的三种错误类型是程序异常错误,配置错误以及数据类型和结构错误。我们的研究强调了量子软件开发中一些特别具有挑战性的领域,例如缺乏实施量子计算的全面数学功能的科学量子计算库。量子开发人员还寻求用于量子软件工程(如量子计算)的量子软件工程的专业数据操纵库。我们的发现还为将来的工作提供了见解,以推动量子计划开发,测试和调试量子软件,例如为调试低级电路提供工具支持。
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.