Table of Contents
Fetching ...

A Survey on Testing and Analysis of Quantum Software

Matteo Paltenghi, Michael Pradel

TL;DR

An extensive survey of the state of the art in testing and analysis of quantum software, including expected and unexpected behavior of quantum programs, testing techniques, program analysis approaches, optimizations, and benchmarks for testing and analyzing quantum software.

Abstract

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.

A Survey on Testing and Analysis of Quantum Software

TL;DR

An extensive survey of the state of the art in testing and analysis of quantum software, including expected and unexpected behavior of quantum programs, testing techniques, program analysis approaches, optimizations, and benchmarks for testing and analyzing quantum software.

Abstract

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.
Paper Structure (65 sections, 11 figures, 7 tables)

This paper contains 65 sections, 11 figures, 7 tables.

Figures (11)

  • Figure 1: Overview of the topics covered in the survey.
  • Figure 2: Examples of a quantum circuit (a) that creates an entangled state (b) for which we have 50% probability to observe the bitstring 00 and 50% to observe 11. In (c), we show how the output can be represented as a linear combination of the basis states.
  • Figure 3: Circuit with a Hadamard gate and measurement (a), the corresponding output state after the application of the gate operation (b), and the result of the final measurement (c).
  • Figure 4: Qiskit program generating the circuit in Figure \ref{['fig:examples']} and performing measurements.
  • Figure 5: Application of Hadamard gate in Silq (top) and its circuit representation (bottom)
  • ...and 6 more figures

Theorems & Definitions (4)

  • definition 1: Distribution-based program specification
  • definition 2: Quantum state-based program specification
  • definition 3: Unitary-based program specification
  • definition 4: Program equivalence