Module Code - Title:
CS4004
-
SOFTWARE TESTING AND INSPECTION
Year Last Offered:
2025/6
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
CS4013
Rationale and Purpose of the Module:
To introduce students to software testing and inspection such that when given a specification and an implementation of a program, the student would be able to write the tests, run them, and report on the errors found.
Syllabus:
- Key Terminology: testing, debugging, error, bug, defect, quality, risk, mean-time between failures, regression testing, limitations of testing;
- Test types and their place in the software development process;
- Black-box and white-box testing;
- Program reading and comprehension;
- Refactoring code;
- Inspections, walkthroughs and desk-checking;
- Programming with assertions;
- Using a debugger for white-box testing;
- Reporting and analysing bugs: content of the problem report, analysis of a reproducible bug, making a bug reproducible;
- Test case design: characteristics of a good test, equivalence classes and boundary values;
- Expected outcomes, test case execution and regression testing;
- Requirements for white-box and black-box testing tools;
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
On successful completion of this module, students will be able to:
1. Explain the key terminology in software testing and inspection.
2. Given a program specification, design and specify black box test cases by applying techniques such as equivalence classes and boundary value analysis.
3. Given the source code of a program implementation, design and specify appropriate white box test cases by drawing a suitable control-flow graph or using other appropriate techniques.
4. Analyse a program specification or a program to identify test cases.
5. Report relevant information associated with a bug using appropriate tools.
6. Assess software quality via inspections and code walkthroughs.
Affective (Attitudes and Values)
On successful completion of this module, students will be able to:
1. Acknowledge the professional responsibility of software practitioners to produce reliable software
Psychomotor (Physical Skills)
N/A
How the Module will be Taught and what will be the Learning Experiences of the Students:
Prime Texts:
B. Beizer (1990)
Software Testing Techniques, (2nd edition)
, Van Nostrand Reinhold
D. P. Freedman and G. M. Weinberg (1990)
Handbook of Walkthroughs, Inspections, and Technical Reviews, (3rd edition)
, Dorset House, New York
E. van Veenendaal (2002)
The Testing Practitioner
, Uitgeverij Tutein Nolthenius (UTN)
C. Kaner, J. Falk and H. Nguyen (1993)
Testing Computer Software (2nd edition)
, Wiley, New York
Other Relevant Texts:
Programme(s) in which this Module is Offered:
BACHELOR OF SCIENCE (EDUCATION) IN MATHEMATICS AND COMPUTER SCIENCE
BACHELOR OF SCIENCE IN COMPUTER GAMES DEVELOPMENT
BACHELOR OF SCIENCE IN COMPUTER SYSTEMS
CERTIFICATE IN SCIENCE AND ENGINEERING
GRADUATE DIPLOMA IN COMPUTING
HIGHER DIPLOMA IN SOFTWARE DEVELOPMENT
MASTER OF SCIENCE IN SOFTWARE DEVELOPMENT: INTERNATIONAL SYSTEMS
Semester(s) Module is Offered:
Module Leader:
faeq.alrimawi@ul.ie