Lecture, Prof. Dr.-Ing. M. Heiner, WS 2018/2019
This course will be in English.
11885 Software Testing
12408 Testen von Software
latest update: March 14, 2019, at 11:07 AM
According to the General Examination and Study Regulations, students have to register for modules (without a limited number of participants) during the first 3 weeks of the lecture period of each semester. You can withdraw your registration until one week before beginning of the examination period in which the examination is offered for the first time. Both steps are handled via the Online Portal. Please note, if you registered for a module, you are automatically registered for the corresponding exam.
The course consists of two blocks of Lectures and one block Exercise per week.
fridays, 3. and 4. block (11.30 – 14.45), VG1c, R 2.01;
mondays, VG 1c, R 2.01;
responsible assistant: Jacek [period] Chodak [snail] b-tu [period] de
The exercises will be managed using Moodle; please register for the course: 11885 Software Testing | WiSe 18/19
Written, without any auxiliary means; you will need paper and pencil, nothing else.
18.02.2019, 11.30–13.30 (the Monday in the second week of the exam period February 2019),
The assessment of this course (to obtain the credits) comprises two parts:
(1) Participation in the exercises accompanying the course AND
(2) Examination at the end of the course.
Both criteria have to be passed.
The exercises will be in seminar style, where students will take turns in presenting software test tools.
A successful participation in the exercises requires a critical assessment, presentation and short documentation (data sheet) of a software test tool, as well as active participation in all exercises. Allocation of the software test tool to be presented is done in the first exercise (2nd teaching week).
A written exam is marked as "passed", if at least 50 % of the maximal amount of points have been obtained. The grading follows the usual grading scheme. No auxiliary means are allowed during a written exam; this also excludes the use of mobiles. Dictionaries are provided on request. Duration of the written exam: 2h.
An oral exam comprises two parts: 1h preparation time + 1h oral exam. No auxiliary means are allowed during the whole time; this also excludes the use of mobiles. Dictionaries are provided on request. An oral exam is evaluated as "passed", if at least 50 % of the expected solutions are found. The grading follows the usual grading scheme.
The decision among written or oral examination will be taken at the begin of the semester (depending on the amount of participants).
A credit corresponds to 30 working hours (see, e.g., Bachelor study regulation, §7), yielding the following calculation:
A course with 8 credits = 240 working hours; assuming 16 weeks (15 weeks lecturing + 1 week exam period) makes 15 working hours per week! Of those 15 hours, we have 4.5 of so-called contact hours, which leaves 10.5 hours per week to deepen the understanding of the lectures and preparing the solutions for the homework.
This calculation of expected work load has been taken into consideration when compiling the amount of material covered in the course and the design of the homework assignments.
Remark: all keywords given below represent exam-related aspects.
sw quality management, basic terminology; validation vs testing - an overview;
basic ideas, pros/cons:
program proofs: logical reasoning over assertions (pre/post conditions), Hoare formulas;
model checking, temporale logics;
basic ideas, pros/cons;
variants: Fagan inspection, walkthrough, desktop testing, reviews;
typical examples of test criteria (checklists);
demarcation from static analysis;
control structure based testing: control structure graphs for sequential programs, Petri nets for concurrent programs;
coverage measures: node, branch, path coverage;
several condition coverages: simple/multiple/minimal multiple condition coverage, MC/DC;
code instrumentation for coverage measures;
data flow based testing: defs/uses techniques;
equivalence classes, boundary values, error guessing;
cause/effect graphs and their evaluation by help of Petri net T-invariants;
automata, syntax diagrams and their coverage with Euler paths;
the new challenges: (data encapsulation), inheritance, polymorphy and dynamic binding;
class testing approaches: class testing driver, build-in testing, assertion testing, state testing; class modality and its influence on the testing approach;
testing of inheritance hierarchies, design/testing by contract, testing of polymorph operations;
three problems: complexity of the state space, probe effect, non-determinism;
dedicated approaches/tools: (1) Instant Replay, (2) Verifsoft, (3) Java Replay, (4) Java Milestone/Rollback;
comparison with static analysis techniques;
four simple criteria when to stop testing: mutation testing, fault injection method, testing by two independent teams, Jelinsky-Moranda method;
Integrationsteststrategien: Bing-Bang, Backbone, Top-down, Bottom-up, Jo-Jo, Sandwich;
Systemtest, Ziele:: Funktion, Leistung, Benutzbarkeit, Sicherheit, Interoperabilität, Installation, Wiederinbetriebnahme; Abnahmetest;
DIN EN ISO 9000, Normen zum Qualitätsmanagement;
DIN EN ISO 9001, Qualitätsmanagementsysteme, Anforderungen
The green line indicates the current progress of the lectures. Materials above the green line are released, materials below the green line are preliminary information possibly subject to changes.
2. Program verification
for more examples see
3. Static Testing (Human Testing)
checklists, some examples
4. White Box Testing
5. Black Box Testing
cause effect graphing using Petri nets techniques slides - will be updated
6. Testing of object-oriented software
demo oo programm (slides, Rauh) (in German)
challenges of oo testing (slides) class contracts (slides, Santen) (in German)
(non/uni/quasi) modal classes (slides, Santen) (in German)
testing of polymorph operations (slides, Santen) (in German)
7. Testing of concurrent software
on the influenec of time on system behaviour
Java Pathfinder - example for race condition
8. Exam prep's