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)
Coordinator
dr. G.J. Tretmans
Other course modules lecturer
Lecturer
dr. G.J. Tretmans
Other course modules lecturer
Contactperson for the course
dr. G.J. Tretmans
Other course modules lecturer
Examiner
dr. G.J. Tretmans
Other course modules lecturer
Academic year2019
Period
KW1-KW2  (02/09/2019 to 02/02/2020)
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 of model-based testing;
  • know the ioco-theory for model-based testing;
  • have applied model-based testing tools to some 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. Emphasis will be on model-based testing, both in theory and with tools. Moreover, the topic of automata learning will be discussed.
 
Level

Presumed foreknowledge
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.
Test information
The final grade for testing techniques is computed from the written exam (50%) and the elaboration of the assignments and a presentation (50%). An additional condition for passing the course is that each of the individual grades (exam, each of the assignments, presentation) must be at least 5.0; 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, respectively.
Specifics

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;
• principles of model-based testing
• ioco theory for model-based testing with labelled transition systems
• 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 elaboration of the assignments and a presentation (50%). An additional condition for passing the course is that each of the individual grades (exam, each of the assignments, presentation) must be at least 5.0; 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, respectively.

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
Articles
Papers and articles will be made available via Brightspace.

Instructional modes
Course occurrence

Lecture

Presentation

Project

Tutorial

Zelfstudie

Tests
Exam
Test weight1
Test typeExam
OpportunitiesBlock KW2, Block KW3

Assignments
Test weight1
Test typeAssignment
OpportunitiesBlock KW2, Block KW3