Whisker Version 0.7
This release includes countless bug fixes and improvements as well as the following major changes:
Improvements to automated test generation
In addition to generating test inputs, Whisker's automatic test generation procedure can now generate regression assertions based on changes observed during the execution of a program. Moreover, after the generation process, tests may now be automatically minimised by removing unnecessary input statements.
More information can be found in the following preprint: https://arxiv.org/abs/2202.06274
Mutation Framework
As part of this release, Whisker includes a mutation framework, which can be used to generate variants of .sb3
programs. The framework offers the following mutation operators:
- Key Replacement Mutation: Replaces the key argument of keyboard event handler with a randomly chosen key.
- Single Block Deletion: Removes a block that is neither a hat nor a branching block.
- Script Deletion Mutation: Deletes a script by removing its hat block.
- Arithmetic Operator Replacement: Replaces an arithmetic operator with a randomly chosen one.
- Logical Operator Replacement: Replaces a logical operator (and, or) with the opposing one.
- Relational Operator Replacement: Replaces a relational operator with a randomly chosen one.
- Negate Conditional Mutation: Negates boolean blocks.
- Variable Replacement Mutation: Replaces a variable with a randomly chosen one.
Neatest
Neatest is a novel test generation approach based on neuroevolution that uses a combined fitness function of branch distance and approach. The goal of Neatest is to test Scratch games reliably by generating neural networks that are able to adapt to randomised program behaviour. Moreover, Neatest adds a novel test oracle based on the Likelihood Surprise Adequacy metric that is able to differentiate faulty program behaviour from novel behaviour as it is often introduced by randomised programs.
More information can be found in the following preprint: https://arxiv.org/abs/2208.13632
Improved command line interface
We have completely refactored the command line interface in order to improve Whisker's usability. For more information, please refer to the updated README.