NWI-I00110
Testing Techniques
Course infoSchedule
Course moduleNWI-I00110
Credits (ECTS)6
CategoryMA (Master)
Language of instructionEnglish
Offered byRadboud University; Faculty of Science; Informatica en Informatiekunde;
Lecturer(s)
Lecturer
dr. P. van den Bos
Other course modules lecturer
Lecturer
dr. P. Fiterau Brostean
Other course modules lecturer
Contactperson for the course
dr. G.J. Tretmans
Other course modules lecturer
Lecturer
dr. G.J. Tretmans
Other course modules lecturer
Coordinator
dr. G.J. Tretmans
Other course modules lecturer
Academic year2017
Period
KW1-KW2  (04/09/2017 to 04/02/2018)
Starting block
KW1
Course mode
full-time
Remarks-
Registration using OSIRISYes
Course open to students from other facultiesYes
Pre-registrationNo
Waiting listNo
Placement procedure-
Aims

After successful completion of the course, the participants:

  • have an overview of, and insight in the importance and the place of structured and systematic testing within the software development cycle;
  • can apply some well-known techniques and tools for developing and executing tests;
  • can explain the principles and theory of model-based testing;
  • know how to apply model-based testing and model-based testing tools to simple systems;
  • are able to recognize situations in which a problem can be solved using automata learning techniques;
  • know how to apply some state-of-the-art learning tools for learning automata models of simple systems.
Content

Testing is part of almost any software development project, and systematic and effective testing is an important technique for quality assessment and control. Yet, testing is often an underexposed and underestimated part of software development. The course testing techniques deals with a number of techniques, methods, and tools which can help in systematic and effective testing of software systems. Established, 'state-of-practice' testing techniques are discussed, as well as new developments, such as model-based testing and model (automata) learning. Moreover, some guest lectures will give insight into the industrial practice of software testing.

Literature
J. Tretmans, Model Based Testing with Labelled Transition Systems. In: R.M. Hierons, J.P. Bowen, M. Harman (eds.), Formal Methods and Testing. Lecture Notes in Computer Science 4949, pp. 1-38, Springer, 2008. http://dx.doi.org/10.1007/978-3-540-78917-8_1.

B. Steffen, F. Howar, and M. Merten, Introduction to Active Automata Learning from a Practical Perspective. In: M. Bernardo and V. Issarny (eds.), Formal Methods for Eternal Networked Software Systems. Lecture Notes in Computer Science 6659, pp. 256-296, Springer, 2011. http://dx.doi.org/10.1007/978-3-642-21455-4_8.

Additional course material consisting of hand-outs, sheets, and recent papers from the literature, will be made available electronically via the course webpage during the course.

Teaching formats

• 32 hours lecture
• 48 hours group project work without guidance
• 4 hours student presentation
• 16 hours problem session
• 68 hours individual study period

Extra information teaching methods: The course comprises 3 parts: basic testing techniques, model-based testing, and automata learning. Each part consists of regular lectures, exercises, and one or two homework assignments. These assignments are made in small groups (two or three students) and will be evaluated. Some guest lectures will be organized focusing on testing practices in the software industry. Participants are expected to be present during the lectures and to actively participate in discussions. In addition to the homework assignments, there will be a written exam.Participants are supposed to spend approximately 168 hours (=6ec) on this course: during 16 weeks they will need about 4 hours per week to attend and prepare classes (2 hours lectures, 2 hours reading and preparation). In addition they will need about 80 hours for the homework assignments, and 24 hours for exam preparation.

Topics
Topics which will be discussed are:

• kinds, aspects, phases, and processes of software testing;
• white-box testing, statement-, decision-, condition-coverage;
• black-box testing, equivalence partitioning, boundary value analysis, state-based testing, combinatorial testing;
• model-based testing in general, and with transition systems, ioco theory
• tools for model-based testing
• learning algorithms for Mealy machines: Angluin L*

Test information
The final grade for testing techniques is computed from the written exam (50%) and the homework assignments (50%). An additional condition for passing the course is that each of the individual grades (exam and each of the homework assignments) must be at least 4.5; if not, the final grade is at most 4.0.
The homework assignments are done in small groups (two or three students).
If the final score is 5.5 or below, students can participate in a re-examination or an additional assignment.

Prerequisites
Students are assumed to have programming experience, and knowledge about formal (mathematical, logical) methods in software development, at bachelor level. The course testing techniques is, on the one hand, related to topics in programming, software engineering, and software quality, and, on the other hand, to more formal topics such as software verification and model checking.

Required materials
Book
J. Tretmans, Model Based Testing with Labelled Transition Systems.

Recommended materials
Book
B. Steffen, F. Howar, and M. Merten, Introduction to Active Automata Learning from a Practical Perspective.
Articles
In: R.M. Hierons, J.P. Bowen, M. Harman (eds.), Formal Methods and Testing. Lecture Notes in Computer Science 4949, pp. 1-38, Springer, 2008. http://dx.doi.org/10.1007/978-3-540-78917-8_1.
Articles
In: M. Bernardo and V. Issarny (eds.), Formal Methods for Eternal Networked Software Systems. Lecture Notes in Computer Science 6659, pp. 256-296, Springer, 2011. http://dx.doi.org/10.1007/978-3-642-21455-4_8.

Instructional modes
Course occurrence

Lecture

Presentation

Project

Tutorial

Zelfstudie

Tests
Tentamen
Test weight1
OpportunitiesBlock KW2, Block KW4