The course presents a variety of frameworks for test case generation. After passing this course, the student is able to:
- explain, apply, comparen these frameworks.
- reason about the mathematical properties of these techniques and
- extend these with new features and adapt them to new testing contexts.
In particular, after passing this class, the student has the following abilities.
The student is able to describe the role of testing within the software development process:
The student can apply, extend, compare, classical testing techniques (most notably namely Equivalence Partitioning, Boundary Value Analysis, Coverage-based methods,); FSM test theory, ioco test theory. In particular:
- S/he can generate, execute and evaluate tests based on these methods.
- S/he can also determine the code-coverage of a given test (suite) and find test suites with a given amount of coverage.
- The student can mathematically prove properties of the test generation methods mentioned above (Classical, FSM, LTS).
- The student can explain, apply, extend, the notions of soundness and completeness for test suites of the test frameworks.
- The student can select the most appropriate test generation method for a given test situation and adapt the frameworks to new testing contexts.
- The student can explain the need for test automation and apply appropriate test tooling.
Assumed previous knowledge
Testing is an important part of almost any software development project. Systematic and effective tests are crucial in the quality control of software products. However, the testing phase is often underestimated in the software life cycle. This course treats a number of techniques, methods and tools to test software in a systematic, structured and effective way. We will discuss both existing techniques and new development in the world of software testing. The techniques presented during the course focus on the testing of embedded systems and communication protocols. Topics to be treated are: types, aspects and phases in software testing, test automation, test tools, test case design, test coverage measures, test organization, test generation from (formal) specification. Some courses will be given by invited software testers from industry.
Recommended materials-Instructional modes
|BookPractical Software Testing Illene Burnstein|