Quantum Software Testing: A Brief Introduction

Quantum software testing concentrates on testing quantum programs to discover quantum faults in the programs cost-effectively. Given the foundations in quantum mechanics, the way quantum computations are performed is significantly different than classical computing. Therefore, quantum software testing also differs from classical software testing. There has been quite an interest in building quantum software testing techniques since 2019 in the software engineering (SE) community. Thus, we aim to introduce quantum software testing to the SE community. In particular, we will present the basic foundations of quantum computing and quantum programming as circuits, followed by the current state of the art on quantum software testing. Next, we will present some basic quantum software testing techniques and finally give the research directions that deserve attention from the SE community.

[1]  Shaukat Ali,et al.  Generating failing test suites for quantum programs with search (hot off the press track at GECCO 2022) , 2022, SSBSE.

[2]  J. Fernandes,et al.  Metamorphic Testing of Oracle Quantum Programs , 2022, 2022 IEEE/ACM 3rd International Workshop on Quantum Software Engineering (Q-SE).

[3]  José Campos,et al.  Mutation Testing of Quantum Programs Written in QISKit , 2022, 2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion).

[4]  Xinyi Wang,et al.  QuSBT: Search-Based Testing of Quantum Programs , 2022, 2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion).

[5]  T. Yue,et al.  When software engineering meets quantum computing , 2022, Commun. ACM.

[6]  M. Piattini,et al.  Quantum software testing: State of the art , 2021, J. Softw. Evol. Process..

[7]  T. Yue,et al.  Muskit: A Mutation Analysis Tool for Quantum Software Testing , 2021, 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[8]  Miryung Kim,et al.  QDiff: Differential Testing of Quantum Software Stacks , 2021, 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[9]  Xinyi Wang,et al.  Quito: a Coverage-Guided Test Generator for Quantum Programs , 2021, 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[10]  Paolo Arcaini,et al.  Assessing the Effectiveness of Input and Output Coverage Criteria for Testing Quantum Programs , 2021, 2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST).

[11]  Gushu Li,et al.  Projection-based runtime assertions for testing and debugging Quantum programs , 2020, Proc. ACM Program. Lang..

[12]  Rajagopal Nagarajan,et al.  Property-based Testing of Quantum Programs in Q# , 2020, ICSE.

[13]  Lei Zhang,et al.  Is Your quantum Program Bug-Free? , 2020, 2020 IEEE/ACM 42nd International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER).

[14]  Margaret Martonosi,et al.  Statistical Assertions for Validating Patterns and Finding Bugs in Quantum Programs , 2019, 2019 ACM/IEEE 46th Annual International Symposium on Computer Architecture (ISCA).

[15]  Andriy V. Miranskyy,et al.  On Testing Quantum Programs , 2018, 2019 IEEE/ACM 41st International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER).

[16]  Yue Gao,et al.  QuanFuzz: Fuzz Testing of Quantum Program , 2018, ArXiv.