Home>Teaching>Software Reliability and Testing

Software Reliability and Testing

Academic Year 2013/2014, 2nd semester
Lecturer: Barbara Russo
Lecture: Wednesday 8:30 - 10:30, room D003 (start: February 26)

Friday 8:30 - 10:30, room D003 (start: February 26)
Lab: Thursday 10:30 - 12:30, room E431 (start: March 5)
Office hours: Wednesday 14:00 - 15:00 or email arrangement, office POS 1.16

Pre-requisites Students are familiar with basic knowledge of software process and project management and programming (e.g., Java, Java script) and software measurement. This material is taught in the following master courses:
  • Software Process Management
  • Empirical Software Measurement
  • Statistical Methods
Learning Outcome Understanding and applying methods and techniques to analyze requirements, and design and code software artifacts to assess and model software reliability.
Understanding principles and methods of software testing.
Being able to select and apply in autonomy appropriate technologies and techniques for different types of testing all over the software process development in different domains and contexts.

Syllabus Software Reliability is the probability of failure-free software operation for a specified period of time in a specified environment. Software Testing is the process of executing a program or system with the intent of finding errors (Myers, 1979) or it involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results (Hetzel, 1988). Software testing also serves as a way to measure and improve software reliability.
Software reliability Software quality and its sub-attributes

What is a bug? Errors, defects, faults, failures, and bugs a chain of causality

Software and hardware reliability

Dynamic systems and Markov chains

Modeling and predicting software reliability: statistical models

Reliability over software evolution

Defects and other software measures: associations
Software testing Testing principles and practices

Black and White Box Testing

Type of Testing: Acceptance, Integration, Unit, Regression, Functional and System, Beta Testing

Coverage Analysis

Static Analysis of Software Systems

System Testing and Test Automation

Test Management While You Code: Test Driven Development

Reading List Main text for testing: Pezz\’e & Young, Software Testing and Analysis: Process, Principles and Techniques, Wiley, 2007. University Shelf ST 233 P522 

Lecture notes and papers will be handed out during the course

Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, Cambridge, UK, ISBN 0-52188-038-1, 2008.

Kent Beck: Test Driven Development by Example, Addison-Wesley Verlag

G.J. Myers, The Art of Software Testing, Second Edition, John Wiley & Sons, New York, 1976

Laurie Williams et al. http://openseminar.org/se/modules/7/index/screen.do

Main Text for reliability: Rigdon E.S. and Basu A.P. Statistical methods for the reliability of repairable systems Wiley series in probability and statistics

Lyu, M. (ed.) Handbook of Software Reliability Engineering, IEEE Computer Society Press, 1996 http://www.cse.cuhk.edu.hk/~lyu/book/reliability/index.html

Baren, M. Probability and Statistics for Computer Scientists Chapmall and Hall, I University shelf: 15 ST 340 B265(.07)

Further details can be found in the Course Presentation Form

Lectures notes