SFLKit: : A Workbench for Statistical Fault Localization
Project description
SFLKit: A Workbench for Statistical Fault Localization
SFLKit (https://dl.acm.org/doi/10.1145/3540250.3558915) is an out-of-the-box library and tool for statistical fault localization. Statistical fault localization aims at detecting execution features that correlate with failures, such as whether individual lines are part of the execution.
Language Support
SFLKit supports currently Python 3 but we plan on releasing further language support.
Installation
You need to navigate to the root directory of SFLKit and run
pip install sflkit
If you have a separate Python 2 and Python 3 on your machine you may need to run
pip3 install sflkit
Execution
To execute SFLKit you need to create a config file matching your needs.
Config
[target]
path=/path/to/the/subject
language=Python|C ; The programming language used
[events]
events=Event(,Event)* ; The events to investigate, overwritten by predicates.
predicates=Predicate(,Pridcate)* ; The predicates to investigate, overwrites events.
metrics=Metric(,Metric)* ; The metrics used for investigation
passing=/path(,path)* ; The event files of passing runs, if a dir is provided
; all files inside the tree will be treated as event files
failing=/path(,path)* ; The event files of failing runs, if a dir is provided
; all files inside the tree will be treated as event files
[instrumentation]
path=/path/to/the/instrumented/subject
exclude=file(,file)* ; Files to exclude from the instrumentation, should be a python re pattern
[test]
runner=TestRunner ; The testrunner class, None if no run needed
This is the specification of the config file.
Usage
The general usage of SFLKit is
usage: sflkit [-h] [--debug] -c CONFIG {instrumentation,analyze} ...
A workbench for statistical fault localization python programs and in the future other programs.
optional arguments:
-h, --help show this help message and exit
--debug the debug flag to activate debug information
-c CONFIG, --config CONFIG
path to the config file
command:
The framework allows for the execution of various commands.
{instrumentation,analyze}
the command to execute
instrumentation execute the instrumentation of subject
analyze execute the analysis of the collected predicates
If you have adopted a config file for your investigations you need to execute
sflkit -c path/to/your/config instrument
to instrument the project defined by the file.
After the instrumentation, you can run your tests or experiments. But keep in mind to preserve the EVENTS_PATH
file
for each failing and passing run.
If you want to analyze your runs you need to execute
sflkit -c path/to/your/config analyze
which produces an output with the suggested code locations for the analysis objects and metrics defined in the config file.
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
File details
Details for the file sflkit-0.2.10.tar.gz
.
File metadata
- Download URL: sflkit-0.2.10.tar.gz
- Upload date:
- Size: 41.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c97548ef2cdcc3e64cbc208bf0079a466edfc9f7bc82a4ffa607147be38b491a |
|
MD5 | c3f80ea274b8467169fcd564f134699a |
|
BLAKE2b-256 | 7625a733c9d1d271faf25beb84968848f8dfc97f11ef04e214d7156ee4fa1052 |
File details
Details for the file sflkit-0.2.10-py3-none-any.whl
.
File metadata
- Download URL: sflkit-0.2.10-py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ac2a3f8f74dacc4e03c22e6a1b901049ff83cb568df5d8bc4e7aa8b060a6910 |
|
MD5 | c0dd74fa49a69480b9d60596aa7c0ffd |
|
BLAKE2b-256 | eccc4be3e5d8dcfe032d56075c491b43f9c32824c06263cd6e7c643490acb685 |