Mutation Testing for Ethereum Smart Contracts
Project description
vertigo
Vertigo is a mutation testing framework designed to work specifically for smart contracts. This mutation testing framework implements a range of mutation operators that are either selected from previous works or tailored to solidity.
Quick Start Guide
To install vertigo, execute the following command:
pip3 install --user eth-vertigo
You can now run vertigo on a truffle project with the following command (assuming you have a development
network configured in yourtruffle-config.js
):
vertigo run --network development
Depending on your environment it might be required to specify the location of the truffle executable:
vertigo run --network development --truffle-location <node_dir>/bin/truffle
There are a few additional parameters available that allow you to tweak the execution of vertigo:
$ python vertigo.py run --help ⬡ 9.11.2 [±master ●●]
Usage: vertigo.py run [OPTIONS]
Performs a core test campaign
Options:
--output TEXT Output core test results to file
--network TEXT Network names that vertigo can use
--rules TEXT Universal Mutator style rules to use in mutation
testing
--truffle-location TEXT Location of truffle cli
--sample-ratio FLOAT If this option is set. Vertigo will apply the
sample filter with the given ratio
--exclude TEXT Vertigo won't mutate files in these directories
--help Show this message and exit.
Publications and Articles
Practical Mutation Testing for Smart Contracts - Joran J. Honig, Maarten H. Everts, Marieke Huisman
Introduction into Mutation Testing - Joran Honig
If you want to cite vertigo, please use the following:
@InProceedings{10.1007/978-3-030-31500-9_19,
author="Honig, Joran J.
and Everts, Maarten H.
and Huisman, Marieke",
title="Practical Mutation Testing for Smart Contracts",
booktitle="Data Privacy Management, Cryptocurrencies and Blockchain Technology",
year="2019",
publisher="Springer International Publishing",
pages="289--303"
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for eth_vertigo-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 908fcbdf4abcec0d4033c603e07bba6e9b6c4e9efdaae7b84e7769d6be9876f9 |
|
MD5 | 0adc5e14fef2ec6c9ffcc0aa58ccf564 |
|
BLAKE2b-256 | 2ba3f8a1cdf0666f358760c8be26fda8d44cd8c88f1d8b1b3def3e36ed335a85 |