Definition
Intelligent Testing
The use of automated tools and algorithms to improve the quality of the test suite, rather than just running manually written tests.
Techniques
1. Test Case Generation
Tools automatically generate test inputs to maximise coverage (e.g., Path Coverage).
- How: Symbolic execution, genetic algorithms, or random fuzzing.
- Benefit: Finds edge cases humans overlook.
2. Mutation Testing
Testing the tests.
- Concept: The tool intentionally introduces bugs (“mutants”) into the source code (e.g., changing
a + btoa - b). - Goal: Run the test suite. If the tests pass (Green), the mutant “survived” (Bad: your tests are weak). If the tests fail, the mutant was “killed” (Good).
- Metric: Mutation Score = Killed Mutants / Total Mutants.