SQA Presentation Session2
SQA Presentation Session2
SQA Presentation Session2
1
TODAY’S SESSION
1
• Software Testing Characteristics
2
• Types of Testing
3
• Software Development Life Cycle (SDLC) - Stages
4
• Software Development Life Cycle (SDLC) – Incremental Development
5
• Software Development Life Cycle (SDLC) - Enhancements
6
• QA at every Stage
7
• Seven Testing Principles
8
• The Cost of Quality
2
SOFTWARE TESTING CHARACTERISTICS
Different individuals judge software on different basis. This is because they are
involved with the software in different ways.
For example, users want the software to perform according to their requirements.
With the help of testing, it is possible to measure the quality of software in terms of
defects found, for both functional and non-functional software requirements and
characteristics.
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
3
SOFTWARE TESTING CHARACTERISTICS - EXPLANATION
Functionality: Refers to the degree of performance of the software against its
intended purpose.
Reliability: Refers to the ability of the software to provide desired functionality under
the given conditions.
Usability: Refers to the extent to which the software can be used with ease.
Efficiency: Refers to the ability of the software to use system resources in the most
effective and efficient manner.
Maintainability: Refers to the ease with which the modifications can be made in a
software system to extend its functionality, improve its performance, or correct
errors.
Portability: Refers to the ease with which software developers can transfer software
from one platform to another, without (or with minimum) changes. In simple terms,
it refers to the ability of software to function properly on different hardware and
software platforms without making any changes in it.
4
TYPES OF TESTING
Functional Testing (Tester)
5
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) – STAGES
6
SOFTWARE DEVELOPMENT LIFE CYCLE – INCREMENTAL DEVELOPMENT
7
SOFTWARE DEVELOPMENT LIFE CYCLE – ENHANCEMENTS
8
SOFTWARE DEVELOPMENT LIFE CYCLE – QA AT EVERY STAGE
9
SEVEN TESTING PRINCIPLES
A number of testing principles have been suggested over the past 40 years and offer general
guidelines common f or all testing .
Testing can show that defects are present, but cannot prove that there are no defects. Testing
reduces the probability of undiscovered defects remaining in the software but, eve n if no defects
are found, it is not a proof of correctness.
Testing everything ( all combinations of inputs and preconditions) is not feasible except for trivial
cases. Instead of exhaustive testing, risk analysis and priorities should be used to focus testing
efforts.
To find defects early, testing activities shall be started as early as possible in the software or system
development life cycle, and shall be focused on defined objectives.
10
SEVEN TESTING PRINCIPLES (CONT.…)
Principle 4 – Defect clustering
Testing effort shall be focused proportionally to the expected and later observed defect density of
modules. A small number of modules usually contains most of the defects discovered during p re-
release testing, or is responsible for most of the operation al failures.
If the same tests are repeated over and over again, eventually the same set of test cases will no
longer find any new defects. To overcome this “pesticide paradox”, test cases need to be regularly
reviewed and revised, and new and different tests need to be written to exercise different parts of
the software or system to find potentially more defects.
Testing is done differently in different contexts. For example, safety-critical software is tested
differently from an e-commerce site.
Finding and fixing defects does not help if the system built is unusable and does not fulfill the
users’ needs and expectations.
11
THE COST OF QUALITY
The argument goes something like this—we know that quality is important, but it costs us
time and money—too much time and money to get the level of software quality we really
want. On its face, this argument seems reasonable
There is no question that quality has a cost, but lack of quality also has a cost—not only to
end users who must live with buggy software, but also to the software organization that has
built and must maintain it.
To answer this question, you must understand both the cost of achieving quality
and the cost of low-quality software.
12
Reference: - Software Engineering – A Practitioner’s Approach, McGraw Hill by Roger S. Pressman
Chapter 14 Quality Concepts
HOW MUCH TESTING IS ENOUGH?
A number of factors are important in determining how much testing is enough.
Risk
Quality
Time
Budget
Testing everything ( all combinations of inputs and preconditions) every time is not feasible
except for trivial cases. Instead of exhaustive testing, risk analysis and priorities should be
used to focus testing efforts.
13
GOLD PLATING
Gold Plating refers to giving the customer extras (e.g., extra functionality, higher
quality components, and extra scope or better performance)
14
ASSIGNMENT - TYPES OF TESTING
Explore following types of Testing.
Load Testing
Maintainability testing
Performance Testing
Portability Testing
Reliability Testing
Security Testing
Stress Testing
Usability Testing
15