- Software testing – basics
- Static testing
- Dynamic testing
- Integration testing
- Test criteria
- Mutation analysis
- Security testing
Practical session material
- TP1: unit testing and coverage.
Objective: to manipulate a framework for automatic execution of unit test cases and understanf code coverage.
- TP2: integration testing.
Objective: understand the challenges of isolating classes for unit testing and to manipulate a mock framework.
- TP3: test-driven development.
Objective: write a program according to a test suite.
- TP4: Selenium + JMeter.
Objective: manipulate a framework for the automatic execution of test cases on a UI and experiment with load testing.
- TP5: static analysis.
Objective: experiment with PMD for static analysis
- TP6: instrumentation for dynamic analysis.
Objective: experiment with a framework for code transformation.
- TP7: test suite analysis.
Objective: Analyze a large, production-quality test suite
- TP8: hands-on new technology.
Objective: Prepare a demo of a new testing technology
Students should form groups of 5 to prepare a brief presentation and a demo of one of the following tools. Deadlines are given below.
Tools for demo
diffy: test software updates
PhantomJS: web app testing
Robolectric: test Android apps
Sikuli: automates anything you see on the screen
cucumber: tool fo behavio-driven development
JavaPathFinder: automated analysis of Java programs
M2 GL and GLA:
- 21/09/2015: form groups
- 16/10/2015: short presentation and demo
Here are some pointers to some of the ressources I refer during the testing classes.
Software metrics: coupling, cohesion, cyclomatic complexity
The Netflix simian army