This is the home page for the School of Informatics course "ST: Software Testing", given by Ajitha Rajan in January-April 2017.
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:
- Course Organiser and Lecturer:
Ajitha Rajan
- Teaching Assistant:
Panos Stratis
- Tutors:
Faiz Mirza (s1635804@sms.ed.ac.uk) for Week 3,
Naums Mogers (s1569687@sms.ed.ac.uk) for Week 5,
Adrian Oaida (s1686947@sms.ed.ac.uk) for Week 7,
Vanya Yaneva for Week 8.
- Descriptor: The course descriptor provides an overview of course content, learning outcomes and administration.
-
- Time Table 2016-17:
- Course meetings are at 1210-1300 on Tuesdays and Fridays at Appleton Tower, Lecture Theatre 1. Classes commence on Tuesday 17th January.
- official timetable (page down to see the Semester 2 timetable)
- semester dates
-
Lectures
Copies of the Lecture slides and the schedule will appear in the Lectures tab.
I hope to have them in place the day before the lecture.
Until the lecture is in place the link will be broken. I will try to get as much material as I can in place well before the presentation.
-
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.
-
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.
- Discussion Forum for Software Testing. Ask questions here (and answer questions if you can!).
- 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 16)
Tuesday Lecture
Course Organisation
[slides],
Why Test?
Faulty Software,
Testing Overview - Chapters 1 and 2
[Chapters 1 and 2] .
Thursday 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 23)
Lectures
Combinatorial Testing
[Chapter 11] ,
Test case selection and adequacy
[Chapter 9] .
Required Readings:
- Read Chapter 11 and 9 in Pezze and Young textbook.
Suggested Readings:
Tutorials No tutorials in week 2
Week 3 (starting Jan 30th)
No Lectures this Week
Tutorials Tutorial 1 this week. See Tutorial tab for more information.
Week 4 (Starting February 6th)
Lectures
Finite Models
[Chapter 5] ,
Structural testing
[Chapter 12] ,
[Activity] .
Week 5 (Starting February 8th)
Lectures
Data Flow Models
[Chapter 6] ,
Data Flow Testing
[Chapter 13] .
Tutorials Tutorial 2 this week. See Tutorial tab for more information.
Week 6 (Starting February 27th)
No Lectures this Week
Week 7 (Starting March 6th)
Lectures
Mutation Testing
[Chapter 16] ,
Model-Based Testing and Testing OO Software
[Chapter 14 and 15] .
Software Process Models - Recap
[slides],
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)
Lectures
Regression Testing
[Chapter 22, Section5] .
Test Execution
[Chapter 17] .
Test-Driven Development
TDD ,
Example.
Required Readings:
- Read CHapter 22, Section 5 for Regression Testing and Chapter 17 on Test Execution in Pezze and Young textbook.
Week 9 (Starting March 20th)
Lectures
System and Acceptance Testing
[Chapter 22] .
Planning and Monitoring
[Chapter 20] .
Week 10 (Starting March 27th)
Lectures
Summary Lecture
[Summary] .
Sample Exam
[Questions]
Tutorials for the course will be held during Weeks 3,5, 7 and 8.
Time and location of tutorial groups is available through
theon.