Skip to content

Conversation

@J2000A
Copy link

@J2000A J2000A commented Jun 29, 2023

Introduction

Implementation of the Test Automation for Incremental Analysis - TAIA as part of the bachelor's thesis "Automatic Generation of Test Cases for Incremental Static Analysis". The script enables the user to create and run incremental tests for Goblint based on mutations generated on a single c file provided by the user. With this, you can create with ease thousands of incremental tests based on the .c files from the normal regression tests. This script requires some changes to the analyzer repository, which are implemented in this pull request.

Project Structure

TAIA-test-automation-for-incremental-analysis Contains all components of the "Test Automation for Incremental Analysis - TAIA"
├── README.md Start point for using the "Test Automation for Incremental Analysis - TAIA"
├── RUN.sh Script for creating and running incremental tests based on a .c file
├── RUN_BATCH.sh Script for creating and running incremental tests on a directory
├── clang-mutations Directory containing the clang-tidy checks needed for the mutation generation
│     ├── MUTATIONS.md
│     ├── README.md
├── sample-files Directory containing files you can use as input files for getting started
│     ├── batch-ignore-files Directory with ignore-files you want to use when running on all regression tests
├── scripts Directory with all scripts for the Mutation Generator
│     ├── README.md Information about the scripts

Implementation

For creating and running incremental tests with the "Test Automation for Incremental Analysis - TAIA" the following steps are executed:

  • Processes the options from the terminal and asks the user interactively for the inputs if the information was not yet provided by the terminal options (run_cli.py)
  • Generate one mutation using the clang-tidy checks (generate_mutations.py)
  • Generate all possible mutations and manage them (generate_programs.py)
  • Add __goblint_check()s to the programs (add_check.py)
  • Annotate the generated checks (add_check_annotations.py)
  • Based on the programs with the annotated check create the test files (generate_tests.py)
  • Run the tests with the update_suite.rb script from the analyzer repository (run_tests.py)

@J2000A J2000A marked this pull request as ready for review August 15, 2023 07:36
@jerhard
Copy link
Member

jerhard commented Jul 16, 2024

Close this for now, as we currently are not working on the incremental analysis.

@jerhard jerhard closed this Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants