Python Test Suite Analyzer Tool

Job ID: 38097927

Budget: $30 – $250 AUD

requires the development of a comprehensive tool to analyse a provided test suite for a piece of software. The analysis must cover two key white-box testing metrics: statement coverage and branch coverage. The aim is to assess the efficacy and thoroughness of the test suite in detecting faults and ensuring robustness in the software.


Objectives
Implement a tool that takes a series of given test inputs and runs them on a program.

Report the statement and branch coverage for the program when run using the series of test inputs.

Requirements
1. Statement Coverage
Objective: Determine the percentage of executable statements in the software that are executed by the test cases in the test suite.

2. Branch Coverage
Objective: Identify and report the number of acyclic paths through the program’s control flow graph that are covered by the test suite.


Input Specifications
Your program should take 2 command-line arguments:

The path to a Python script

The path to a directory containing a set of input (.in) files

It should be called using the following command:

python coverage.py <python_program> <input_file_dir>

Output Specifications
Your program should produce output indicating:

Statement Coverage: The percentage of statements executed during testing.
Branch Coverage: The percentage of acyclic paths executed during testing.
For example:

Statement Coverage: 50%
Branch Coverage: 12%

Key Requirements:
- The tool must be developed using Python.
- The primary feature of this tool should be code coverage analysis. This is crucial for ensuring the effectiveness and comprehensiveness of the provided test suite.

Presentation:
- The results of the analysis should be presented in a comprehensive and detailed PDF report. This will allow for easy interpretation and understanding of the findings.

Ideal freelancer:
- Proficient in Python programming.
- Prior experience in developing testing tools, especially those focused on code coverage analysis, would be a significant advantage.
- Able to create clear and visually engaging PDF reports.