Software Quality Engineering: Iram Hina
Software Quality Engineering: Iram Hina
Software Quality Engineering: Iram Hina
ENGINEERING
Lecture 4
Iram Hina
BSSE-VI
HADITH OF THE DAY
Iram Hina
BSSE-VI
DEFECT REDUCTION CONT.
TESTING
Iram Hina
BSSE-VI
TESTING
Testing is one of the most important parts of QA and the most
commonly performed QA activity.
Testing involves the execution of software and the observation
of the program behaviour or outcome
If a failure is observed, the execution record is then analyzed to
locate and fix the fault(s) that caused the failure
Iram Hina
BSSE-VI
The Testing Team
Program Manager-
• The planning and execution of the project to ensure the success
of a project minimizing risk throughout the lifetime of the project.
• Responsible for writing the product specification, managing the schedule and
making the critical decisions and trade-offs.
QA Lead-
• Coach and mentor other team members to help improve QA effectiveness
• Work with other department representatives to collaborate on
joint projects and initiatives
• Implement industry best practices related to testing automation and to streamline
the QA Department.
Iram Hina
BSSE-VI
The Testing Team
Test Analyst\Lead-
• Responsible for planning, developing and executing automated test
systems, manual test plans and regressions test plans.
• Identifying the Target Test Items to be evaluated by the test effort
• Defining the appropriate tests required and any associated Test
Data
• Gathering and managing the Test Data
• Evaluating the outcome of each test cycle
Test Engineer-
• Writing and executing test cases and Reporting defects
• Test engineers are also responsible for determining the best way a
test can be performed in order to achieve 100% test coverage of all
components
Iram Hina
BSSE-VI
WHEN TO START TESTING IN SDLC
Requirement
Analysis
Design
Coding
Testing
Implementation
Maintenance
Iram Hina
BSSE-VI
TESTING LIFE CYCLE
Iram Hina
BSSE-VI
WHEN CAN A SPECIFIC TESTING ACTIVITY BE
PERFORMED AND RELATED FAULTS BE DETECTED
Testing is an execution-based QA activity, a prerequisite to actual
testing is the existence of the implemented software units,
components, or system to be tested, although preparation for testing
can be carried out in earlier phases of software development
Testing can be divided into various sub-phases starting from the coding
phase up to post-release product support, including:
unit testing (component testing)
integration testing
system testing
acceptance testing
beta testing, etc.
Iram Hina
BSSE-VI
WHEN CAN A SPECIFIC TESTING ACTIVITY BE
PERFORMED AND RELATED FAULTS BE DETECTED
10
Iram Hina
BSSE-VI
WHAT TO TEST, AND WHAT KIND OF FAULTS
ARE FOUND?
External specifications (black-box)/functional
When black-box testing is performed, failures related to
specific external functions can be observed, leading to
corresponding faults being detected and removed. The
emphasis is on reducing the chances of encountering
functional problems by target customers.
Internal implementation (white/clear-box)/structural
When white-box testing is performed, failures related to
internal implementations can be observed, leading to
corresponding faults being detected and removed.
11
Iram Hina
BSSE-VI
WHAT TO TEST, AND WHAT KIND OF FAULTS
ARE FOUND?
The emphasis is on reducing internal faults so that
there is less chance for failures later on no matter what
kind of application environment the software is
subjected to.
12
Iram Hina
BSSE-VI
OTHER TECHNIQUES FOR DEFECT
REDUCTION
Static:
formal model analysis techniques
Algorithm analysis, boundary value analysis, finite state machine, control
and data flow analysis, software fault trees etc.
Dynamic:
testing, dynamic, execution-based, techniques also exist for fault
detection and removal. For example simulation, and prototyping can
help us detect and remove various defects early in the software
development process
13
Iram Hina
BSSE-VI
DEFECT CONTAINMENT
14
Iram Hina
BSSE-VI
DEFECT CONTAINMENT
Few remaining faults may be triggered under rare conditions or
unusual dynamic scenarios, making it unrealistic to attempt to
generate the huge number of test cases to cover all these
conditions or to perform exhaustive inspection based on all
possible scenarios.
Break the causal relation between these faults and the resulting
failures, thus “tolerating” these faults
Or contain the failures by reducing the resulting damage
15
Iram Hina
BSSE-VI
FAULT TOLERANCE
Software fault tolerance ideas originate from fault tolerance
designs in traditional hardware systems that require higher
levels of reliability, availability, or dependability.
The primary software fault tolerance techniques include
recovery blocks, N-version programming (NVP), and their
variations
16
Iram Hina
BSSE-VI
FAULT TOLERANCE
Recovery blocks use repeated executions (or redundancy over
time) as the basic mechanism for fault tolerance. If dynamic
failures in some local areas are detected, a portion of the latest
execution is repeated, in the hope that this repeated execution
will not lead to the same failure. Therefore, local failures will
not propagate to global failures, although some time-delay may
be involved.
NVP uses parallel redundancy, where N copies, each of a
different version, of programs fulfilling the same functionality
are running in parallel. The decision algorithm in NVP makes
sure that local failures in limited number of these parallel
versions will not compromise global execution results
17
Iram Hina
BSSE-VI
FAULT TOLERANCE
Recovery blocks use repeated executions (or redundancy over
time) as the basic mechanism for fault tolerance. If dynamic
failures in some local areas are detected, a portion of the latest
execution is repeated, in the hope that this repeated execution
will not lead to the same failure. Therefore, local failures will
not propagate to global failures, although some time-delay may
be involved.
NVP uses parallel redundancy, where N copies, each of a
different version, of programs fulfilling the same functionality
are running in parallel. The decision algorithm in NVP makes
sure that local failures in limited number of these parallel
versions will not compromise global execution results
18
Iram Hina
BSSE-VI
END OF LECTURE
THANK YOU !
QUESTIONS?
19