UNIT -I
Overview: UNIT I
Goals Of Software Testing
Model For Software Testing
Software Testing Terminology
Software Testing Life Cycle (STLC)
Software Testing Methodology
Software Testing Strategy
Test Strategy Matrix
Testing Life Cycle Model
Validation Activities
Defect management process
Software Failure Case Studies
What is Software Testing?
Process of finding the yet undiscovered bugs/errors
in the program
Reduces this risk
Can identify the issues and resolve them
Goals of Software Testing
Detecting bugs as soon as feasible in any situation.
Avoiding errors in a project’s and product’s final
versions.
Inspect to see whether the customer requirements
criterion has been satisfied.
The primary purpose of testing is to gauge the
project and product level of quality.
Continued…
1. Immediate Goals
2. Long-term Goals
3. Post-Implementation Goals
Immediate Goals
These objectives are the direct outcomes of testing.
These objectives may be set at any time during the
SDLC process.
Bug Discovery
Bug Prevention
Long-Term Goals
These objectives have an impact on product quality in
the long run after one cycle of the SDLC is completed.
Quality
Customer Satisfaction
Reliability
Risk Management
Post-Implemented Goals
Reduce Maintenance Cost
Improved Software Testing Process
Types of Testing Techniques /
Terminologies
Unit Testing
Integration Testing
System Testing
Regression Testing
UAT – User Acceptance testing
Software Testing Terminologies
Black Box Testing
White Box Testing
Grey Box Testing
Ad-hoc Testing
Exploratory Testing
Alpha Testing
Beta Testing
Automated Testing
Software Testing Models
Different types of software testing models are as
below:
Waterfall Model
V Model
Agile Model
Spiral Model
Iterative Model
Waterfall Model
V Model
Agile Model
Spiral Model
Iterative Model
Software Testing Terminology
Failure: When the software is tested, failure is the first
term being used. It means the inability of a system or
component to perform a required function according to
its specification.
Fault/Defect/Bug : Failure is the term which is used to
describe the problems in a system on the output side.
Fault is a condition that in actual causes a system to
produce failure.
Error : Whenever a development team member
makes a mistake in any phase of SDLC, errors are
produced.
Fig: Flow of faults
Software Testing Life Cycle (STLC)
In SDLC, there is need for a well-defined series of
steps to ensure successful and effective software
testing.
Test Planning
The goal of test planning is to take into account the
important issues of testing strategy, viz. resources,
schedules, responsibilities, risks, and priorities, as a
roadmap.
Defining the test strategy.
„Estimate the number of test cases, their duration, and cost.
„Plan the resources like the manpower to test, tools required,
documents required.
„Identifying areas of risks.
„Defining the test completion criteria.
„Identification of methodologies, techniques, and tools for various
test cases.
„Identifying reporting procedures, bug classification, databases for
testing, bug severity levels, and project metrics.
After analysing the issues, the following activities are
performed:
„Develop a test case format.
„Develop test case plans according to every phase of SDLC.
„Identify test cases to be automated (if applicable).
„Prioritize the test cases according to their importance and
criticality.
„Define areas of stress and performance testing.
„Plan the test cycles required for regression testing
Test Design
• Determining the test objectives and their prioritization
• Preparing list of items to be tested
• Mapping items to test cases
• Selection of test case design techniques
• Creating test cases and test data
• Setting up the test environment and supporting tools
• Creating test procedure specification
Test Execution
In this phase, all test cases are executed including
verification and validation.
Test results are documented in the test incident
reports, test logs, testing status, and test summary
reports.
Post-Execution/Test Review
This phase is to analyse bug-related issues and get
feedback so that maximum number of bugs can be
removed.
Understanding the bug
Reproducing the bug
Analysing the nature and cause of the bug
SOFTWARE TESTING METHODOLOGY
SOFTWARE TESTING STRATEGY
Testing strategy is the planning of the whole testing
process into a well-planned series of steps.
Test Factors:
Test factors are risk factors or issues related to the system under
development. Risk factors need to be selected and ranked according
to a specific system under development.
Test Phase:
o It refers to the phases of SDLC where testing will be performed.
o Testing strategy may be different for different models of SDLC,
e.g. strategies will be different for waterfall and spiral models.
Test Strategy Matrix
A test strategy matrix identifies the concerns that
will become the focus of test planning and execution.
The matrix is prepared using test factors and test
phase:
Select and rank test factors
Identify system development phases
Identify risks associated with the system under development
Select and rank test factors
Identify the test phases
Identify the risks associated with each test factor and
its corresponding test phase
Plan the test strategy for every risk identified
TESTING LIFE CYCLE MODEL
Verification and validation (V&V) are the building blocks
of a testing process.
V&V can be best understood when these are modeled in the
testing process. This model is known as the Testing Life
Cycle Model.
Life cycle involves continuous testing of the system during
the development process.
At predetermined points, the results of the development
process are inspected to determine the correctness of
implementation.
These inspections identify defects as early as possible. But,
life cycle testing is dependent upon the completion of
predetermined deliverables at a specified point in the
development life cycle.
V-Testing
VALIDATION ACTIVITIES
Validation has the following three activities which are
also known as the three levels of validation testing.
Unit Testing:
It is a major validation effort performed on the smallest module of
the system. If avoided, many bugs become latent bugs and are
released to the customer.
Unit testing is a basic level of testing which cannot be overlooked,
and confirms the behaviour of a single module according to its
functional specifications.
Integration Testing
When we unit test a module, its interfacing with other modules
remain untested. When one module is combined with another
in an integrated environment, interfacing between units must
be tested.
If some data structures, messages, or other things are common
between some modules, then the standard format of these
interfaces must be checked during integration testing,
otherwise these will not be able to interface with each other
System Testing
This testing level focuses on testing the entire integrated
system. It incorporates many types of testing, as the full
system can have various users in different environments.
The purpose is to test the validity for specific users and
environments. The validity of the whole system is checked
against the requirement specification.
Defect management process