Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Software Testing (INFR10057)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 10 (Year 3 Undergraduate) AvailabilityAvailable to all students
SCQF Credits10 ECTS Credits5
SummaryThis course further develops the introduction to testing in Informatics 2 - Software Engineering and Professional Practice. The course develops skills to select and apply a testing strategy and testing techniques that are appropriate to a particular development process, software system, or component. Class members will become capable users of test tools; will be able to assess the effectiveness of their testing activity; and will be able provide evidence to justify their evaluation. The course is assessed by portfolio demonstrating the achievement of the learning outcomes. This course is based on the IEEE Software Engineering 2004 Software Testing syllabus.
Course description Software testing is embedded in all software development processes and in recent years with the widespread adoption of DevOps and Continuous Integration, Delivery and Deployment, testing tools, automated testing, and the use of operational data in testing have become increasingly important.

The course includes the following topics:

Testing techniques and principles: Defects vs. failures, equivalence classes, boundary testing.
Types of defects.
Black-box vs. Structural testing.
Testing strategies: Unit testing, integration testing, profiling, test driven development.
State based testing; configuration testing; compatibility testing; web site testing.
Alpha, beta, and acceptance testing.
Coverage criteria.
Test instrumentation and tools.
Developing test plans.
Managing the testing process: Development Lifecycles
Problem reporting, tracking, and analysis.
Relevant QAA Computing Curriculum Sections: Software Engineering

Class members will take the development of tests for a small software project as their focus. For students taking the Informatics Large Practical course we recommend they take the software developed there as their focus. However, students are free to choose other software projects if they prefer. The goal is to gain experience of the full spectrum of testing techniques, test planning, testing process and demonstrate that experience on the chosen software project.

Class members will work in groups of 10 and will be encouraged to share experience by providing comment and reviews of others work. Weekly tutorials will be structured around different aspects of the course and the development of a portfolio describing the work done on the selected software project.

Each class member will develop an individual portfolio demonstrating they have achieved the learning outcomes of the course. This will use work on the testing of their chosen software project as evidence, augmented by appropriate other evidence. Acceptable kinds of evidence demonstrating achievement of the learning outcomes are diverse so part of the assessment is the design of the portfolio in advance of its construction. There are two or three "standard" portfolio
designs but class members are encouraged to develop their own approaches that take account of their personal strengths and weaknesses. Portfolio designs will include specific assessment criteria.

Each week there will be a group meeting, around 1-2 hours of recorded material covering the lecture material in the course. Guest lectures given by a practitioner on their experience of testing in different contexts will illustrate the application of the concepts covered in the course in the development of a real-world product.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites It is RECOMMENDED that students have passed Informatics 2 - Software Engineering and Professional Practice (INFR08032)
Prohibited Combinations Other requirements Students should have some basic understanding of software engineering and software lifecycle together with experience of programming.
Information for Visiting Students
Pre-requisitesThis course is available only to Semester 2 or Full Year visiting students as it assessed in semester 2 and result will not be available until the summer.
High Demand Course? Yes
Course Delivery Information
Academic year 2023/24, Available to all students (SV1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 18, Seminar/Tutorial Hours 10, Feedback/Feedforward Hours 2, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 68 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Course members will work in small tutorial groups discussing issues that arise for their chosen software project. Group members will provide comments and critiques of each other's work. Individually, class members will develop a portfolio of evidence of attainment of the learning outcomes of the course. At an early stage in the course the design of each individual portfolio will be agreed to provide appropriate structure for the portfolio. Two or three "standard" portfolio designs are available and specimen portfolios are also available. Class members are encouraged to develop their own portfolio designs or modify standard designs to meet their learning needs.
Feedback Students will receive weekly formative feedback on their work in the tutorials. They will also be required to develop a plan for their portfolio by the end of week three and will receive feedback on that. The summative feedback will evaluate the strength of the evidence provided by the student that they have attained the LOs of the course combined with an evaluation that they were responsible for the evidence.
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. analyze requirements to determine appropriate testing strategies
  2. design and implement comprehensive test plans with instrumented code
  3. apply a wide variety of testing techniques and compute test coverage and yield according to a variety of criteria
  4. evaluate the limitations of a given testing process, using statistical methods where appropriate, and summarise outcomes
  5. conduct reviews and inspections and design and implement automated testing processes
Reading List
- Mauro Pezzè and Michal Young, Software Testing and Analysis, John Wiley & Sons, 2008
- Glenford J. Myers, et al, The Art of Software Testing , John Wiley & Sons Inc, 2004
- Scott Loveland et al, Software Testing Techniques: Finding the Defects That Matter , Charles River Media, 2004
- R. Patton, Software Testing, SAMS, 2005
- C Kaner, J Bach & B Pettichord Lessons Learned in Software Testing: A Context-Driven Approach, Wiley Europe, 2002
- 'The Fuzzing Book.' (accessed Feb. 08, 2022).[2]
- G. Fraser and J. M. Rojas, 'Software Testing,' in Handbook of Software Engineering, S. Cha, R. N. Taylor, and K. Kang, Eds. Cham: Springer International Publishing, 2019, pp. 123:192. doi: 10.1007/978:3:030:00262:6_4.

There is also extensive supporting material online which will be used in teaching
Additional Information
Course URL
Graduate Attributes and Skills Not entered
KeywordsNot entered
Course organiserMr Stuart Anderson
Tel: (0131 6)50 5191
Course secretaryMrs Michelle Bain
Tel: (0131 6)51 7607
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information