Skip to main content

MUTERIA (MUlti-Tools and criTERIA framework for automated software testing)

https://github.com/muteria/muteria

Muteria is a Software Analysis/Testing framework that integrate multiple tools. Muteria support tools from various programming languages which are supported by implementing a driver.

Report Sample. sample

Muteria can be used through:

  • Its API
  • Commnad Line Interface (CLI)

Suported Systems

Muteria is written in Python and thus can run on Windows, Linux or macOS.

Installation

muteria requires Python 3.

  1. Install Muteria by running:
pip install muteria
  1. View the usage help:
muteria --help

Usage

Muteria requires to have the underlying tools installed on the system.

Usage example C (in Docker container)

A docker image, with preinstalled tools, can be used to run muteria on a sample C language program. The installed tools are: GNU GCov, KLEE, Shadow, Mart, SEMu.

  1. Pull the docker image:
docker pull thierrytct/cm
  1. run the docker image in a container:
docker run -it --rm thierrytct/cm bash
  1. Download the example program:
git clone https://github.com/muteria/example_c.git 
  1. Change into the example program directory:
cd example_c
  1. run using the configuration file in ctrl/conf.py
muteria --config ctrl/conf.py --lang c run

Usage example Python

Example of measuring coverage for a python program using coverage.py.

  1. Install coverage.py:
pip install coverage
  1. Download the example program:
git clone https://github.com/muteria/example_python.git 
  1. Change into the example program directory:
cd example_python
  1. run using the configuration file in ctrl/conf.py
muteria --config ctrl/conf.py --lang python run

Drivers development

Testcase Tools Drivers

Details on writing drivers for testcase (test generation) tools can be found here.

Test Criteria Tools Drivers

Details on writing drivers for test criteria tools can be found here.

Current Limitation

  • Interface difference between multiple versions of the same tool

Development

Things to fix

  • Ensure tools plugins do not leave the repo srcs or exes in an infected state. They must cleanup the changes made. Ensure that by cleaning for them at top level (when the driver's methods are called in the meta tools)

  • Handle reporting test error in stats (first within meta test execution)

  • Enable having no criterion set

  • Complete and test the web UI.

  • Choice of test level (unit, system, ...)

  • Complete the documentation

  • Augment the test suite

Features

  1. parallelism
  • Implement option to run phases of the analysis in parallel.
  • Implement option to run tests in parallel
  1. Web Interface
  • Front-end UI
  • server (back-end)
  • Write custom configuration function on-line
  • Write manual tests on-line
  1. Command Line Interface
  • basic interaction to launch execution
  1. Library API interface
  • API in docstring
  • make the documented API available
  1. Reporting
  • Basic metric display
  • cross project reporting (for experiment and evolution)
  • plotting
  1. Checkpointing and Logging
  • checkpoint and logging implemented
  • logging optional
  • checkpointing optional
  1. Multiple projects
  • obtain data from previous versions execution in current (regression)
  • merge data across multiple project (for experiments)
  1. Test Adequacy Criteria(TAC)
  • Support adding new TACs
  • Support enabling/disabling TAC during execution
  1. Tools
  • support plugging in test generation tools
  • support plugging in TAC instrumenting tools
  • support plugging in TAC test objectives selection/prioritization.
  • support plugging in test case selection prioritization techniques.
  • support adding test formats (for test execution)
  • support adding build systems.
  • support custom build script
  1. Programming languages
  • support adding programming languages
  • support multi-languages tools

Release files for muteria 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for muteria 0.2.1
File Size Uploaded
muteria-0.2.1.tar.gz 344.7 kB Details

Release files / muteria-0.2.1.tar.gz

Download URL muteria-0.2.1.tar.gz
Size 344.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6003af833489aa44657bcf41b43724fa31bcf7b2df5aad797a5c1e7216b92fd2
BLAKE2b-256 checksum
How to use checksums
820d487fa8de3f4d3e9782f8941b6797070c972281f09c4f033f3acc3c0de302
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file

0.2

1 release file

0.1.116

1 release file

0.1.113

1 release file

0.1.112

1 release file

0.1.111

1 release file

0.1.110

1 release file

0.1.109

1 release file

0.1.108

1 release file

0.1.107

1 release file

0.1.106

1 release file

0.1.105

1 release file

0.1.104

1 release file

0.1.103

1 release file

0.1.102

1 release file

0.1.101

1 release file

0.1.100

1 release file

0.1.99

1 release file

0.1.98

1 release file

0.1.97

1 release file

0.1.96

1 release file

0.1.95

1 release file

0.1.94

1 release file

0.1.93

1 release file

0.1.92

1 release file

0.1.91

1 release file

0.1.90

1 release file

0.1.89

1 release file

0.1.88

1 release file

0.1.87

1 release file

0.1.86

1 release file

0.1.85

1 release file

0.1.84

1 release file

0.1.83

1 release file

0.1.82

1 release file

0.1.81

1 release file

0.1.80

1 release file

0.1.79

1 release file

0.1.78

1 release file

0.1.77

1 release file

0.1.76

1 release file

0.1.75

1 release file

0.1.74

1 release file

0.1.73

1 release file

0.1.72

1 release file

0.1.71

1 release file

0.1.70

1 release file

0.1.69

1 release file

0.1.68

1 release file

0.1.67

1 release file

0.1.66

1 release file

0.1.65

1 release file

0.1.64

1 release file

0.1.63

1 release file

0.1.62

1 release file

0.1.61

1 release file

0.1.60

1 release file

0.1.59

1 release file

0.1.58

1 release file

0.1.57

1 release file

0.1.56

1 release file

0.1.55

1 release file

0.1.54

1 release file

0.1.53

1 release file

0.1.52

1 release file

0.1.51

1 release file

0.1.50

1 release file

0.1.49

1 release file

0.1.48

1 release file

0.1.47

1 release file

0.1.46

1 release file

0.1.45

1 release file

0.1.44

1 release file

0.1.43

1 release file

0.1.42

1 release file

0.1.41

1 release file

0.1.40

1 release file

0.1.39

1 release file

0.1.38

1 release file

0.1.37

1 release file

0.1.36

1 release file

0.1.35

1 release file

0.1.34

1 release file

0.1.33

1 release file

0.1.32

1 release file

0.1.31

1 release file

0.1.30

1 release file

0.1.29

1 release file

0.1.28

1 release file

0.1.27

1 release file

0.1.26

1 release file

0.1.25

1 release file

0.1.24

1 release file

0.1.23

1 release file

0.1.22

1 release file

0.1.21

1 release file

0.1.20

1 release file

0.1.19

1 release file

0.1.18

1 release file

0.1.17

1 release file

0.1.16

1 release file

0.1.15

1 release file

0.1.14

1 release file

0.1.13

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.0

1 release file

0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page