Capsule 4

FRAFOL – FRAmework FOr Learning mutation testing 

General Information about the Capsule

Name: FRAFOL 
Identifier: ENACTEST_ID_4
Language: English
Category: Learning Environment  
Keywords: Mutation Testing, Software Testing, PIT, Major 

Description:
FRAFOL is a teaching tool that integrates the PIT and Major mutation testing tools into a unified and user-friendly environment. These tools were chosen for their widespread use and complementary features (source code vs. bytecode mutations). FRAFOL’s WebGUI and Docker-based deployment streamline usability and accessibility, making it ideal for teaching and learning mutation testing. Built as an extension of Defects4J, a repository of reproducible Java bugs, FRAFOL provides access to realistic projects and facilitates analysis and testing.    

Supporting Materials

Cost: Free
Copyright and Other Restrictions: Yes
Description: Licensed for educational and research purposes.

Educational


Interactivity Type: Interactive
Learning Resource Type: Learning/teaching environment
Interactivity Level: High
Intended End-User Role: Learner (Bachelor AND Master students)
Context: Higher Education
Typical Age Range: Adult learners (18+ years)
Difficulty Level: Advanced

Description of Learning Objectives:

  • Apply mutation analysis and testing
  • Reason about test quality, using coverage and mutation adequacy criteria
  • Be aware of the differences among mutation testing tools

Prerequisites

  • Familiarity with Java programming language and Junit

Classification

  • Understand: Comprehend mutation testing concepts
  • Apply: Write unit test cases to kill generated mutants
  • Analyze: Analyse code and build test cases to kill mutants
  • Evaluate: Assess test effectiveness using metrics like mutation score

Learning Sequence
a. Analyse code coverage
b. Generate mutants (with different tools)
c. Write test cases to kill live mutants

  

Expected Consequences
a. Reason about the quality of mutants
b. Understand the differences between code coverage and mutation coverage
c. Be aware of the differences between mutation testing tools