Vous êtes sur la page 1sur 15

SESSION - 2

Zeeshan Bin Aslam


MS (Software Engineering)
Hamdard University

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.

 Similarly, developers involved in designing, coding, and maintenance of the software


evaluate the software by looking at its internal characteristics, before delivering it to
the user.

 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)

 Non-Functional Testing (Tester)

 Component Testing (Unit, Module or Program Testing) (Developer)

 Integration Testing (Developer and Tester)

 System Testing (Tester)

 Acceptance Testing (End User)

 Alpha Testing (Third Party)

 Beta Testing (End User)

 Black Box Testing (Tester)

 White Box 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 .

Principle 1 – Testing shows presence of defects

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.

Principle 2 – Exhaustive testing is impossible

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.

Principle 3 – Early testing

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.

Principle 5 – Pesticide paradox

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.

Principle 6 – Testing is context dependent

Testing is done differently in different contexts. For example, safety-critical software is tested
differently from an e-commerce site.

Principle 7 – Absence-of-error s fallacy

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.

Which cost should we be worried about?

 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)

 This practice is not recommended as sometimes it adds no value to the project.


Project managers would be better off spending their time seeing that project
conform to requirements.

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

Vous aimerez peut-être aussi