[go: up one dir, main page]

0% found this document useful (0 votes)
119 views37 pages

Unit 2:chapter 2: Software Testing Strategies

The document provides an overview of software testing strategies including unit testing, integration testing, system testing, and validation testing. It discusses the purpose and process of each strategy. Unit testing focuses on testing individual modules, integration testing tests interface between units, system testing verifies functionality from an end-to-end perspective, and validation testing ensures requirements conformance. The document also covers topics like defect management, metrics, and the life cycle of testing metrics.

Uploaded by

Rohit Koli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
119 views37 pages

Unit 2:chapter 2: Software Testing Strategies

The document provides an overview of software testing strategies including unit testing, integration testing, system testing, and validation testing. It discusses the purpose and process of each strategy. Unit testing focuses on testing individual modules, integration testing tests interface between units, system testing verifies functionality from an end-to-end perspective, and validation testing ensures requirements conformance. The document also covers topics like defect management, metrics, and the life cycle of testing metrics.

Uploaded by

Rohit Koli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Unit 2 :Chapter 2

Software Testing
Strategies
Syllabus
► Software Testing Strategies: Strategic Approach
to Software Testing ,Unit Testing , Integration
Testing , Validation Testing ,System Testing.
► Software Metrics : Concept and Developing
Metrics , Different Types of Metrics , Complexity
metrics.
► Defect Management : Definition of Defects ,
Defect management Process, Defect Reporting ,
Metrics Related to Defects , Using Defects for
Process Improvement
Software Testing Strategies
Software Testing
► Testing is the process of exercising a program with the
specific intent if finding errors prior to delivery to the end
user.
► Errors prior to delivery to the end user.
► Errors
► Requirements conformance
► Performance
► An indication of quality
Software Testing Strategies
► Unit Test
► Integration Test
► System Test
► Validation Test
• Unit testing is a software development process in which
the smallest testable parts of an application, called units,
are individually and independently scrutinized for proper
operation.

• This testing methodology is done during the development


process by the software developers and sometimes QA
staff. 

• Unit testing, a testing technique using which individual


modules are tested to determine if there are any issues
by the developer himself.

• It is concerned with functional correctness of the


standalone modules.

• The main aim is to isolate each unit of the system to


identify, analyze and fix the defects.
Unit Testing - Advantages:

•Reduces Defects in the Newly developed features or reduces bugs when


changing the existing functionality.

•Reduces Cost of Testing as defects are captured in very early phase.

•Improves design and allows better refactoring of code.

•Unit Tests, when integrated with build gives the quality of the build as
well.
A unit is smallest testable piece of
software :
•Can be compiled, linked, loaded
•E.g functions/procedures, classes,
interfaces
•Normally done by programmer
•Test cases written after coding
Integration testing is the process of testing the interface
between two software units or module.

It’s focus on determining the correctness of the interface.

The purpose of the integration testing is to expose faults in


the interaction between integrated units.

Once all the modules have been unit tested, integration


testing is performed.

The purpose of integration testing is to verify the functional,


performance, and reliability between the modules that are
integrated.
Big Bang Integration Testing:
In this approach, almost all of the units or major
units are combined together to perform integration
testing in one attempt. Usually, this method is
practiced when teams have entire software in their
bundle.
 
Incremental Testing:
In this testing approach, a minimum of two modules
that are logically related are tested. Then, the
related modules are summed up to perform testing
and achieve proper functioning. This process is
continued until the modules are addressed and
tested.
 
Top-down Integration Testing:
In this testing approach, the teams test the top-level units first and then
perform step-by-step testing of lower-level units.
 
Bottom-up Integration Testing:
In this testing approach, the testing starts from the lower units of the
application and then it gradually moves up, i.e. the testing is practiced
from the bottom of the control parts.
 
Hybrid/Sandwich Integration Testing:
This approach is also known as hybrid integration as it is a combination
based on bottom-up and top-down approaches. This approach overcomes
many other limitations and helps to achieve the benefits of both the
approaches with its three layers:
– The main target layer,
– The layer below the target layer, and
– The layer above the target layer.
System Testing means testing the system as a whole.

All the modules/components are integrated in order to verify if the system works as
expected or not.

System Testing is done after Integration Testing. This plays an important role in
delivering a high-quality product.

In System testing, the functionalities of the system are tested from an end-to-end
perspective.

In system testing, integration testing passed components are taken as input.

The goal of integration testing is to detect any irregularity between the units that are
integrated together.

System testing detects defects within both the integrated units and the whole system.

The result of system testing is the observed behavior of a component or a system when it
is tested.
System Testing Process:
System Testing is performed in the following steps:

•Test Environment Setup:


Create testing environment for the better quality testing.

•Create Test Case:


Generate test case for the testing process.

•Create Test Data:


Generate the data that is to be tested.

•Execute Test Case:


After the generation of the test case and the test data, test
cases are executed.
•Defect Reporting:
Defects in the system are detected.

•Regression Testing:
It is carried out to test the side effects of the testing
process.

•Log Defects:
Defects are fixed in this step.

•Retest:
If the test is not successful then again test is performed.
Acceptance Testing:

It is a formal testing according to user needs,


requirements and business processes conducted to
determine whether a system satisfies the
acceptance criteria or not and to enable the users,
customers or other authorized entities to determine
whether to accept the system or not.
Use of Acceptance Testing:

•To find the defects missed during the functional testing


phase.

•How well the product is developed.

•A product is what actually the customers need.

•Feedbacks help in improving the product performance and


user experience.

•Minimize or eliminate the issues arising from the production.


Validation Testing
► Ensure that each functions or performance characteristic
conforms to its specification .
► Deficiencies must be negotiated with the customers to
establish a means for resolving the error .
► All elements of the software configuration have been
properly developed , catalogued , and documented to
allow its support during its maintenance phase
Metrics
Software Metrics
► Metrics is measure for quantitatively assessing ,
controlling or selecting a person ,process event ,
or institution, along with the procedures to carry
out measurements and the procedures for the
interpretations of the assessment in the light of
previous or comparable assessments .
Types Of Metrics
► The three types of metrics you should collect as part of your quality assurance
process are :

► Source code metrics :make up all your


software .
► Development metrics :software
development process itself.
► Testing metrics :1) Test coverage 2)testing
Itself. It help you evaluate how functional
your product is.
Complexity Metrics
► Metrics are quantitative measures :cost , failure rate ,
change ,effort , size ,complexity.
► Most operational metrics are known too late :cost ,
failure rate are only known after deployment .
► Complexity metrics are available immediately :It is
calculated from the source code.
► Complexity predicts operational metrics :defects ,
maintenance cost.
► Complexity metric Evaluation : Descriptive ,
predictive ,prescriptive
► Benefits of complexity measurement
Life-cycle of software testing metrics
Analysis: It is responsible for the identification of metrics as well as the
definition.

Communicate: It helps in explaining the need and significance of metrics to


stakeholders and testing team. It educates the testing team about the data
points that need to be captured for processing the metric.

Evaluation: It helps in capturing the needed data. It also verifies the validity of
the captured data and calculates the metric value.

Reports: It develops the report with an effective conclusion. It distributes the


reports to the stakeholders, developers and the testing teams.
Defect
► It is a condition in a software product which does not meet a software
requirement or end user expectation.
► Defect severity and priority
► High medium low
Detect Management Process
► Defect is an unexpected behaviour of the software.All
software has some defects.
► The cost of finding and correcting defect is very
expensive activity of the software development
process.
► Defect Prevention

► Deliverable Baseline

► Defect Discovery
1. Find a defect
2. Report Defect
3. Acknowledge defect

► Defect Resolution

► Process Improvement
Defect Reporting
Defect life cycle
1. New
2. Open
3. Fixed
4. Retest
5. Open
6. Closed
Defect Report
► Defect report communicates the issue to the
development team.
► When a defect is first reported it need not always be
valid defect,it can be a misunderstanding of
requirement by the tester or a change request which
is not documented.
► A good defect report should :
1. Include all steps to reproduce the issue
2. Well written in detail
3. Enable the development team to take decision on
which defect and when to fix
following fields are included in the defect report
template:
1. Summary
2. Description
3. Product Name
4. Release Version
5. steps to Replicated
6. Actual Result
7. Expected Results
8. Attachment
9. Defect Severity
10. Defect priority
11. Reported By
Software Testing Metrics
Types of Defect Metrics
► Base Metrics: The base metrics constitute of the raw data gathered by the test
engineers through the testing effort
It is used to provide project status and evaluations/feedback
► Calculated Metrics : Calculated metrics convert base metric data into more useful
information.
► 1) Percentage of test executed (test coverage)
► = (no of test executed/total no of written) *100
► 2) Percentage of test not executed
► =(no of test not executed/total no of test written ) *100
► 3) Percentage of test pass
► =(No of test pass/total no of test written)*100
► 4) Percentage of test Failed
► =(no of test failed executed/ total no of test written)*100
► 5) Test blocked
► (No of test blocked/total no of test)*100
► 6)defect density(DD) : It defines the number of defect found in a module of
software
► =No of defect/size of the module (number of line of code)
► Ex:20/1000 =0.02
► 7)Defect Removal Efficiency(DRE)
► =(No of defects resolved/total no of defects found)*100
► 8)Defect leakage(DL)
► Total no of defects found by user/total no of defect found by the QA team)*100
► 9)Defect rejection Ratio(DRR)
► =no of invalid defects/no of total defects
Using Defect for Process Management

► When the testing team executes the test cases, they come across a situation
where the actual test result is different from the expected result.
► This variation is termed as Defect.
► Defect must be identified as early as possible in the life cycle of a project so
that the cost of fixing the bug reduces. Without a doubt, the best approach
to defect is to eliminate them altogether.

You might also like