Software Quality Engineering: Iram Hina

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 19

SOFTWARE QUALITY

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

WHO IS A SOFTWARE TESTER??


Software Tester is the one who performs testing and find
bugs, if they exist in the tested application.
4

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

 Testing starts from Requirement Phase

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

The observation of failures can be associated with these


individual sub-phases, and the identification and removal of
related faults can be associated with corresponding individual
units, components, or the complete system.

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

 Due to large size and high complexity of most software


systems, the defect reduction activities can only reduce the
number of faults to a fairly low level, but not completely
eliminate them.
 For software systems where failure impact is substantial, such
as many real-time control software sub-systems used in
medical, nuclear, transportation, and other embedded systems,
this low defect level and failure risk may still be inadequate.

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

BSSE-VI Iram Hina

You might also like