Study-Unit Description

Study-Unit Description


TITLE Advanced Software Testing

LEVEL 05 - Postgraduate Modular Diploma or Degree Course


DEPARTMENT Computer Science

DESCRIPTION This study-unit will focus on a number of topics which lead to an understanding of automated test case design.

We will first discuss Mutation Testing as a fault injection technique that is effective identifying short-comings in test suites. After analysing its effectiveness, shortcomings, and solutions, we will cover techniques for using results from mutation testing to automatically design and create test cases for the system under test. This will require covering topics such as symbolic execution and the oracle problem in software testing.

Whilst the assignment will assess the students' grasp of theoretical aspects of the course, the project provides them with the opportunity to apply that theory and implement an automated test case design system.

Study-unit Aims:

The aim of this unit is to provide students with a detailed understanding of advanced topics in software testing which lead up to students understanding and implemented automated test case design.

Learning Outcomes:

1. Knowledge & Understanding:
By the end of the study-unit the student will be able to:

• demonstrate an understanding of how mutation analysis as an adequacy measurment methodology together with its short-comings and current solutions to those short-comings;
• demonstrate an understanding of how symbolic execution can be used to traverse all execution paths of that system. The student will also demonstrate knowledge of short-comings of the technique and current solutions of those short-comings;
• explain how those results can be used in conjunction with symbolic execution to automatically generate test cases;
• explain the effects of the oracle problem on the usefullness of those tests.

2. Skills:
By the end of the study-unit the student will be able to:

• discuss and critically analyze various advanced testing techniques leading up to automated test case design;
• identify scenarios where mutation analysis and symbolic execution would be useful, tailor the techniques to the scenario and apply them effectively;
• identify scenarios whereby techniques discussed throughout the course would not prove useful and be able to explain why;
• build a mutation testing tool, a symbolic execution engine and an automated test case generator.

Main Text/s and any supplementary readings:

• Jia Y., Harman M.: An analysis and survey of the development of mutation testing, IEEE Transactions on Software Engineering, Volume 37, Issue 5, 2011
• Păsăreanu C.S., Visser W.: A survey of new trends in symbolic execution for software testing and analysis, International Journal on Software Tools for Technology Transfer, Volume 11, Issue 4, 2009
• Shahamiri, S.R.; Kadir, W.M.N.W.; Mohd-Hashim, S.Z.: A Comparative Study on Automated Software Test Oracle Methods, Proc. of the Fourth International Conference on Software Engineering Advances, 2009
• Fraser G., Zeller A.: Mutation-Driven Generation of Unit Tests and Oracles, IEEE Transactions on Software Engineering, Volume 38, Issue 2, 2012


STUDY-UNIT TYPE Independent Study, Lecture and Presentation

Assessment Component/s Assessment Due Resit Availability Weighting
Assignment SEM2 Yes 50%
Project SEM2 Yes 50%

LECTURER/S Mark Micallef

The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2020/1. It may be subject to change in subsequent years.