CSE327 Lecture 11 MMA1
CSE327 Lecture 11 MMA1
CSE327 Lecture 11 MMA1
Engineering
(CSE 327)
Lecture 11
(Issue/Bug Tracking)
Issue Tracking
Remember
Terminology
Mistake
•A human action that produces an incorrect result
•For example, the type integer is used instead of double causing
loss of information during execution.
Fault / Defect
•Fault is a software defect (incorrect step, process or data
definition) that causes a failure. Example, infinite program loop.
•The adjudged cause of failure is called a fault. Example: A
failure may be cause by a defective block of code.
Terminology
Failure
•The inability of a system or component to perform its required functions
within specified performance requirements .
•A manifest observable violation against specification or client expectations
by the system.
• For example: Client requirement needs the administrator to be able to
add new users, however, the system does not allow it.
Error
•The difference between a computed, observed, or measured value or
condition and the true, specified, or theoretically correct value or condition.
•For example, if an equation should return 100 but is returning 99.95.
Terminology
Bug
•A software bug is an error, failure, or fault in a
computer program or system that causes it to produce
an incorrect or unexpected result.
Fault and Failure Example
• A patient gives a doctor a list of symptoms
– Failures
• The doctor tries to diagnose the root cause of
the ailment
– Fault
• The doctor may look for anomalous internal
conditions (high blood pressure, irregular
heartbeat, bacteria in the blood stream)
– Errors
Software Faults, Errors & Failures
• Software Fault : A static defect in the software
13
A Concrete Example
Fault: Should start
searching at 0, not 1
10/31/23
V-Model
• The requirements analysis phase of software development
captures the customer’s needs.
• Acceptance testing is designed to determine whether the
completed software in fact meets these needs. In other
words, acceptance testing probes whether the software
does what the users want.
– Acceptance testing must involve users or other individuals who
have strong domain knowledge.
V-Model Cont.
• The architectural design phase of software development chooses
components and connectors that together realize a system whose
specification is intended to meet the previously identified requirements.
• System testing is designed to determine whether the assembled system
meets its specifications. It assumes that the pieces work individually, and
asks if the system works as a whole.
– This level of testing usually looks for design and specification problems.
– It is a very expensive place to find lower-level faults and is usually not done by the
programmers, but by a separate testing team
V-Model Cont.
• The subsystem design phase of software development specifies the
structure and behavior of subsystems, each of which is intended to satisfy
some function in the overall architecture. Often, the subsystems are
adaptations of previously developed software.
• Integration testing is designed to assess whether the interfaces between
modules (defined below) in a subsystem have consistent assumptions and
communicate
correctly.
– Integration testing must assume that modules work correct.
Class A Class B
Intra-class testing : Test
method mA1() method mB1() an entire class as
sequences of calls
method mA2() method mB2()
Inter-method testing :
Test pairs of methods in
the same class
Intra-method testing : Test
each method individually
10/31/23