CloseHelpPrint
Kies de Nederlandse taal
Course module: 202001472
202001472
Software Testing and Risk Assessment
Course infoSchedule
Course module202001472
Credits (ECTS)5
Course typeCourse
Language of instructionEnglish
Contact personprof.dr. M.I.A. Stoelinga
E-mailm.i.a.stoelinga@utwente.nl
Lecturer(s)
Tutor
L.A. Jimenez Roa
Examiner
prof.dr. M.I.A. Stoelinga
Contactperson for the course
prof.dr. M.I.A. Stoelinga
Tutor
D. van der Wal
Academic year2020
Starting block
2A
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
Aims
After passing this course, the student is able to:
  1. Explain, apply, compare, extend the main concepts and terminology on risk assessment and software testing.
  2. [Selection, interpretation, mitigation] Select appropriate risk assessment and testing techniques for a given situation, and motivate these choices. Can interpret the outcomes of a risk analysis and testing process. Based on the outcomes of a risk assessment or software test, advise suitable measures to lower risk / improve system quality.
  3. [Risk modeling & analysis] Devise a suitable risk model (fault tree / FMEA) for a given casus. Apply, compare, extend quantitative risk computations (based on stochastic methods) and use appropriate software tools to support the computations.
  4. [Test case derivation] Use common methods to derive effective test suites to test software systems, esp based on classical techniques (equivalence portioning; boundary value analysis; coverage metrics), finite state machines, labeled transition systems. Use appropriate tooling.
  5. [Formal reasoning] Mathematically reason about the models and algorithms underlying of the various risk and testing frameworks. This includes the correctness of the test derivation methods (soundness, completeness) and the risk analysis algorithms.
Content
How do we ensure today’s software systems, such as robots, drones, MRI and CT scanners, data centers, and railroad systems operate in a safe and reliable way? That is the topic of risk management, which is the topic of this course. Risk assessment aims at identifying the main risks, prioritizing them according to their impact and likelihood of occurrence, and finding (cost)effective measures to mitigate the most important risk.
Risk assessment is the first topic of this course, which will cover
  • Quantitative and qualitative techniques for modeling risks, namely fault tree analysis and FMEAs/FMECAs;
  • Risk quantification, as well as metrics that capture Key Performance Indicators (system reliability, availability, mean time to failure).
  • to compute these risk metrics, including stochastic algorithms, and their relation to data science.
For software systems, testing is one of the most important methods to identify and mitigate risks. This course will cover the most important testing techniques
  • Classical techniques, based on black box testing (equivalence partitioning, boundary value analysis) and white box testing (based on code coverage metrics: statement coverage, condition coverage, decision coverage, etc).
  • Testing from Finite State Machines: modeling software as FSM models, and test derivation based on state tours, transition tours, transition coverage.
  • Model-based testing is an innovative way of testing, where test cases are automatically generated, executed and evaluated from a requirement model. The course will treat models and algorithms for doing so based on theory.
Assumed previous knowledge
Bachelor (T)CS
Participating study
Master Computer Science
Participating study
Master Internet Science and Technology
Participating study
Master Embedded Systems
Participating study
Master Electrical Engineering
Participating study
Master Systems and Control
Required materials
Course material
Papers
Recommended materials
-
Instructional modes
Assignment
Presence dutyYes

Lecture

Practical

Presentation(s)
Presence dutyYes

Project unsupervised

Self study without assistance

Tutorial

Tests
Exam

Remark
Test on theoretical aspects and project (in groups)

CloseHelpPrint
Kies de Nederlandse taal