This is the home page for the School of Informatics course "ST: Software Testing", given by Ajitha Rajan in January-April 2018.
Overview
This course provides in-depth coverage of software testing further to develop the introductory material covered in Informatics 2C - Software Engineering.
The goal of the course is to provide students with the skill to select and apply a testing strategy and testing techniques that are appropriate to a particular software system or component.
In addition the student will become a capable user 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 will be supported by a group practical exercise involving the development of appropriate tests and the application of a range of testing tools.
Course Organisation
- Course staff:
- Descriptor: The course descriptor provides an overview of course content, learning outcomes and administration.
-
- Time Table 2017-18:
- Course meetings are at 1210-1300 on Tuesdays at Adam House Basement Theatre for Weeks 2,3,4,7,8 ;
and Medical School Room 425 Anatomy Lecture Theatre - Doorway 3 for Weeks 5,6,9,10,11
Fridays (at Room F.21, 7 George Square ). Classes commence on Tuesday 16th January.
- Official timetable (page down to see the Semester 2 timetable)
- Semester dates
- Discussion Forum for Software Testing. Ask questions here (and answer questions if you can!).
-
Lectures
Copies of the Lecture slides and the schedule will appear in the Lectures tab.
The slides and any other relevant reading material will be put up the day before the lecture.
Lectures are recorded and are available on Media Hopper Replay (accessed through the Learn page for the course).
-
Assessment
The final examination counts for 75% of the final grade for the course.
The coursework counts for 25% of the final grade of the course. In line with previous years, the examination will be open book.
You will be permitted to take any written material (on paper) into the examinations. Laptops, phones, tablets, e-readers etc are not
permitted because of the difficulty of ensuring they cannot communicate outside the examination room.
-
Coursework description for Task 1 and Task 2 is available.
There is a single coursework worth 25% of the overall assessment for the course.
You will work in groups of 2 people to complete 2 tasks in the coursework.
- Task 1 (10%) - Issued: 9th February . Deadline : 28th February.
- Task 2 (15%) - Issued: 1st March. Deadline : 30th March.
Please read the Informatics policy on late submissions.
Academic misconduct is viewed as a serious offence.
Please read our general guide to policies for academic misconduct.
- Books
- Main Text: Pezze and Young, Software Testing and Analysis: Process, Principles and Techniques, Wiley, 2007.
- Suggested Readings:
-
Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, Cambridge, UK, ISBN 0-52188-038-1, 2008.
-
G.J. Myers, The Art of Software Testing, Second Edition, John Wiley and Sons, New York, 1976.
- B. Marick, The Craft of Software Testing, Prentice Hall, 1995
- C Kaner, J. Bach, B. Pettichord, Lessons Learned in Software Testing, Wiley, 2001.
Week 1 (starting Jan 15)
Tuesday Lecture
Course Organisation
[slides],
Why Test?
Faulty Software,
Testing Overview - Chapters 1 and 2
[Chapters 1 and 2] .
Friday Lecture
Unit Testing with JUnit
[JUnit] ,
Functional Testing
[Chapter 10] .
Tutorials No tutorials in week 1
Required Readings:
Suggested Readings:
- Whittaker, J.A., What is software testing? And why is it so hard?, IEEE Software, vol.17, no.1, pp.70-79, Jan/Feb 2000.
- Michael Olan. Unit testing: test early, test often.
Journal of Computing Sciences in Colleges archive Volume 19 Issue 2, December 2003, Pages 319-328.
Week 2 (starting Jan 22)
Lectures
Combinatorial Testing
[Chapter 11] ,
[Example- Category Partition] ,
Finite Models
[Chapter 5] .
Required Readings:
- Read Chapter 11 and 5 in Pezze and Young textbook.
Tutorials No tutorials in week 2
Week 3 (starting Jan 29th)
Lectures
Structural testing
[Chapter 12] ,
[Activity] ,
Test case selection and adequacy
[Chapter 9] .
Tutorials Tutorial 1 this week. See Tutorial tab for more information.
Week 4 (Starting February 5th)
Lectures
Path coverage [Extra Slides on Path Coverage] ,
Data Flow Models
[Chapter 6] ,
Data Flow Testing
[Chapter 13] .
Week 6 (Starting February 26th)
NO TUESDAY LECTURE
Friday Lecture
University Closure, Lecture CANCELLED
Week 7 (Starting March 6th)
Lectures
Mutation Testing
[Chapter 16] ,
Model-Based Testing and Testing OO Software
[Chapter 14 and 15] .
Integration Testing
[Chapter 21] .
Required Readings:
- Read Chapter 16 for Mutation Testing and Chapter 21 for Integration Testing in Pezze and Young textbook.
Suggested Readings:
- Yu-Seung Ma, Jeff Offutt and Yong-Rae Kwon, MuJava: An Automated Class Mutation System. Journal of Software Testing, Verification and Reliability, 15(2):97-133, June 2005.
[DOI Link]
Week 8 (Starting March 13th)
NO TUESDAY LECTURE
Friday Lecture:
Test-Driven Development
TDD ,
Example.
Week 9 (Starting March 19th)
Lectures
Regression Testing
[Chapter 22, Section5] .
Test Execution
[Chapter 17] .
System and Acceptance Testing
[Chapter 22] .
Required Readings:
- Read CHapter 22, Section 5 for Regression Testing and Chapter 17 on Test Execution in Pezze and Young textbook.
Week 10 (Starting March 26th)
Lectures
Security Testing [slides],
Software Process Models - Recap
[slides]
Planning and Monitoring
[Chapter 20] .
Program Analysis
[Chapter19]
Week 11 (Starting April 2nd)
Lectures
Summary Lecture
[Summary] .
Sample Exam
[Questions]
-->