Skip to content

Companion repository of "Upbeat: Test Input Checks of Q# Quantum Libraries", accepted at ISSTA2024.

License

Notifications You must be signed in to change notification settings

NWU-NISL-Fuzzing/upbeat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Upbeat

Upbeat is a fuzzing tool to generate random test cases for bugs related to input checking in Q# libraries. It leverages open-source Q# code samples to synthesize test programs. It frames the test case generation as a constraint satisfaction problem for classical computing and a quantum state model for quantum computing to produce carefully generated subroutine inputs to test if the input-checking mechanism is appropriately implemented. Our paper can be accessed here.

Install

Use Docker

We offer a Docker image that runs "out of the box". Alternatively, users can also build and run their own image using the provided Dockerfile.

Setup Locally

  1. Ensure you have downloaded the following pip tools.
pip install gdown numpy z3-solver jupyter matplotlib scipy tabulate
  1. Follow the installation instructions in INSTALL.md.
  2. Clone the repository.
git clone https://github.com/NWU-NISL-Fuzzing/upbeat.git

Usage

See this document.

Troubleshooting

Here are some issues we've encountered when installing and running Upbeat on different devices. We hope this page can help you resolve them.

About

Companion repository of "Upbeat: Test Input Checks of Q# Quantum Libraries", accepted at ISSTA2024.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published