Quantum software development is the process of conceiving, specifying, designing, programming, documenting, and testing executable quantum programs that are meant to run on practical quantum hardware. Even though quantum software development research has gained traction over the
...
Quantum software development is the process of conceiving, specifying, designing, programming, documenting, and testing executable quantum programs that are meant to run on practical quantum hardware. Even though quantum software development research has gained traction over the years, it is still mainly focused on problem analysis, language design, and implementation. Software testing, which is the process of executing a program or application with the intent of finding faults, and verifying that the software product is fit for use is yet to receive substantial attention in quantum software development. This work answers the questions of to what extent are classical software testing techniques transferable to quantum programs, how effectively can they be used, what would an application independent theory for testing quantum software look like, and how practical is it with the current state of physical hardware. Using the principles of spectrum based fault localization, we show that we are able to properly detect and localize bugs in the state teleportation application and blind quantum computing application, even with the presence of noise in the hardware.