Software Testing: Course Code: SWE2005
Software Testing: Course Code: SWE2005
Handled By
R . Swetha
Assistant Professor(Contract), SCORE
VIT University
Course Objectives
What is Testing ?
Testing is the process of executing a
program with the intension of finding
errors.
SDLC-Waterfall Model
SDLC
• SDLC is a process followed for software building within a
software organization.
• SDLC consists of a precise plan that describes how to develop,
maintain, replace, and enhance specific software.
• The life cycle defines a method for improving the quality of
software and the all-around development process.
• SDLC specifies the task(s) to be performed at various stages by
a software engineer or developer.
• It ensures that the end product is able to meet the customer’s
expectations and fits within the overall budget.
Introduction to Software Testing
The evolution of software testing was also discussed in three phases, namely
Software Testing 1.0, Software Testing 2.0, and Software Testing 3.0
Truth: This myth also exists at various levels of the development team.
Almost every person who has not experienced the process of designing
and executing the test cases manually feels that complete testing is
possible.
Complete testing at the surface level assumes that if we are giving all the
inputs to the software, then it must be tested for all of them.
But in reality, it is not possible to provide all the possible inputs to test
the software, as the input domain of even a small program is too large to
test.
Moreover, there are many things which cannot be tested completely, as
it may take years to do so.
SOFTWARE TESTING— MYTHS AND FACTS
Truth: Today, all the testing activities are driven by quality goals.
Ultimately, the goal of testing is also to ensure quality of the
software.
But quality does not imply checking only the functionalities of all
the modules.
There are various things related to quality of the software, for
which test cases must be executed.
SOFTWARE TESTING— MYTHS AND FACTS
• Immediate Goals
• Long-term Goals
• Post-Implementation Goals
GOALS OF SOFTWARE TESTING
GOALS OF SOFTWARE TEST
Customer satisfaction:
Risk management:
For example, testing may indicate that the software being developed
cannot be delivered on time, or there is a probability that high priority
bugs will not be resolved by the specified time
GOALS OF SOFTWARE TEST
Bug Model:
Bug model provides a perception of the kind of bugs
expected.
Considering the nature of all types of bugs, a bug model can
be prepared that may help in deciding a testing strategy.
However, every type of bug cannot be predicted. Therefore, if
we get incorrect results, the bug model needs to be modified.
MODEL FOR SOFTWARE TESTING
Testing methodology and Testing:
Based on the inputs from the software model and the bug model,
testers can develop a testing methodology that incorporates both
testing strategy and testing tactics.
Testing strategy is the roadmap that gives us well-defined steps for the
overall testing process
It prepares the planned steps based on the risk factors and the testing
phase.
Once the planned steps of the testing process are prepared, software
testing techniques and testing tools can be applied within these steps.
However, if we don’t get the required results, the testing plans must be
checked and modified accordingly.
SCHOOLS OF SOFTWARE TESTING
Software testing has also been classified into some views according to some
practitioners. They call these views or ideas as schools of testing.
This school is based on the concept that testing should be performed according to
the context of the environment and project.
Testing solutions cannot be the same for every context. For example, if there is a
high-cost real-time defense project, then its testing plans must be different as
compared to any daily-life low-cost project.
Thus, context-driven testing can be defined as the testing driven by environment,
type of project, and the intended use of software.
The implications of this school are:
1. Expect changes. Adapt testing plans based on test results.
2. Effectiveness of test strategies can only be determined with field research.
3. Testing research requires empirical and psychological study.
4. Focus on skill over practice
SCHOOLS OF SOFTWARE TESTING
. Agile School of Testing
This type of school is based on testing the software which is being
developed by iterative method of development and delivery.
In this type of process model, the software is delivered in a short
span of time; and based on the feedback, more features and
capabilities are added.
The focus is on satisfying the customer by delivering a working
software quickly with minimum features and then improvising on it
based on the feedback.
The customer is closely related to the design and development of
the software.
Since the delivery timelines are short and new versions are built
by modifying the previous one, chances of introducing bugs are
high during the changes done to one version.
SOFTWARE TESTING LIFE CYCLE (STLC)
• The testing process divided into a well-defined sequence of
steps is termed as software testing life cycle (STLC).
• The major contribution of STLC is to involve the testers at
early stages of development.
SOFTWARE TESTING LIFE CYCLE (STLC)
• 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
Broadly, following are the activities during test planning:
• 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 testcases.
• Identifying reporting procedures, bug classification, databases for testing,
bug severity levels, and project metrics.
SOFTWARE TESTING LIFE CYCLE (STLC)
• Test Design :
• The test design is an important phase after test planning..
It includes the following critical activities :
• (i) Determining the test objectives and their prioritization.
• (ii) Preparing list of items to be tested.
• (iii) Mapping items to test cases. After making a list of items to be
tested, there is a need to identify the test cases. A matrix can be
created for this purpose, identifying which test case will be covered by
which item.
This matrix will help in:
(a) Identifying the major test scenarios.
(b) Identifying and reducing the redundant test cases.
(c) Identifying the absence of a test case
SOFTWARE TESTING LIFE CYCLE (STLC)
• Test Design :
• (iv) Selection of test case design techniques : While designing test cases, there
are two broad categories, namely black-box testing and white-box testing.
Black box test case design techniques generate test cases without knowing the
internal working of a system.
• (v) Creating test cases and test data : The test cases mention the objective
under which a test case is being designed, the inputs required, and the
expected outputs.
• (vii) Setting up the test environment and supporting tools: details like
hardware configurations, testers, interfaces, operating systems, and manuals
must be specified during this phase.
• (viii)Creating test procedure specification :This is a description of how the test
case will be run. It is in the form of sequenced steps. This procedure is actually
used by the tester at the time of execution of test cases.
SOFTWARE TESTING LIFE CYCLE (STLC)
• Test Execution :
• In this phase, all test cases are executed including verification and validation.
• Verification test cases are started at the end of each phase of SDLC.
• Validation test cases are started after the completion of a module.
• It is the decision of the test team to opt for automation or manual execution.
• Test results are documented in the test incident reports, test logs, testing stat us, and test
summary reports
SOFTWARE TESTING LIFE CYCLE (STLC)
• Responsibilities at various levels for execution of the test
cases are outlined :
SOFTWARE TESTING LIFE CYCLE (STLC)
• (a) Reliability analysis- whether the software meets the predefined reliability goals or
not
• (b) Coverage analysis- can be used as an alternative criterion to stop testing
• (c) Overall defect analysis can identify risk areas and help focus our efforts on quality
improvement.
SOFTWARE TESTING METHODOLOGY
SOFTWARE TESTING METHODOLOGY
• SOFTWARE TESTING STRATEGY
• Testing strategy is the planning of the whole testing process into a well-
planned series of steps.
• Strategy provides a roadmap that includes very specific activities that
must be performed by the test team in order to achieve a specific goal.
• 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.