Module description
The aim of this module is to convey an understanding of the basic elements of software measurement and testing, in particular focusing on automated test data generation.
Learning Outcomes
On successful completion of this module, students will be able to:
- Apply and critique a number of well known software metrics for testing adequacy
- Apply several well known software testing techniques for checking software correctness that go beyond testing
- Apply standard testing tools in software development
Syllabus
An indication of the types of topics:
- Basic definitions of software design, development, and analysis; software lifecycle.
- Test and analysis activities matched to different phases in design, development, deployment, and maintenance of software.
- The concepts of white-box testing and black-box testing.
- Finite models for software testing activities: control flow graphs, data-flow graphs, finite state machines, combinatorial models.
- Coverage metrics as measures of exhaustiveness of testing.
- Differences between functional correctness and robustness and testing techniques to assess these qualities.
- Symbolic execution.
- Static analysis techniques.
- Test oracles and automatic extraction of correctness properties.
Assessment details
Please note: The below assessment details for the 2025/26 academic year may be updated. The confirmed details will be available on the Student Handbook and on the module KEATS page at the beginning of the semester.
- 85% Examination
- 15% Coursework
Semester 1 only study abroad students will be required to take the exam component in an alternative assessment format in the January exam period.
Full year study abroad students will be required to take this exam in person in January.