This unit focuses on quality assurance issues and techniques in software development projects. It defines software quality and introduces a number of quality assurance measures, including human review and inspection of code and non-code artifacts, as well as execution-based testing.
Students will apply systematic testing techniques in the context of individual modules and entire systems, using appropriate tools to automate the testing process where possible. Students will systematically document their testing plans and outcomes.
At the completion of this unit, students should be able to:
- identify appropriate quality goals for a moderately-sized software development project, select an appropriate quality assurance strategy to give confidence that these quality goals can be achieved, and document this strategy appropriately in the context of a software process model;
- apply quality assurance techniques such as reviews to non-code development artifacts such as requirements specifications or design documents;
- perform systematic, automated unit testing on source code modules, using both specification-based and code-based approaches, utilising automated testing frameworks, including faking and mocking tools;
- perform integration and system testing on a moderately-sized software system, using continuous integration frameworks and tracing tests back to requirements;
- select appropriate tools to collect metrics, including test coverage, reliability, and design quality metrics, to analyse the quality of a software development project, and make recommendations based on the results;
- describe the major classes of formal methods used in software engineering, including model checking and theorem proving, and identify situations where their use is justified.
Examination (2 hours): 40%; In-semester assessment: 60%
Minimum total expected workload equals 12 hours per week comprising:
(a.) Contact hours for on-campus students:
- Two hours lectures
- Two hours laboratories
(b.) Additional requirements (all students):
- A minimum of 2-3 hours of personal study per one hour of lecture time in order to satisfy the reading, tute, prac and assignment expectations.
See also Unit timetable information