SlideShare a Scribd company logo
1 of 48
Download to read offline
Sommersemester 2017
Dr. Asim
Abdulkhaleq
STPA and Software
Verification
You can
copy, share and change,
film and photograph,
blog, live-blog and tweet
this presentation given that you attribute
it to its author and respect the rights and
licenses of its parts.
based on slides by @SMEasterbrook und @ethanwhite
STPA Approach
STPA Approach (Recall)
STPA Artefacts (Recall)
Diagrams
•Control	Structure	Diagram	
•Process	Model		
The	main	
components	used	
in	STPA		
Data	Lists	
• Accidents
• Hazards	
• System	Goals
• Design	and	safety	
Requirements	
Data	Tables
• Unsafe	Control	Actions
• Corresponding	 Safety	
Constraints
• Causal	Factors
STPA Data Flow (Recall)
Software Verification
Software Verification and Validation (V&V)
Verification
“Have we developed the software right?”
Validation
“Have we developed the right software?”
Boehm, Barry (1989). "Software Risk Management".
Software Verification
Dynamic Verification (Test, experimentation)
• Module Test
• Integration Test
• System Test
• Acceptance Test
• …
Static Verification (Analysis)
• Code Conventions Verification
• Bad Practices (anti-Pattern) Detection
• Software Metrics Calculation
• Formal Verification
• …
Approaches to Verification
Ghezzi, et al. Fundamentals of Software Engineering, Prentice Hall, ISBN 0-13-099183-X
Formal Verification
What we need to formally verify a software?
Software	
Requirements	
Software
Control	Actions? Feedback?
Autonomous	vehicle	
modelled	in	graphical	
notations	e.g.	State-
machine,	stateflow.
Software	Design	
Models	
written	in	natural	
language	e.g.	English
Software	Code		
written	in	high-level	
programming	 language	
e.g.	C,	C++	or	Java
Formalisation		 Transformation
Formal Specification and Verification
Specify and verify properties about how a system changes over time
Temporal Logics (TL)
“is a convenient formalism technique for specifying and verifying properties
of reactive systems”
Linear Temporal Logic (LTL)
“is a mathematical language for description linear-time properties”
Properties of interest include :
- Safety : “Nothing bad will happen”
- Liveness: “Something good will happen”.
- Fairness : “Independent subsystems make progress
Formal Specification and Verification
An LTL consists of:
- atomic proposition symbols [p, r, q,..], Boolean operators , and temporal
operators:
TL	Operator LTL	Operator Meaning	 Diagram
G		∅ means	”globally/always”.	∅ is	true	now	
and	forever	in	the	future
X		∅ means	“at	the	next	time”.	∅ is	true	in	
the	next	state	
F	∅ means	“eventually”.	∅ is	true	in	some	
future	state
				
ℛ ψ	R	∅
means	“releases”.	∅ is	true	until	and	
including	the	point	where	ψ become	
true. If	ψ never	becomes true,	then	∅
must	remain true	forever
	
ψ U	∅
means	”until”.	ψ	is	at	least	true	until	∅
happens	at	the	current	or	a	future	
position
Exercise: Formal Specification
Which LTL formula specifies the following requirement
“The train door software must not close (reopen) the
train door when there is a person in the doorway”?
1. LTL= G ((Person_In_Door_Way) -> G (ControlAction=Close))
2. LTL = G (!(Person_In_Door_Way) -> (ControlAction=Close) )
3. LTL = G ((Person_In_Door_Way) -> X ! (ControlAction=Close))
4. LTL = G ((Person_In_Door_Way) -> X! (ControlAction=Open))
3 Minutes
Software Formal Verification Process
How to verify my software design model/code?
Software	
Requirements	
Software	
Design/Code
Software	
Verification	
Not	Satisfied	 Satisfied	
Errors	
Track
Input
OutputNo	
Results
check
YesNo
Software Model Checking
A technique to automatically verify whether the software meets its requirements.
At the design level
• The verification model can be constructed/extracted from the software
behaviour models such as finite state machine.
• Model checkers can be used at this level are:
1. SMV (Symbolic model Verifier) model checker
2. NuSMV Model checker
3. …
At the implementation level
• The verification model can be constructed/extracted directly from
software code written in C or Java.
• Software model checkers can be used at this level are:
1. SPIN (Simple Promela Interpreter)
2. …
SMV Language
Structure of the SMV model
SMV Language Example
Train door controller
MODULE main
VAR
states: {OpenDoor , CloseDoor};
Person_In_Door_Way: boolean;
ControlAction:{Open, Close};
ASSIGN
init (states):=OpenDoor;
init(Person_In_Door_Way):=bool(0);
next (states):=case
states=OpenDoor & !(Person_In_Door_Way) : CloseDoor;
states=CloseDoor& (Person_In_Door_Way): OpenDoor;
TRUE: {CloseDoor ,OpenDoor};
esac;
next(ControlAction):=case
states=OpenDoor: Open;
states=OpenDoor & !(Person_In_Door_Way) : Close;
states=CloseDoor& (Person_In_Door_Way): Open;
TRUE:{Open, Close};
esac;
Software behavioural model (stateflow) SMV Model (verification model)
NuSMV Model Checker
•It is an open source tool developed by ITC-IRST and
UniTN 1999
•It is an extension and re-implementation of SMV
model checker.
•It based on Binary Decision Diagram (BDD) to verify
finite state machine against its specifications
expressed in LTL
Exercise: Formal Specification
Which LTL formula is satisfied by the SMV model of
the train door controller ?
1. LTL= G ((Person_In_Door_Way) -> G (ControlAction=Close))
2. LTL = G (!(Person_In_Door_Way) -> (ControlAction=Close) )
3. LTL = G ((Person_In_Door_Way) -> X ! (ControlAction=Close))
4. LTL = G ((Person_In_Door_Way) -> X ! (ControlAction=Open))
3 Minutes
NuSMV Model Checker Result
“it contains information that shows why the given LTL is not satisfied”
Counterexample
-- specification G (Person_In_Door_Way -> G
ControlAction = Close) is false
-- as demonstrated by the following execution sequence
Trace Description: LTL Counterexample
Trace Type: Counterexample
-> State: 1.1 <-
states = OpenDoor
Person_In_Door_Way = FALSE
ControlAction = Open
-> State: 1.2 <-
states = CloseDoor
Person_In_Door_Way = TRUE
-- Loop starts here
-> State: 1.3 <-
states = OpenDoor
Person_In_Door_Way = FALSE
-> State: 1.4 <-
states = CloseDoor
-> State: 1.5 <-
states = OpenDoor
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Formal Verification Challenges
•Formal verification focuses on proving the functional
correctness of software.
•It can not make the software safe or reduce the risk.
•It needs expert users
•The requirements can not be directly verified by
software model checker
•State explosion problem
STPA in Software
Verification
STPA in Software Verification
How to verify software against STPA results?
Software
Control	Actions? Feedback?
Train	Door	
satisfied
not satisfied
STPA	Safety	
Requirements	
Safety constraints
STPA Results
Software Verification
(Formal Verification & Testing)
STPA SwISs: A System-Theoretic Safety Engineering Approach for
Software-Intensive Systems
Detailed STPA SwISs Approach
Exercise: Apply STPA to Train Door System
Disuse with your colleague how to apply STPA to the
train door system and do the following:
1. Write one accident that the software controller of train door
can contribute in.
2. Write 3 hazards which maybe cause this accident.
3. Translate the identified hazards into the safety constraints.
4. Draw the control structure diagram of the train door system.
5. Identify one unsafe control action and translate it into a
corresponding safety constraint.
10 Minutes
Deriving the STPA Software Safety Requirements
Accidents
• AC1- A person is injured
while the train closed the
door.
• ….
Hazards
• H1- Door close on a person
in the doorway.
• …
System-level safety constraint
• The train door controller
must not close the door
while a person is in the
doorway
• …
safety control structure diagram of train door system
Unsafe Control Actions
Control Action
• C1- Close
• ….
Unsafe Control Actions
• UCA1.1- Train door controller
closes the door while a person in
the doorway
• …
Corresponding Safety Constraints
• CSC 1.1- Train door controller
must not close the door while a
person or object is in the
doorway
• …
Process Model & Variables
Generating the Unsafe Scenarios & Requirements
Unsafe Control action
• UCA1.1- Train door controller closes the door while a person in the doorway
Basic Scenario
• RUCA1.1- The door software controller provided the control action close door while the train is
stopped, train position is aligned, door state is open and a person is in the doorway.
Refined software safety constraint
• RSC1.1- The door software controller must not provide the control action close door while the train
is stopped, train position is aligned, door state is open and a person is in the doorway.
Causal Factors & Causal Scenarios
How each unsafe control action could occur in the system?
Formalisation of STPA
Results
Formalisation of STPA Results
Providing or not providing a control action (CA) is based on the occurrence of
the set of values of process model variables and higher inputs (CS).
• Rule 1: When CS occur in the execution path, the software must not (!) provide CA.
Then, LTL formula can be expressed as: LTL = G ( CS → ! CA).
• Rule 2: When CS occur in the execution path, the software must provide CA at the
next step. then LTL formula can be expressed as:LTL = G ( CS → X CA)
• Rule 3: The software must always not (!) provide CA too early (U) before CS the
occurrence of CS still not become true. Then, the LTL formula can be expressed as:
LTL = G ((CA →CS) & (!CA U CS))
• Rule 4: The software must always not (!) provide CA too late (U) while the occurrences
of the critical set of combinations CS has become previously true in the execution
path. Then, the LTL formula can be expressed as: LTL = G ((CS → CA) & (!CS U
CA))
Exercise: Formalisation of STPA Results
Write the corresponding LTL formula for the following
software safety requirements:
1. “The train door software controller must not
provide the control action close door while the
train is stopped, train position is aligned, door
state is open and a person is in the doorway”
2. The train door software controller must provide
the control action open door when there is a
person in doorway.
5 Minutes
Verify STPA Results
within XSTAMPP
XSTAMPP
•It is an open source tool developed at our institute
through student project and job (2013-2017).
•Designed specially to serve the widespread adoption
and use of STAMP in different areas.
•It extended with an plugin called STPA verifier to
support the software safety and verification (formal
verification and testing activities).
www.xstampp.de
STPA Verifier Process
www.xstampp.de
STPA Verifier Main Window
Generating Safety-
based Test Case from
STPA Results
Detailed STPA SwISs Approach (Recall)
Safety-based Test Case Generation Algorithm
Safe Behavioral
Model
Verify
?
Safety-based Test
Cases
traverse
not	satisfied
satisfied	
modify
export
LTL	formulae	 STPA
Results
Traceability
matrix	
transform
check
SMV Model
Safe Test Model
model
Test	case	sheet
transform
Generating Safety-based Test Cases
1 Modelling STPA Results
2 Transforming into a Formal Model
3 Checking Correctness with Model Checker
4 Generating Runnable Safe Test Model
5
Algorithm
Modelling STPA Results
A Safe Software behavioural Model
Mapping STPA Results into Stateflow Model
Safe behavioural model of train door controller
Control structure diagram
with process model
Safe behavioural model of
train door controller
STPA Test Cases Generator
References
ISBN-10: 3736994923
ISBN-13: 978-3736994928
ISBN: 9780262026499
Dr. Asim Abdulkhaleq
e-mail asim.abdulkhaleq@informatik.uni-
stuttgart.de
phone +49 (0) 711 685-88458
WWW www.iste.uni-stuttgart.de/se
Twitter @AbdulkhaleqAsim
Institute of Software Technology
Pictures Used in this Slide Deck
• V-Model https://commons.wikimedia.org/wiki/File:V-model-en.png
• NuSMV logo: http://nusmv.fbk.eu
• Train door photo is taken from http://www.bbc.com/news/uk-england-
tyne-24634884
• Principle of model checker photo : https://mitpress.mit.edu/books/principles-
model-checking

More Related Content

What's hot

Software testing and_quality_assurance_powerpoint_presentation
Software testing and_quality_assurance_powerpoint_presentationSoftware testing and_quality_assurance_powerpoint_presentation
Software testing and_quality_assurance_powerpoint_presentationvigneshasromio
 
Formal Method for Avionics Software Verification
 Formal Method for Avionics Software Verification Formal Method for Avionics Software Verification
Formal Method for Avionics Software VerificationAdaCore
 
Ariane 5 launcher failure - why did it happen
Ariane 5 launcher failure - why did it happenAriane 5 launcher failure - why did it happen
Ariane 5 launcher failure - why did it happensoftware-engineering-book
 
Test Status Reporting: Focus Your Message for Executives
Test Status Reporting: Focus Your Message for ExecutivesTest Status Reporting: Focus Your Message for Executives
Test Status Reporting: Focus Your Message for ExecutivesTechWell
 
#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineeringSharif Omar Salem
 
Using formal methods in Industrial Software Development
Using formal methods in Industrial Software DevelopmentUsing formal methods in Industrial Software Development
Using formal methods in Industrial Software DevelopmentRobert van Lieshout
 
Model Checking in Formal Methods
Model Checking in Formal MethodsModel Checking in Formal Methods
Model Checking in Formal MethodsSana Rahim
 
Geek Sync I In Depth Look At Application Performance Monitoring
Geek Sync I In Depth Look At Application Performance MonitoringGeek Sync I In Depth Look At Application Performance Monitoring
Geek Sync I In Depth Look At Application Performance MonitoringIDERA Software
 
12 functional-system-testing
12 functional-system-testing12 functional-system-testing
12 functional-system-testingnickynicks76
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 finalsietkcse
 
SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)Amr E. Mohamed
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow TestingHirra Sultan
 
Automatic Test Case Generation
Automatic Test Case GenerationAutomatic Test Case Generation
Automatic Test Case GenerationAdnan Causevic
 
Learn Bug Reporting Techniques
Learn Bug Reporting TechniquesLearn Bug Reporting Techniques
Learn Bug Reporting TechniquesQA InfoTech
 

What's hot (20)

Software testing and_quality_assurance_powerpoint_presentation
Software testing and_quality_assurance_powerpoint_presentationSoftware testing and_quality_assurance_powerpoint_presentation
Software testing and_quality_assurance_powerpoint_presentation
 
ICIC2015_327
ICIC2015_327ICIC2015_327
ICIC2015_327
 
Formal Method for Avionics Software Verification
 Formal Method for Avionics Software Verification Formal Method for Avionics Software Verification
Formal Method for Avionics Software Verification
 
Ariane 5 launcher failure - why did it happen
Ariane 5 launcher failure - why did it happenAriane 5 launcher failure - why did it happen
Ariane 5 launcher failure - why did it happen
 
Test Status Reporting: Focus Your Message for Executives
Test Status Reporting: Focus Your Message for ExecutivesTest Status Reporting: Focus Your Message for Executives
Test Status Reporting: Focus Your Message for Executives
 
#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering
 
Model based testing as a BA tool
Model based testing as a BA toolModel based testing as a BA tool
Model based testing as a BA tool
 
1.tool support for testing
1.tool support for testing1.tool support for testing
1.tool support for testing
 
Using formal methods in Industrial Software Development
Using formal methods in Industrial Software DevelopmentUsing formal methods in Industrial Software Development
Using formal methods in Industrial Software Development
 
Model Checking in Formal Methods
Model Checking in Formal MethodsModel Checking in Formal Methods
Model Checking in Formal Methods
 
Geek Sync I In Depth Look At Application Performance Monitoring
Geek Sync I In Depth Look At Application Performance MonitoringGeek Sync I In Depth Look At Application Performance Monitoring
Geek Sync I In Depth Look At Application Performance Monitoring
 
12 functional-system-testing
12 functional-system-testing12 functional-system-testing
12 functional-system-testing
 
Uft Basics
Uft BasicsUft Basics
Uft Basics
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 final
 
SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
 
Introduction to White box testing
Introduction to White box testingIntroduction to White box testing
Introduction to White box testing
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
 
Automatic Test Case Generation
Automatic Test Case GenerationAutomatic Test Case Generation
Automatic Test Case Generation
 
Learn Bug Reporting Techniques
Learn Bug Reporting TechniquesLearn Bug Reporting Techniques
Learn Bug Reporting Techniques
 

Similar to STPA and Software Verification

Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...Lionel Briand
 
TLA+ and PlusCal / An engineer's perspective
TLA+ and PlusCal / An engineer's perspectiveTLA+ and PlusCal / An engineer's perspective
TLA+ and PlusCal / An engineer's perspectiveTorao Takami
 
Software Verification, Validation and Testing
Software Verification, Validation and TestingSoftware Verification, Validation and Testing
Software Verification, Validation and TestingDr Sukhpal Singh Gill
 
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptxIntro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptxDeepakJangid87
 
Part 1.ppt
Part 1.pptPart 1.ppt
Part 1.pptRAJESH S
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Lionel Briand
 
Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Lionel Briand
 
Seii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesSeii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesAhmad sohail Kakar
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verificationAdaCore
 
System Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed AutomataSystem Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed AutomataLionel Briand
 
Class9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfClass9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfFarjanaParvin5
 
Design, analysis and controlling of an offshore load transfer system Dimuthu ...
Design, analysis and controlling of an offshore load transfer system Dimuthu ...Design, analysis and controlling of an offshore load transfer system Dimuthu ...
Design, analysis and controlling of an offshore load transfer system Dimuthu ...Dimuthu Darshana
 
PLCErrorHunterBrochure
PLCErrorHunterBrochurePLCErrorHunterBrochure
PLCErrorHunterBrochureTony Simeonov
 
Analysis and Design of PID controller with control parameters in MATLAB and S...
Analysis and Design of PID controller with control parameters in MATLAB and S...Analysis and Design of PID controller with control parameters in MATLAB and S...
Analysis and Design of PID controller with control parameters in MATLAB and S...MIbrar4
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing TechniquesKiran Kumar
 

Similar to STPA and Software Verification (20)

Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
 
Lect 3-4 Zaheer Abbas
Lect 3-4 Zaheer AbbasLect 3-4 Zaheer Abbas
Lect 3-4 Zaheer Abbas
 
TLA+ and PlusCal / An engineer's perspective
TLA+ and PlusCal / An engineer's perspectiveTLA+ and PlusCal / An engineer's perspective
TLA+ and PlusCal / An engineer's perspective
 
Software Verification, Validation and Testing
Software Verification, Validation and TestingSoftware Verification, Validation and Testing
Software Verification, Validation and Testing
 
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptxIntro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
 
Part 1.ppt
Part 1.pptPart 1.ppt
Part 1.ppt
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
 
Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...
 
Seii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesSeii unit6 software-testing-techniques
Seii unit6 software-testing-techniques
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
System Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed AutomataSystem Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed Automata
 
Class9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfClass9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdf
 
11 whiteboxtesting
11 whiteboxtesting11 whiteboxtesting
11 whiteboxtesting
 
Design, analysis and controlling of an offshore load transfer system Dimuthu ...
Design, analysis and controlling of an offshore load transfer system Dimuthu ...Design, analysis and controlling of an offshore load transfer system Dimuthu ...
Design, analysis and controlling of an offshore load transfer system Dimuthu ...
 
PLCErrorHunterBrochure
PLCErrorHunterBrochurePLCErrorHunterBrochure
PLCErrorHunterBrochure
 
Analysis and Design of PID controller with control parameters in MATLAB and S...
Analysis and Design of PID controller with control parameters in MATLAB and S...Analysis and Design of PID controller with control parameters in MATLAB and S...
Analysis and Design of PID controller with control parameters in MATLAB and S...
 
Test Techniques
Test TechniquesTest Techniques
Test Techniques
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing Techniques
 

Recently uploaded

(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样gfghbihg
 
GREEN VEHICLES the kids picture show 2024
GREEN VEHICLES the kids picture show 2024GREEN VEHICLES the kids picture show 2024
GREEN VEHICLES the kids picture show 2024AHOhOops1
 
Independent Andheri Call Girls 9833363713
Independent Andheri Call Girls 9833363713Independent Andheri Call Girls 9833363713
Independent Andheri Call Girls 9833363713Komal Khan
 
定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一
定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一
定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一fjjhfuubb
 
如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一
如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一
如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一hnfusn
 
907MTAMount Coventry University Bachelor's Diploma in Engineering
907MTAMount Coventry University Bachelor's Diploma in Engineering907MTAMount Coventry University Bachelor's Diploma in Engineering
907MTAMount Coventry University Bachelor's Diploma in EngineeringFi sss
 
꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂
꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂
꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂Hot Call Girls In Sector 58 (Noida)
 
UNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHER
UNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHERUNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHER
UNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHERunosafeads
 
办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一
办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一
办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一F La
 
如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一
如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一
如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一fjjwgk
 
call girls in G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in  G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in  G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls Vastrapur 7397865700 Ridhima Hire Me Full Night
Call Girls Vastrapur 7397865700 Ridhima Hire Me Full NightCall Girls Vastrapur 7397865700 Ridhima Hire Me Full Night
Call Girls Vastrapur 7397865700 Ridhima Hire Me Full Nightssuser7cb4ff
 
办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样
办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样
办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样umasea
 
What Causes DPF Failure In VW Golf Cars & How Can They Be Prevented
What Causes DPF Failure In VW Golf Cars & How Can They Be PreventedWhat Causes DPF Failure In VW Golf Cars & How Can They Be Prevented
What Causes DPF Failure In VW Golf Cars & How Can They Be PreventedAutobahn Automotive Service
 
如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一
如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一
如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一ypfy7p5ld
 
(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCRsoniya singh
 
(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样
(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样
(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样whjjkkk
 
Not Sure About VW EGR Valve Health Look For These Symptoms
Not Sure About VW EGR Valve Health Look For These SymptomsNot Sure About VW EGR Valve Health Look For These Symptoms
Not Sure About VW EGR Valve Health Look For These SymptomsFifth Gear Automotive
 

Recently uploaded (20)

Indian Downtown Call Girls # 00971528903066 # Indian Call Girls In Downtown D...
Indian Downtown Call Girls # 00971528903066 # Indian Call Girls In Downtown D...Indian Downtown Call Girls # 00971528903066 # Indian Call Girls In Downtown D...
Indian Downtown Call Girls # 00971528903066 # Indian Call Girls In Downtown D...
 
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
 
GREEN VEHICLES the kids picture show 2024
GREEN VEHICLES the kids picture show 2024GREEN VEHICLES the kids picture show 2024
GREEN VEHICLES the kids picture show 2024
 
Independent Andheri Call Girls 9833363713
Independent Andheri Call Girls 9833363713Independent Andheri Call Girls 9833363713
Independent Andheri Call Girls 9833363713
 
定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一
定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一
定制昆士兰大学毕业证(本硕)UQ学位证书原版一比一
 
如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一
如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一
如何办理(UQ毕业证书)昆士兰大学毕业证毕业证成绩单原版一比一
 
907MTAMount Coventry University Bachelor's Diploma in Engineering
907MTAMount Coventry University Bachelor's Diploma in Engineering907MTAMount Coventry University Bachelor's Diploma in Engineering
907MTAMount Coventry University Bachelor's Diploma in Engineering
 
꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂
꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂
꧁༒☬ 7042364481 (Call Girl) In Dwarka Delhi Escort Service In Delhi Ncr☬༒꧂
 
UNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHER
UNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHERUNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHER
UNOSAFE ELEVATOR PRIVATE LTD BANGALORE BROUCHER
 
办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一
办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一
办理(PITT毕业证书)美国匹兹堡大学毕业证成绩单原版一比一
 
如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一
如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一
如何办理(UC毕业证书)堪培拉大学毕业证毕业证成绩单原版一比一
 
call girls in G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in  G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in  G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in G.T.B. Nagar (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Call Girls Vastrapur 7397865700 Ridhima Hire Me Full Night
Call Girls Vastrapur 7397865700 Ridhima Hire Me Full NightCall Girls Vastrapur 7397865700 Ridhima Hire Me Full Night
Call Girls Vastrapur 7397865700 Ridhima Hire Me Full Night
 
办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样
办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样
办理学位证(MLU文凭证书)哈勒 维滕贝格大学毕业证成绩单原版一模一样
 
Call Girls In Kirti Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Kirti Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In Kirti Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Kirti Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
What Causes DPF Failure In VW Golf Cars & How Can They Be Prevented
What Causes DPF Failure In VW Golf Cars & How Can They Be PreventedWhat Causes DPF Failure In VW Golf Cars & How Can They Be Prevented
What Causes DPF Failure In VW Golf Cars & How Can They Be Prevented
 
如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一
如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一
如何办理(Flinders毕业证)查理斯特大学毕业证毕业证成绩单原版一比一
 
(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Shaheen Bagh 🔝 Delhi NCR
 
(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样
(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样
(办理学位证)墨尔本大学毕业证(Unimelb毕业证书)成绩单留信学历认证原版一模一样
 
Not Sure About VW EGR Valve Health Look For These Symptoms
Not Sure About VW EGR Valve Health Look For These SymptomsNot Sure About VW EGR Valve Health Look For These Symptoms
Not Sure About VW EGR Valve Health Look For These Symptoms
 

STPA and Software Verification

  • 2. You can copy, share and change, film and photograph, blog, live-blog and tweet this presentation given that you attribute it to its author and respect the rights and licenses of its parts. based on slides by @SMEasterbrook und @ethanwhite
  • 5. STPA Artefacts (Recall) Diagrams •Control Structure Diagram •Process Model The main components used in STPA Data Lists • Accidents • Hazards • System Goals • Design and safety Requirements Data Tables • Unsafe Control Actions • Corresponding Safety Constraints • Causal Factors
  • 6. STPA Data Flow (Recall)
  • 8. Software Verification and Validation (V&V) Verification “Have we developed the software right?” Validation “Have we developed the right software?” Boehm, Barry (1989). "Software Risk Management".
  • 9. Software Verification Dynamic Verification (Test, experimentation) • Module Test • Integration Test • System Test • Acceptance Test • … Static Verification (Analysis) • Code Conventions Verification • Bad Practices (anti-Pattern) Detection • Software Metrics Calculation • Formal Verification • … Approaches to Verification Ghezzi, et al. Fundamentals of Software Engineering, Prentice Hall, ISBN 0-13-099183-X
  • 10. Formal Verification What we need to formally verify a software? Software Requirements Software Control Actions? Feedback? Autonomous vehicle modelled in graphical notations e.g. State- machine, stateflow. Software Design Models written in natural language e.g. English Software Code written in high-level programming language e.g. C, C++ or Java Formalisation Transformation
  • 11. Formal Specification and Verification Specify and verify properties about how a system changes over time Temporal Logics (TL) “is a convenient formalism technique for specifying and verifying properties of reactive systems” Linear Temporal Logic (LTL) “is a mathematical language for description linear-time properties” Properties of interest include : - Safety : “Nothing bad will happen” - Liveness: “Something good will happen”. - Fairness : “Independent subsystems make progress
  • 12. Formal Specification and Verification An LTL consists of: - atomic proposition symbols [p, r, q,..], Boolean operators , and temporal operators: TL Operator LTL Operator Meaning Diagram G ∅ means ”globally/always”. ∅ is true now and forever in the future X ∅ means “at the next time”. ∅ is true in the next state F ∅ means “eventually”. ∅ is true in some future state ℛ ψ R ∅ means “releases”. ∅ is true until and including the point where ψ become true. If ψ never becomes true, then ∅ must remain true forever ψ U ∅ means ”until”. ψ is at least true until ∅ happens at the current or a future position
  • 13. Exercise: Formal Specification Which LTL formula specifies the following requirement “The train door software must not close (reopen) the train door when there is a person in the doorway”? 1. LTL= G ((Person_In_Door_Way) -> G (ControlAction=Close)) 2. LTL = G (!(Person_In_Door_Way) -> (ControlAction=Close) ) 3. LTL = G ((Person_In_Door_Way) -> X ! (ControlAction=Close)) 4. LTL = G ((Person_In_Door_Way) -> X! (ControlAction=Open)) 3 Minutes
  • 14. Software Formal Verification Process How to verify my software design model/code? Software Requirements Software Design/Code Software Verification Not Satisfied Satisfied Errors Track Input OutputNo Results check YesNo
  • 15. Software Model Checking A technique to automatically verify whether the software meets its requirements. At the design level • The verification model can be constructed/extracted from the software behaviour models such as finite state machine. • Model checkers can be used at this level are: 1. SMV (Symbolic model Verifier) model checker 2. NuSMV Model checker 3. … At the implementation level • The verification model can be constructed/extracted directly from software code written in C or Java. • Software model checkers can be used at this level are: 1. SPIN (Simple Promela Interpreter) 2. …
  • 16. SMV Language Structure of the SMV model
  • 17. SMV Language Example Train door controller MODULE main VAR states: {OpenDoor , CloseDoor}; Person_In_Door_Way: boolean; ControlAction:{Open, Close}; ASSIGN init (states):=OpenDoor; init(Person_In_Door_Way):=bool(0); next (states):=case states=OpenDoor & !(Person_In_Door_Way) : CloseDoor; states=CloseDoor& (Person_In_Door_Way): OpenDoor; TRUE: {CloseDoor ,OpenDoor}; esac; next(ControlAction):=case states=OpenDoor: Open; states=OpenDoor & !(Person_In_Door_Way) : Close; states=CloseDoor& (Person_In_Door_Way): Open; TRUE:{Open, Close}; esac; Software behavioural model (stateflow) SMV Model (verification model)
  • 18. NuSMV Model Checker •It is an open source tool developed by ITC-IRST and UniTN 1999 •It is an extension and re-implementation of SMV model checker. •It based on Binary Decision Diagram (BDD) to verify finite state machine against its specifications expressed in LTL
  • 19. Exercise: Formal Specification Which LTL formula is satisfied by the SMV model of the train door controller ? 1. LTL= G ((Person_In_Door_Way) -> G (ControlAction=Close)) 2. LTL = G (!(Person_In_Door_Way) -> (ControlAction=Close) ) 3. LTL = G ((Person_In_Door_Way) -> X ! (ControlAction=Close)) 4. LTL = G ((Person_In_Door_Way) -> X ! (ControlAction=Open)) 3 Minutes
  • 20. NuSMV Model Checker Result “it contains information that shows why the given LTL is not satisfied” Counterexample -- specification G (Person_In_Door_Way -> G ControlAction = Close) is false -- as demonstrated by the following execution sequence Trace Description: LTL Counterexample Trace Type: Counterexample -> State: 1.1 <- states = OpenDoor Person_In_Door_Way = FALSE ControlAction = Open -> State: 1.2 <- states = CloseDoor Person_In_Door_Way = TRUE -- Loop starts here -> State: 1.3 <- states = OpenDoor Person_In_Door_Way = FALSE -> State: 1.4 <- states = CloseDoor -> State: 1.5 <- states = OpenDoor 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
  • 21. Formal Verification Challenges •Formal verification focuses on proving the functional correctness of software. •It can not make the software safe or reduce the risk. •It needs expert users •The requirements can not be directly verified by software model checker •State explosion problem
  • 23. STPA in Software Verification How to verify software against STPA results? Software Control Actions? Feedback? Train Door satisfied not satisfied STPA Safety Requirements Safety constraints STPA Results Software Verification (Formal Verification & Testing)
  • 24. STPA SwISs: A System-Theoretic Safety Engineering Approach for Software-Intensive Systems
  • 26. Exercise: Apply STPA to Train Door System Disuse with your colleague how to apply STPA to the train door system and do the following: 1. Write one accident that the software controller of train door can contribute in. 2. Write 3 hazards which maybe cause this accident. 3. Translate the identified hazards into the safety constraints. 4. Draw the control structure diagram of the train door system. 5. Identify one unsafe control action and translate it into a corresponding safety constraint. 10 Minutes
  • 27. Deriving the STPA Software Safety Requirements Accidents • AC1- A person is injured while the train closed the door. • …. Hazards • H1- Door close on a person in the doorway. • … System-level safety constraint • The train door controller must not close the door while a person is in the doorway • … safety control structure diagram of train door system
  • 28. Unsafe Control Actions Control Action • C1- Close • …. Unsafe Control Actions • UCA1.1- Train door controller closes the door while a person in the doorway • … Corresponding Safety Constraints • CSC 1.1- Train door controller must not close the door while a person or object is in the doorway • …
  • 29. Process Model & Variables
  • 30. Generating the Unsafe Scenarios & Requirements Unsafe Control action • UCA1.1- Train door controller closes the door while a person in the doorway Basic Scenario • RUCA1.1- The door software controller provided the control action close door while the train is stopped, train position is aligned, door state is open and a person is in the doorway. Refined software safety constraint • RSC1.1- The door software controller must not provide the control action close door while the train is stopped, train position is aligned, door state is open and a person is in the doorway.
  • 31. Causal Factors & Causal Scenarios How each unsafe control action could occur in the system?
  • 33. Formalisation of STPA Results Providing or not providing a control action (CA) is based on the occurrence of the set of values of process model variables and higher inputs (CS). • Rule 1: When CS occur in the execution path, the software must not (!) provide CA. Then, LTL formula can be expressed as: LTL = G ( CS → ! CA). • Rule 2: When CS occur in the execution path, the software must provide CA at the next step. then LTL formula can be expressed as:LTL = G ( CS → X CA) • Rule 3: The software must always not (!) provide CA too early (U) before CS the occurrence of CS still not become true. Then, the LTL formula can be expressed as: LTL = G ((CA →CS) & (!CA U CS)) • Rule 4: The software must always not (!) provide CA too late (U) while the occurrences of the critical set of combinations CS has become previously true in the execution path. Then, the LTL formula can be expressed as: LTL = G ((CS → CA) & (!CS U CA))
  • 34. Exercise: Formalisation of STPA Results Write the corresponding LTL formula for the following software safety requirements: 1. “The train door software controller must not provide the control action close door while the train is stopped, train position is aligned, door state is open and a person is in the doorway” 2. The train door software controller must provide the control action open door when there is a person in doorway. 5 Minutes
  • 36. XSTAMPP •It is an open source tool developed at our institute through student project and job (2013-2017). •Designed specially to serve the widespread adoption and use of STAMP in different areas. •It extended with an plugin called STPA verifier to support the software safety and verification (formal verification and testing activities). www.xstampp.de
  • 39. Generating Safety- based Test Case from STPA Results
  • 40. Detailed STPA SwISs Approach (Recall)
  • 41. Safety-based Test Case Generation Algorithm Safe Behavioral Model Verify ? Safety-based Test Cases traverse not satisfied satisfied modify export LTL formulae STPA Results Traceability matrix transform check SMV Model Safe Test Model model Test case sheet transform Generating Safety-based Test Cases 1 Modelling STPA Results 2 Transforming into a Formal Model 3 Checking Correctness with Model Checker 4 Generating Runnable Safe Test Model 5 Algorithm
  • 42. Modelling STPA Results A Safe Software behavioural Model
  • 43. Mapping STPA Results into Stateflow Model
  • 44. Safe behavioural model of train door controller Control structure diagram with process model Safe behavioural model of train door controller
  • 45. STPA Test Cases Generator
  • 47. Dr. Asim Abdulkhaleq e-mail asim.abdulkhaleq@informatik.uni- stuttgart.de phone +49 (0) 711 685-88458 WWW www.iste.uni-stuttgart.de/se Twitter @AbdulkhaleqAsim Institute of Software Technology
  • 48. Pictures Used in this Slide Deck • V-Model https://commons.wikimedia.org/wiki/File:V-model-en.png • NuSMV logo: http://nusmv.fbk.eu • Train door photo is taken from http://www.bbc.com/news/uk-england- tyne-24634884 • Principle of model checker photo : https://mitpress.mit.edu/books/principles- model-checking