SlideShare a Scribd company logo
1 of 12
Download to read offline
Peter Tröger*
, Lena Feinbube+
, Matthias Werner*
26th IEEE International Symposium on Software Reliability Engineering
*
Operating Systems Group, Technical University Chemnitz, Germany
+
Operating Systems and Middleware Group, Hasso-Plattner-Institute, Germany
WAP: What activates a bug?

A refinement of the 

Laprie terminology model
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Describing Software Bugs
▶ ‚Buggy‘ code producing an error only in the ‚right’ state
▶ Dormant design fault, activated by execution?
▶ Dormant design fault, activated for some state of argv[1]?
▶ Erroneous argument as external fault?
▶ Erroneous argument as propagating error?
▶ Mandelbug?
2
What activates a bug? A refinement of the Laprie terminology model
#define BUFSIZE 256

int main(int argc, char **argv) { 

char buf[BUFSIZE]; 

strcpy(buf, argv[1]); 

} [CWE ID 121]
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Terminology in Use
▶ Meta-study of 144 SE papers
▶ Different terminology models in use
▶ Orthogonal Defect Classification (ODC)

R. Chillarege, I. S. Bhandari, J. K. Chaar, M. J. Halliday, D. S. Moebus, B. K. Ray, and 

M.-Y. Wong, “Orthogonal defect classification- a concept for in-process measurements,” 

IEEE Transactions on Software Engineering,, vol. 18, no. 11, pp. 943–956, 1992.
▶ IEEE Software Engineering Glossary

J. Radatz, A. Geraci, and F. Katki, “IEEE Standard Glossary of Software Engineering
Terminology,” IEEE Std, vol. 61012, no. 12, p. 3, 1990.
▶ Laprie / Avizienis

A. Avizienis, J.-C. Laprie, B. Randell, and C. Landwehr, 

“Basic concepts and taxonomy of dependable and secure computing,” 

IEEE Transactions on Dependable and Secure Computing, vol. 1, no. 1, pp. 11–33, 2004.
▶ Binder

R. Binder, „Testing object-oriented systems: models, patterns, and tools.“ 

Addison-Wesley Professional, 2000.
▶ Cristian

F. Cristian, “Understanding fault-tolerant distributed systems,” 

Communications of The ACM, vol. 34, pp. 56–78, 1991.
3
What activates a bug? A refinement of the Laprie terminology model
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Goal
▶ Vocabulary is crucial
▶ Fault, error, failure, defect, bug, problem, 

recovery, outage, failure, crash, ....
▶ Team communication, document writing

▶ Terminology model for software bugs
▶ Focus on state-related issues
▶ Approach: Refine the proven existing terminology
▶ Step 1: Unambiguous description of „the“ Laprie model
▶ Step 2: Create system model for software specifics
▶ Step 3: Refine the Laprie model accordingly
4
What activates a bug? A refinement of the Laprie terminology model
e the main balance of interest and activity lies
dability and security specification of a
nclude the requirements for the attributes in
cceptable frequency and severity of service
pecified classes of faults and a given use
One or more attributes may not be required at
system.
ans to Attain Dependability and Security
e of the past 50 years many means have been
attain the various attributes of dependability
Those means can be grouped into four major
1. the physical world with its natural phenomena,
2. human developers, some possibly lacking compe
or having malicious objectives,
3. development tools: software and hardware used b
developers to assist them in the develop
process,
4. production and test facilities.
The use phase of a system’s life begins when the s
IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, VOL. 1, NO. 1, JANUARY-MARC
ility and security attributes.
Fig. 2. The dependability and security tree.
[Avizienis et al., 2004]
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
What activates a bug? A refinement of the Laprie terminology model
Step 1: Failure Automaton
5
along
t has
posi-
code
ware
error
nized
esign
and
they
tions
ernal
umes
ant –
odel.
Normal
Dormant Fault
Active Fault /
Latent Error
Detected Error
Outage
External Fault
Internal Fault
Activation
Detection
Failure
Restoration
Failure
Error Handling
Figure 1. Failure automaton with the classical Laprie terminology [6]. Since
[quotes from Avizienis et al., 2001]
“The delivery of
incorrect service

is a system outage.”
“A system failure is an
event that occurs
when the delivered
service deviates from
correct service.”
“Fault prevention:
how to prevent the
occurrence or
introduction of
faults.”
“Errors that are
present but not
detected are
latent errors.”
“A fault is active when
it produces an error,
otherwise it is
dormant. ...Most
internal faults cycle
between their dormant
and active states.”
“A transition from
incorrect service to
correct service is
service restoration.”
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Step 2: System Model for Software
▶ Recursive concept for n-tier systems

▶ Investigated layer I
▶ State vector sI: Correct or incorrect
▶ Incorrect sI (error) may be detectable

and/or externally visible (failure)
▶ Input / output through environment
▶ Next state depends on environment

▶ Environment layer E
▶ State vector sE: Expected or unexpected
▶ Can have progress on its own
6
What activates a bug? A refinement of the Laprie terminology model
Investigated Layer I
Environment Layer E
...
...
...
Internal
External
Input Output
Figure 2. Abstract system model.
The choice for the right granularity of layers is a wid
debated topic. Often, it is discussed with the unit-of-mitiga
idea in mind [29]: The smallest acceptable granularity
the one where dependability strategies, such as spatial f
tolerance, are still implementable in the layer itself.
The failure of the highest investigated system layer is
one that ultimately becomes visible to the user, since it of
the service interface of the system. The user can be ei
Laprie understanding. Error propagation happens from the
environment up to the investigated layer. The failure of the
environment layer therefore influences the fault conditions in
the investigated layer.
It may be argued that environment layer failures can lead
to a direct system failure, without prior error propagation
through the investigated layer. We argue here that, given the
assumptions above, this should also be interpreted as case
of (immediate) error propagation. One example is the crash
of an application server (environment layer) that hosts a
web application (investigated layer). In this case, propagation
occurs in the form of an implicit termination of the running
application as a distinct progress step.
It can also be argued that error propagation may happen
inside the investigated layer as well. However, for such cases,
a separate system model at a lower level of granularity can be
defined.
B. System State
The possible states of a layer can be described as state
space ⌦. We interpret one state from this set as an arbitrarily
complex vector of information, implemented in hardware or
software. Or, to use the words of Aviˇzienis et al. [5]:
“The total state of a given system is the set of the follow-
ing states: computation, communication, stored information,
interconnection, and physical condition.”
Given a chosen granularity, both the investigated layer I
and the environment layer E have current state vectors sI 2
⌦I and sE 2 ⌦E at any discrete point in time. ⌦I and ⌦E
may overlap in parts, for example when one physical memory
location in a computer contributes to both state sets.
The investigated layer has a set of correct states XI ⇢ ⌦I
which lead to a non-failing operation of the system. The envi-
ronment layer is typically a black box for the developer, so we
denote XE ⇢ ⌦E as its expected states, which just expresses
an external observer assumption regardless of whether this is
an internal error state for E. The current states sI and sE may
or may not be in the set of correct resp. expected states.
Most software systems contain both volatile state and
persistent state at any given time. Any restart or other kind of
recovery resets only the volatile state, so the persistent state
outside world. Instead, multiple levels of input buffers and
caches make the consumed input a part of the environment
layer. Similarly, the generation of output by the investigated
layer is modeled as triggered state change in the environment
layer, and not as direct action. The investigated layer therefore
has no own input or output events.
Both the environment and the investigated layer need a
progress concept, meaning that their states evolve at discrete
points in time. The most common approach to model state
changes are discrete events for an ‘atomic’ execution step.
The atomicity may e.g. refer to the processor hardware, the
semantics of the programming language as with C sequence
points, or to the execution model of the virtual runtime
environment as with PLC loop-based computers.
The choice of the next active state in I depends on the
combination of sI and sE, specifically at the moment when
the execution step happens.
Progress in I potentially also changes the state in E,
for example when system calls take place. Therefore, we
assume mutual influence between the layers, a direct one from
investigated to environment layer, and an indirect one from
environment to investigated layer.
In E, the decision about the next state relies only on the
current sE.
The assumptions of our abstract system model are summa-
rized in Table II.
Table II. STATE CONCEPT FOR THE ABSTRACT SYSTEM MODEL.
Investigated layer states ⌦I
Current state sI 2 ⌦I
Correct states XI ⇢ ⌦I
Incorrect states EI = ⌦I  XI
Detectable incorrect states DI ⇢ EI
Externally visible incorrect states FI ⇢ EI
Investigated layer progress fI : ⌦I ⇥ ⌦E ! ⌦I ⇥ ⌦E
sI
sE
(t) 7! sI
sE
(t + 1)
Environment layer states ⌦E
Current state sE 2 ⌦E
Expected states XE ⇢ ⌦E
Unexpected states EE = ⌦E  XE
Environment layer progress fE : ⌦E ! ⌦E
fE : sE (t) 7! sE (t + 1)
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Refined Terminology
▶ Refined definition for ‚software fault‘: 



Minimal set of code deviations from correct code, 

such that the execution of the deviating code can trigger an error.
▶ Fault Model: Description of possibilities for faulty code
▶ Fault Condition Model: Description of fault-enabling system states
▶ Fault Enabling: Change of system state to allow some error
▶ Fault Activation: Execution of faulty code leading to that error
7
What activates a bug? A refinement of the Laprie terminology model
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
What activates a bug? A refinement of the Laprie terminology model
Step 3: Refined Failure Automaton
8
Disabled Fault
sI 2 XI
sE 2 XE
Dormant Fault
sI 2 XI
sE 2 ⌦E
Active Fault /
Latent Error
sI 2 EI
sE 2 ⌦E
Detected Error
sI 2 DI
sE 2 ⌦E
Outage
sI 2 FI
sE 2 ⌦E
EXECF
CON
(Enabling)
COF F
(Disabling)
EXECF
(Activation) Deactivation
COF F , CON ,
EXECF
FAIL
Detection
COF F , CON ,
EXECF
Mitigation
Restoration
Recovery
FAIL
Figure 3. Failure automaton with fault activation conditions. Some events may occur in more than one of the states: CON (fault condition is fulfilled now
COF F (fault condition is no longer fulfilled), EXECF (faulty code is executed), FAIL (failure).
EXECF: Event when
faulty code is executed
CON: Event when activation
condition is established
COFF: Event when activation
condition is no longer given
EI: Incorrect states
DI: Detectable
incorrect states
FI: Externally visible
incorrect states
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Discussion
▶ Most Laprie concepts remain the same
▶ Fault prevention, fault removal and fault tolerance
▶ External physical faults may impact both sI and sE

▶ Fault handling in the original sense is now fault disabling or fault removal
▶ Might be interesting to focus on fault disabling
▶ Adding software dependencies makes fault disabling harder
▶ Activation conditions with unexpected environment states are key
▶ How to test that?

9
What activates a bug? A refinement of the Laprie terminology model
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Describing Software Bugs
▶ Unexpected input: Fault enabling due to input received in the environment
▶ Race condition: Fault enabling / disabling due to timing of the environment
▶ Missing libraries: Fault enabling immediately on application start, no COFF
▶ Automatic variable initialization: Reduction of activation conditions
▶ Common-cause error: Same sE in multiple activation conditions
10
What activates a bug? A refinement of the Laprie terminology model
#define BUFSIZE 256

int main(int argc, char **argv) { 

char buf[BUFSIZE]; 

strcpy(buf, argv[1]); 

} [CWE ID 121]
peter.troeger@informatik.tu-chemnitz.deISSRE 2015
Summary
▶ Refinement of the proven Laprie terminology model
▶ Separation of code defects and their enabling states
▶ Separation of investigated and environment layer
▶ Basic concepts (propagation, fault / error / failure) remain the same
▶ Fault model: 

Missing and defective code
▶ Fault condition model: 

System states enabling faults
▶ Error model: 

System states with activated 

faults that may lead to failure
11
What activates a bug? A refinement of the Laprie terminology model
Disabled Fault
sI 2 XI
sE 2 XE
Dormant Fault
sI 2 XI
sE 2 ⌦E
Active Fault /
Latent Error
sI 2 EI
sE 2 ⌦E
Detected Error
sI 2 DI
sE 2 ⌦E
Outage
sI 2 FI
sE 2 ⌦E
EXECF
CON
(Enabling)
COF F
(Disabling)
EXECF
(Activation) Deactivation
COF F , CON ,
EXECF
FAIL
Detection
COF F , CON ,
EXECF
Mitigation
Restoration
Recovery
FAIL
Figure 3. Failure automaton with fault activation conditions. Some events may occur in more than one of the states: CON (fault condition is fulfilled n
COF F (fault condition is no longer fulfilled), EXECF (faulty code is executed), FAIL (failure).
is no longer fulfilled. The precise formulation of such events wrong behavior. Note that COF F may not always be poss
peter.troeger@informatik.tu-chemnitz.deISSRE 2015 12
What activates a bug? A refinement of the Laprie terminology model
Disabled Fault
sI 2 XI
sE 2 XE
Dormant Fault
sI 2 XI
sE 2 ⌦E
Active Fault /
Latent Error
sI 2 EI
sE 2 ⌦E
Detected Error
sI 2 DI
sE 2 ⌦E
Outage
sI 2 FI
sE 2 ⌦E
EXECF
CON
(Enabling)
COF F
(Disabling)
EXECF
(Activation) Deactivation
COF F , CON ,
EXECF
FAIL
Detection
COF F , CON ,
EXECF
Mitigation
Restoration
Recovery
FAIL
gure 3. Failure automaton with fault activation conditions. Some events may occur in more than one of the states: CON (fault condition is fulfill
OF F (fault condition is no longer fulfilled), EXECF (faulty code is executed), FAIL (failure).

More Related Content

What's hot

Dependable Systems - System Dependability Evaluation (8/16)
Dependable Systems - System Dependability Evaluation (8/16)Dependable Systems - System Dependability Evaluation (8/16)
Dependable Systems - System Dependability Evaluation (8/16)Peter Tröger
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Peter Tröger
 
Dependable Systems - Introduction (1/16)
Dependable Systems - Introduction (1/16)Dependable Systems - Introduction (1/16)
Dependable Systems - Introduction (1/16)Peter Tröger
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Peter Tröger
 
Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Peter Tröger
 
Software reliability tools and common software errors
Software reliability tools and common software errorsSoftware reliability tools and common software errors
Software reliability tools and common software errorsHimanshu
 
Software Reliability Engineering
Software Reliability EngineeringSoftware Reliability Engineering
Software Reliability Engineeringguest90cec6
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance Systemprakashjjaya
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance SystemEhsan Ilahi
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault ToleranceAnkit Singh
 
Fault tolearant system
Fault tolearant systemFault tolearant system
Fault tolearant systemarvinthsaran
 
Software engineering 23 software reliability
Software engineering 23 software reliabilitySoftware engineering 23 software reliability
Software engineering 23 software reliabilityVaibhav Khanna
 
Software reliability & quality
Software reliability & qualitySoftware reliability & quality
Software reliability & qualityNur Islam
 
Formal Verification
Formal VerificationFormal Verification
Formal VerificationIlia Levin
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineeringMark Turner CRP
 

What's hot (20)

Dependable Systems - System Dependability Evaluation (8/16)
Dependable Systems - System Dependability Evaluation (8/16)Dependable Systems - System Dependability Evaluation (8/16)
Dependable Systems - System Dependability Evaluation (8/16)
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)
 
Dependable Systems - Introduction (1/16)
Dependable Systems - Introduction (1/16)Dependable Systems - Introduction (1/16)
Dependable Systems - Introduction (1/16)
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
 
Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)
 
Software reliability tools and common software errors
Software reliability tools and common software errorsSoftware reliability tools and common software errors
Software reliability tools and common software errors
 
SRE Tools
SRE ToolsSRE Tools
SRE Tools
 
Software Reliability Engineering
Software Reliability EngineeringSoftware Reliability Engineering
Software Reliability Engineering
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance System
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance System
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault Tolerance
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
Fault tolearant system
Fault tolearant systemFault tolearant system
Fault tolearant system
 
Fault tolerance techniques
Fault tolerance techniquesFault tolerance techniques
Fault tolerance techniques
 
Software engineering 23 software reliability
Software engineering 23 software reliabilitySoftware engineering 23 software reliability
Software engineering 23 software reliability
 
Software reliability & quality
Software reliability & qualitySoftware reliability & quality
Software reliability & quality
 
Formal Verification
Formal VerificationFormal Verification
Formal Verification
 
Quality & Reliability in Software Engineering
Quality & Reliability in Software EngineeringQuality & Reliability in Software Engineering
Quality & Reliability in Software Engineering
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineering
 

Viewers also liked

Methods Of Reliability Analysis
Methods Of Reliability AnalysisMethods Of Reliability Analysis
Methods Of Reliability AnalysisSvitlana volkova
 
Defect Prediction & Prevention In Automotive Software Development
Defect Prediction & Prevention In Automotive Software DevelopmentDefect Prediction & Prevention In Automotive Software Development
Defect Prediction & Prevention In Automotive Software DevelopmentRAKESH RANA
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliabilitydespicable me
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Software reliability
Software reliabilitySoftware reliability
Software reliabilityAnand Kumar
 

Viewers also liked (7)

Ict
IctIct
Ict
 
Methods Of Reliability Analysis
Methods Of Reliability AnalysisMethods Of Reliability Analysis
Methods Of Reliability Analysis
 
The Planets
The PlanetsThe Planets
The Planets
 
Defect Prediction & Prevention In Automotive Software Development
Defect Prediction & Prevention In Automotive Software DevelopmentDefect Prediction & Prevention In Automotive Software Development
Defect Prediction & Prevention In Automotive Software Development
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliability
 
Software quality
Software qualitySoftware quality
Software quality
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 

Similar to What activates a bug? A refinement of the Laprie terminology model.

Software engg. pressman_ch-8
Software engg. pressman_ch-8Software engg. pressman_ch-8
Software engg. pressman_ch-8Dhairya Joshi
 
Review Paper on Recovery of Data during Software Fault
Review Paper on Recovery of Data during Software FaultReview Paper on Recovery of Data during Software Fault
Review Paper on Recovery of Data during Software FaultAM Publications
 
INTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINE
INTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINEINTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINE
INTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINEIRJET Journal
 
Dependable Software Development in Software Engineering SE18
Dependable Software Development in Software Engineering SE18Dependable Software Development in Software Engineering SE18
Dependable Software Development in Software Engineering SE18koolkampus
 
A Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office CommunicationA Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office Communicationtheijes
 
A General Framework for Electronic Circuit Verification
A General Framework for Electronic Circuit VerificationA General Framework for Electronic Circuit Verification
A General Framework for Electronic Circuit VerificationIRJET Journal
 
Automatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang ApplicationsAutomatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang ApplicationsJan Henry Nystrom
 
Exploring Failure Transparency and the Limits of Generic Recovery
Exploring Failure Transparency and the Limits of Generic RecoveryExploring Failure Transparency and the Limits of Generic Recovery
Exploring Failure Transparency and the Limits of Generic RecoveryMiro Cupak
 
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisTransfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisPooyan Jamshidi
 
Types of workloads k 04tow
Types of workloads k 04towTypes of workloads k 04tow
Types of workloads k 04towPrakhar Dixit
 
Password protected diary
Password protected diaryPassword protected diary
Password protected diarySHARDA SHARAN
 
Placement management system
Placement management systemPlacement management system
Placement management systemSurya Teja
 
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications neirew J
 
Error isolation and management in agile
Error isolation and management in agileError isolation and management in agile
Error isolation and management in agileijccsa
 
Predicting system trustworthyness
Predicting system trustworthynessPredicting system trustworthyness
Predicting system trustworthynessSaransh Garg
 
CS304PC:Computer Organization and Architecture Session 15 program control.pptx
CS304PC:Computer Organization and Architecture Session 15 program control.pptxCS304PC:Computer Organization and Architecture Session 15 program control.pptx
CS304PC:Computer Organization and Architecture Session 15 program control.pptxAsst.prof M.Gokilavani
 
Restoration and Degeneration of the Applications
Restoration and Degeneration of the ApplicationsRestoration and Degeneration of the Applications
Restoration and Degeneration of the Applicationsiosrjce
 

Similar to What activates a bug? A refinement of the Laprie terminology model. (20)

Software engg. pressman_ch-8
Software engg. pressman_ch-8Software engg. pressman_ch-8
Software engg. pressman_ch-8
 
Ecbs2000
Ecbs2000Ecbs2000
Ecbs2000
 
Review Paper on Recovery of Data during Software Fault
Review Paper on Recovery of Data during Software FaultReview Paper on Recovery of Data during Software Fault
Review Paper on Recovery of Data during Software Fault
 
INTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINE
INTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINEINTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINE
INTELLIGENT MALWARE DETECTION USING EXTREME LEARNING MACHINE
 
Dependable Software Development in Software Engineering SE18
Dependable Software Development in Software Engineering SE18Dependable Software Development in Software Engineering SE18
Dependable Software Development in Software Engineering SE18
 
A Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office CommunicationA Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office Communication
 
A General Framework for Electronic Circuit Verification
A General Framework for Electronic Circuit VerificationA General Framework for Electronic Circuit Verification
A General Framework for Electronic Circuit Verification
 
Automatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang ApplicationsAutomatic Assessment of Failure Recovery in Erlang Applications
Automatic Assessment of Failure Recovery in Erlang Applications
 
Exploring Failure Transparency and the Limits of Generic Recovery
Exploring Failure Transparency and the Limits of Generic RecoveryExploring Failure Transparency and the Limits of Generic Recovery
Exploring Failure Transparency and the Limits of Generic Recovery
 
RTOS - Real Time Operating Systems
RTOS - Real Time Operating SystemsRTOS - Real Time Operating Systems
RTOS - Real Time Operating Systems
 
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisTransfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
 
Types of workloads k 04tow
Types of workloads k 04towTypes of workloads k 04tow
Types of workloads k 04tow
 
Password protected diary
Password protected diaryPassword protected diary
Password protected diary
 
Placement management system
Placement management systemPlacement management system
Placement management system
 
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
 
Error isolation and management in agile
Error isolation and management in agileError isolation and management in agile
Error isolation and management in agile
 
Predicting system trustworthyness
Predicting system trustworthynessPredicting system trustworthyness
Predicting system trustworthyness
 
CS304PC:Computer Organization and Architecture Session 15 program control.pptx
CS304PC:Computer Organization and Architecture Session 15 program control.pptxCS304PC:Computer Organization and Architecture Session 15 program control.pptx
CS304PC:Computer Organization and Architecture Session 15 program control.pptx
 
F017264143
F017264143F017264143
F017264143
 
Restoration and Degeneration of the Applications
Restoration and Degeneration of the ApplicationsRestoration and Degeneration of the Applications
Restoration and Degeneration of the Applications
 

More from Peter Tröger

WannaCry - An OS course perspective
WannaCry - An OS course perspectiveWannaCry - An OS course perspective
WannaCry - An OS course perspectivePeter Tröger
 
Cloud Standards and Virtualization
Cloud Standards and VirtualizationCloud Standards and Virtualization
Cloud Standards and VirtualizationPeter Tröger
 
Distributed Resource Management Application API (DRMAA) Version 2
Distributed Resource Management Application API (DRMAA) Version 2Distributed Resource Management Application API (DRMAA) Version 2
Distributed Resource Management Application API (DRMAA) Version 2Peter Tröger
 
Design of Software for Embedded Systems
Design of Software for Embedded SystemsDesign of Software for Embedded Systems
Design of Software for Embedded SystemsPeter Tröger
 
Humans should not write XML.
Humans should not write XML.Humans should not write XML.
Humans should not write XML.Peter Tröger
 
Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0Peter Tröger
 
Operating Systems 1 (12/12) - Summary
Operating Systems 1 (12/12) - SummaryOperating Systems 1 (12/12) - Summary
Operating Systems 1 (12/12) - SummaryPeter Tröger
 
Operating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - ConcurrencyOperating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - ConcurrencyPeter Tröger
 
Operating Systems 1 (9/12) - Memory Management Concepts
Operating Systems 1 (9/12) - Memory Management ConceptsOperating Systems 1 (9/12) - Memory Management Concepts
Operating Systems 1 (9/12) - Memory Management ConceptsPeter Tröger
 
Operating Systems 1 (7/12) - Threads
Operating Systems 1 (7/12) - ThreadsOperating Systems 1 (7/12) - Threads
Operating Systems 1 (7/12) - ThreadsPeter Tröger
 
Operating Systems 1 (1/12) - History
Operating Systems 1 (1/12) - HistoryOperating Systems 1 (1/12) - History
Operating Systems 1 (1/12) - HistoryPeter Tröger
 
Operating Systems 1 (2/12) - Hardware Basics
Operating Systems 1 (2/12) - Hardware BasicsOperating Systems 1 (2/12) - Hardware Basics
Operating Systems 1 (2/12) - Hardware BasicsPeter Tröger
 
Operating Systems 1 (11/12) - Input / Output
Operating Systems 1 (11/12) - Input / OutputOperating Systems 1 (11/12) - Input / Output
Operating Systems 1 (11/12) - Input / OutputPeter Tröger
 
Operating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesOperating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesPeter Tröger
 
Operating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - ProcessesOperating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - ProcessesPeter Tröger
 
Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)Peter Tröger
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Peter Tröger
 

More from Peter Tröger (17)

WannaCry - An OS course perspective
WannaCry - An OS course perspectiveWannaCry - An OS course perspective
WannaCry - An OS course perspective
 
Cloud Standards and Virtualization
Cloud Standards and VirtualizationCloud Standards and Virtualization
Cloud Standards and Virtualization
 
Distributed Resource Management Application API (DRMAA) Version 2
Distributed Resource Management Application API (DRMAA) Version 2Distributed Resource Management Application API (DRMAA) Version 2
Distributed Resource Management Application API (DRMAA) Version 2
 
Design of Software for Embedded Systems
Design of Software for Embedded SystemsDesign of Software for Embedded Systems
Design of Software for Embedded Systems
 
Humans should not write XML.
Humans should not write XML.Humans should not write XML.
Humans should not write XML.
 
Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0
 
Operating Systems 1 (12/12) - Summary
Operating Systems 1 (12/12) - SummaryOperating Systems 1 (12/12) - Summary
Operating Systems 1 (12/12) - Summary
 
Operating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - ConcurrencyOperating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - Concurrency
 
Operating Systems 1 (9/12) - Memory Management Concepts
Operating Systems 1 (9/12) - Memory Management ConceptsOperating Systems 1 (9/12) - Memory Management Concepts
Operating Systems 1 (9/12) - Memory Management Concepts
 
Operating Systems 1 (7/12) - Threads
Operating Systems 1 (7/12) - ThreadsOperating Systems 1 (7/12) - Threads
Operating Systems 1 (7/12) - Threads
 
Operating Systems 1 (1/12) - History
Operating Systems 1 (1/12) - HistoryOperating Systems 1 (1/12) - History
Operating Systems 1 (1/12) - History
 
Operating Systems 1 (2/12) - Hardware Basics
Operating Systems 1 (2/12) - Hardware BasicsOperating Systems 1 (2/12) - Hardware Basics
Operating Systems 1 (2/12) - Hardware Basics
 
Operating Systems 1 (11/12) - Input / Output
Operating Systems 1 (11/12) - Input / OutputOperating Systems 1 (11/12) - Input / Output
Operating Systems 1 (11/12) - Input / Output
 
Operating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesOperating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - Architectures
 
Operating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - ProcessesOperating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - Processes
 
Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)Operating Systems 1 (5/12) - Architectures (Unix)
Operating Systems 1 (5/12) - Architectures (Unix)
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)
 

Recently uploaded

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 

Recently uploaded (20)

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 

What activates a bug? A refinement of the Laprie terminology model.

  • 1. Peter Tröger* , Lena Feinbube+ , Matthias Werner* 26th IEEE International Symposium on Software Reliability Engineering * Operating Systems Group, Technical University Chemnitz, Germany + Operating Systems and Middleware Group, Hasso-Plattner-Institute, Germany WAP: What activates a bug?
 A refinement of the 
 Laprie terminology model
  • 2. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Describing Software Bugs ▶ ‚Buggy‘ code producing an error only in the ‚right’ state ▶ Dormant design fault, activated by execution? ▶ Dormant design fault, activated for some state of argv[1]? ▶ Erroneous argument as external fault? ▶ Erroneous argument as propagating error? ▶ Mandelbug? 2 What activates a bug? A refinement of the Laprie terminology model #define BUFSIZE 256
 int main(int argc, char **argv) { 
 char buf[BUFSIZE]; 
 strcpy(buf, argv[1]); 
 } [CWE ID 121]
  • 3. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Terminology in Use ▶ Meta-study of 144 SE papers ▶ Different terminology models in use ▶ Orthogonal Defect Classification (ODC)
 R. Chillarege, I. S. Bhandari, J. K. Chaar, M. J. Halliday, D. S. Moebus, B. K. Ray, and 
 M.-Y. Wong, “Orthogonal defect classification- a concept for in-process measurements,” 
 IEEE Transactions on Software Engineering,, vol. 18, no. 11, pp. 943–956, 1992. ▶ IEEE Software Engineering Glossary
 J. Radatz, A. Geraci, and F. Katki, “IEEE Standard Glossary of Software Engineering Terminology,” IEEE Std, vol. 61012, no. 12, p. 3, 1990. ▶ Laprie / Avizienis
 A. Avizienis, J.-C. Laprie, B. Randell, and C. Landwehr, 
 “Basic concepts and taxonomy of dependable and secure computing,” 
 IEEE Transactions on Dependable and Secure Computing, vol. 1, no. 1, pp. 11–33, 2004. ▶ Binder
 R. Binder, „Testing object-oriented systems: models, patterns, and tools.“ 
 Addison-Wesley Professional, 2000. ▶ Cristian
 F. Cristian, “Understanding fault-tolerant distributed systems,” 
 Communications of The ACM, vol. 34, pp. 56–78, 1991. 3 What activates a bug? A refinement of the Laprie terminology model
  • 4. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Goal ▶ Vocabulary is crucial ▶ Fault, error, failure, defect, bug, problem, 
 recovery, outage, failure, crash, .... ▶ Team communication, document writing
 ▶ Terminology model for software bugs ▶ Focus on state-related issues ▶ Approach: Refine the proven existing terminology ▶ Step 1: Unambiguous description of „the“ Laprie model ▶ Step 2: Create system model for software specifics ▶ Step 3: Refine the Laprie model accordingly 4 What activates a bug? A refinement of the Laprie terminology model e the main balance of interest and activity lies dability and security specification of a nclude the requirements for the attributes in cceptable frequency and severity of service pecified classes of faults and a given use One or more attributes may not be required at system. ans to Attain Dependability and Security e of the past 50 years many means have been attain the various attributes of dependability Those means can be grouped into four major 1. the physical world with its natural phenomena, 2. human developers, some possibly lacking compe or having malicious objectives, 3. development tools: software and hardware used b developers to assist them in the develop process, 4. production and test facilities. The use phase of a system’s life begins when the s IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, VOL. 1, NO. 1, JANUARY-MARC ility and security attributes. Fig. 2. The dependability and security tree. [Avizienis et al., 2004]
  • 5. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 What activates a bug? A refinement of the Laprie terminology model Step 1: Failure Automaton 5 along t has posi- code ware error nized esign and they tions ernal umes ant – odel. Normal Dormant Fault Active Fault / Latent Error Detected Error Outage External Fault Internal Fault Activation Detection Failure Restoration Failure Error Handling Figure 1. Failure automaton with the classical Laprie terminology [6]. Since [quotes from Avizienis et al., 2001] “The delivery of incorrect service
 is a system outage.” “A system failure is an event that occurs when the delivered service deviates from correct service.” “Fault prevention: how to prevent the occurrence or introduction of faults.” “Errors that are present but not detected are latent errors.” “A fault is active when it produces an error, otherwise it is dormant. ...Most internal faults cycle between their dormant and active states.” “A transition from incorrect service to correct service is service restoration.”
  • 6. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Step 2: System Model for Software ▶ Recursive concept for n-tier systems
 ▶ Investigated layer I ▶ State vector sI: Correct or incorrect ▶ Incorrect sI (error) may be detectable
 and/or externally visible (failure) ▶ Input / output through environment ▶ Next state depends on environment
 ▶ Environment layer E ▶ State vector sE: Expected or unexpected ▶ Can have progress on its own 6 What activates a bug? A refinement of the Laprie terminology model Investigated Layer I Environment Layer E ... ... ... Internal External Input Output Figure 2. Abstract system model. The choice for the right granularity of layers is a wid debated topic. Often, it is discussed with the unit-of-mitiga idea in mind [29]: The smallest acceptable granularity the one where dependability strategies, such as spatial f tolerance, are still implementable in the layer itself. The failure of the highest investigated system layer is one that ultimately becomes visible to the user, since it of the service interface of the system. The user can be ei Laprie understanding. Error propagation happens from the environment up to the investigated layer. The failure of the environment layer therefore influences the fault conditions in the investigated layer. It may be argued that environment layer failures can lead to a direct system failure, without prior error propagation through the investigated layer. We argue here that, given the assumptions above, this should also be interpreted as case of (immediate) error propagation. One example is the crash of an application server (environment layer) that hosts a web application (investigated layer). In this case, propagation occurs in the form of an implicit termination of the running application as a distinct progress step. It can also be argued that error propagation may happen inside the investigated layer as well. However, for such cases, a separate system model at a lower level of granularity can be defined. B. System State The possible states of a layer can be described as state space ⌦. We interpret one state from this set as an arbitrarily complex vector of information, implemented in hardware or software. Or, to use the words of Aviˇzienis et al. [5]: “The total state of a given system is the set of the follow- ing states: computation, communication, stored information, interconnection, and physical condition.” Given a chosen granularity, both the investigated layer I and the environment layer E have current state vectors sI 2 ⌦I and sE 2 ⌦E at any discrete point in time. ⌦I and ⌦E may overlap in parts, for example when one physical memory location in a computer contributes to both state sets. The investigated layer has a set of correct states XI ⇢ ⌦I which lead to a non-failing operation of the system. The envi- ronment layer is typically a black box for the developer, so we denote XE ⇢ ⌦E as its expected states, which just expresses an external observer assumption regardless of whether this is an internal error state for E. The current states sI and sE may or may not be in the set of correct resp. expected states. Most software systems contain both volatile state and persistent state at any given time. Any restart or other kind of recovery resets only the volatile state, so the persistent state outside world. Instead, multiple levels of input buffers and caches make the consumed input a part of the environment layer. Similarly, the generation of output by the investigated layer is modeled as triggered state change in the environment layer, and not as direct action. The investigated layer therefore has no own input or output events. Both the environment and the investigated layer need a progress concept, meaning that their states evolve at discrete points in time. The most common approach to model state changes are discrete events for an ‘atomic’ execution step. The atomicity may e.g. refer to the processor hardware, the semantics of the programming language as with C sequence points, or to the execution model of the virtual runtime environment as with PLC loop-based computers. The choice of the next active state in I depends on the combination of sI and sE, specifically at the moment when the execution step happens. Progress in I potentially also changes the state in E, for example when system calls take place. Therefore, we assume mutual influence between the layers, a direct one from investigated to environment layer, and an indirect one from environment to investigated layer. In E, the decision about the next state relies only on the current sE. The assumptions of our abstract system model are summa- rized in Table II. Table II. STATE CONCEPT FOR THE ABSTRACT SYSTEM MODEL. Investigated layer states ⌦I Current state sI 2 ⌦I Correct states XI ⇢ ⌦I Incorrect states EI = ⌦I XI Detectable incorrect states DI ⇢ EI Externally visible incorrect states FI ⇢ EI Investigated layer progress fI : ⌦I ⇥ ⌦E ! ⌦I ⇥ ⌦E sI sE (t) 7! sI sE (t + 1) Environment layer states ⌦E Current state sE 2 ⌦E Expected states XE ⇢ ⌦E Unexpected states EE = ⌦E XE Environment layer progress fE : ⌦E ! ⌦E fE : sE (t) 7! sE (t + 1)
  • 7. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Refined Terminology ▶ Refined definition for ‚software fault‘: 
 
 Minimal set of code deviations from correct code, 
 such that the execution of the deviating code can trigger an error. ▶ Fault Model: Description of possibilities for faulty code ▶ Fault Condition Model: Description of fault-enabling system states ▶ Fault Enabling: Change of system state to allow some error ▶ Fault Activation: Execution of faulty code leading to that error 7 What activates a bug? A refinement of the Laprie terminology model
  • 8. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 What activates a bug? A refinement of the Laprie terminology model Step 3: Refined Failure Automaton 8 Disabled Fault sI 2 XI sE 2 XE Dormant Fault sI 2 XI sE 2 ⌦E Active Fault / Latent Error sI 2 EI sE 2 ⌦E Detected Error sI 2 DI sE 2 ⌦E Outage sI 2 FI sE 2 ⌦E EXECF CON (Enabling) COF F (Disabling) EXECF (Activation) Deactivation COF F , CON , EXECF FAIL Detection COF F , CON , EXECF Mitigation Restoration Recovery FAIL Figure 3. Failure automaton with fault activation conditions. Some events may occur in more than one of the states: CON (fault condition is fulfilled now COF F (fault condition is no longer fulfilled), EXECF (faulty code is executed), FAIL (failure). EXECF: Event when faulty code is executed CON: Event when activation condition is established COFF: Event when activation condition is no longer given EI: Incorrect states DI: Detectable incorrect states FI: Externally visible incorrect states
  • 9. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Discussion ▶ Most Laprie concepts remain the same ▶ Fault prevention, fault removal and fault tolerance ▶ External physical faults may impact both sI and sE
 ▶ Fault handling in the original sense is now fault disabling or fault removal ▶ Might be interesting to focus on fault disabling ▶ Adding software dependencies makes fault disabling harder ▶ Activation conditions with unexpected environment states are key ▶ How to test that?
 9 What activates a bug? A refinement of the Laprie terminology model
  • 10. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Describing Software Bugs ▶ Unexpected input: Fault enabling due to input received in the environment ▶ Race condition: Fault enabling / disabling due to timing of the environment ▶ Missing libraries: Fault enabling immediately on application start, no COFF ▶ Automatic variable initialization: Reduction of activation conditions ▶ Common-cause error: Same sE in multiple activation conditions 10 What activates a bug? A refinement of the Laprie terminology model #define BUFSIZE 256
 int main(int argc, char **argv) { 
 char buf[BUFSIZE]; 
 strcpy(buf, argv[1]); 
 } [CWE ID 121]
  • 11. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 Summary ▶ Refinement of the proven Laprie terminology model ▶ Separation of code defects and their enabling states ▶ Separation of investigated and environment layer ▶ Basic concepts (propagation, fault / error / failure) remain the same ▶ Fault model: 
 Missing and defective code ▶ Fault condition model: 
 System states enabling faults ▶ Error model: 
 System states with activated 
 faults that may lead to failure 11 What activates a bug? A refinement of the Laprie terminology model Disabled Fault sI 2 XI sE 2 XE Dormant Fault sI 2 XI sE 2 ⌦E Active Fault / Latent Error sI 2 EI sE 2 ⌦E Detected Error sI 2 DI sE 2 ⌦E Outage sI 2 FI sE 2 ⌦E EXECF CON (Enabling) COF F (Disabling) EXECF (Activation) Deactivation COF F , CON , EXECF FAIL Detection COF F , CON , EXECF Mitigation Restoration Recovery FAIL Figure 3. Failure automaton with fault activation conditions. Some events may occur in more than one of the states: CON (fault condition is fulfilled n COF F (fault condition is no longer fulfilled), EXECF (faulty code is executed), FAIL (failure). is no longer fulfilled. The precise formulation of such events wrong behavior. Note that COF F may not always be poss
  • 12. peter.troeger@informatik.tu-chemnitz.deISSRE 2015 12 What activates a bug? A refinement of the Laprie terminology model Disabled Fault sI 2 XI sE 2 XE Dormant Fault sI 2 XI sE 2 ⌦E Active Fault / Latent Error sI 2 EI sE 2 ⌦E Detected Error sI 2 DI sE 2 ⌦E Outage sI 2 FI sE 2 ⌦E EXECF CON (Enabling) COF F (Disabling) EXECF (Activation) Deactivation COF F , CON , EXECF FAIL Detection COF F , CON , EXECF Mitigation Restoration Recovery FAIL gure 3. Failure automaton with fault activation conditions. Some events may occur in more than one of the states: CON (fault condition is fulfill OF F (fault condition is no longer fulfilled), EXECF (faulty code is executed), FAIL (failure).