|
|
Introduction to Software Testing
Dr. Helene Waeselynck
LAAS-CNRS, Toulouse
12 hours, 3 credits
October 9 - October 11, 2012
Dipartimento di Ingegneria dell'Informazione: Elettronica, Informatica, Telecomunicazioni, largo L. Lazzarino, meeting room
Contacts: Prof. Cinzia Bernardeschi
Abstract
Software testing is a dynamic verification technique. It involves exercising a program with valued inputs, observing the outputs supplied in response to the inputs, and elaborating a pass/fail verdict. It is the most widespread approach used for quality assurance in the industry, and typically consumes as much as 40-50% of the total software development effort. Software testing is also a very active research field enjoying an excellent visibility at all major software engineering venues.
The course presents the fundamentals of software testing. It provides an understanding of testing problems, and covers the major test design methods. A practical perspective is adopted, with small examples illustrating the methods. More advanced topics are also introduced via a set of research papers to be analyzed by students.
Syllabus
- Fundamentals of testing: role of testing throughout the software life cycle, test selection and oracle problems, test integration strategy, classification of test methods.
- Usual structural & functional methods: control and data flow criteria, predicate coverage, domain testing, model-based testing (e.g., from finite state machines, labeled transition systems).
- Mutation analysis: principle, examples of usage.
- Non-deterministic testing: uniform profile, operational profile, profiles based on structural and functional criteria, search-based testing.
|