0% found this document useful (0 votes)
4 views30 pages

Software Testing

The document provides a comprehensive overview of software testing, detailing its importance, various types, and techniques such as white box and black box testing. It explains the processes of verification and validation, unit testing, integration testing, and system testing, as well as acceptance testing types like alpha and beta testing. The goal of software testing is to ensure software quality by identifying and eliminating bugs, verifying compliance with requirements, and enhancing performance.

Uploaded by

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

Software Testing

The document provides a comprehensive overview of software testing, detailing its importance, various types, and techniques such as white box and black box testing. It explains the processes of verification and validation, unit testing, integration testing, and system testing, as well as acceptance testing types like alpha and beta testing. The goal of software testing is to ensure software quality by identifying and eliminating bugs, verifying compliance with requirements, and enhancing performance.

Uploaded by

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

Software

Testing

Presented by: Suraj Samantaray


Contents :

1. What is software testing ?


2. Importance of software testing
3. Verification and Validation
4. White box Testing
5. Black box Testing
6. Unit Testing
7. Integration Testing
8. Object Oriented Testing
9. System Testing
What is software testing ?

● It is a process of checking that a software program does what it


is supposed to do.
● Software testing is mainly done to identify and eliminate bugs
or errors, minimize development expenses, and enhance the
performance of the product which makes it one of the essential
steps of the software development lifecycle.
Importance of Software Testing

● It ensures that the to-be-published software is built following the proposed


SRS document.
● It helps to check how efficient the software is, and how much optimization
is needed to get the desired results.
● It is also capable of detecting security voids present in the code of the
proposed software.
● It ensures the reliability and high performance of the delivered software.
Verification and Validation

● Verification testing is a process which is used to ensure that product or


system meets its specified requirements.
● Validation testing involves various testing techniques and tools designed to
simulate real-world scenarios.
● Verification does not requires execution of the software, whereas verification
requires execution of software.
● While verification is concerned with phase containment of errors, the aim of
validation is to check whether the deliverable software is error free.
● Error detection techniques = Verification Testing + Validation Testing
White Box Testing / Glass Box Testing

● White box testing is a method of testing that tests internal structures or


workings of an application.
● It can be applied at the unit , integration testing.
● Guarantees all the independent paths within a module have been exercised
at least once.
● Exercises all logical decisions on their true or false sides
● Executes all loops at their boundaries
● Exercises all the internal data structures to ensure their validity
White Box Testing Techniques

● Statement Coverage
● Branch Coverage
● Condition Coverage
● Multiple Condition Coverage
● Flow Graph Notation
● Cyclomatic Complexity
Statement Coverage
Branch Coverage
Condition Coverage

● All individual conditions must be covered.


Multiple Condition Coverage

All the possible combinations of the possible outcomes of the conditions are tested
at least once
Flow Graph Notation
Cyclomatic Complexity : V(G)

● It is used to define number of independent paths.


● V(G) = E - N + 2 ,where E is the number of edges and N is the number of
nodes.
● V(G) = P + 1 , where P is the number of predicated nodes.
● V(G) = Number of non-overlapping regions.
Black Box Testing

● It is also called as behavioural testing.


● It focuses on the functional requirements of the
software.
● In this method, tester selects a function and gives
input value to examine its functionality, and checks
whether the function is giving expected output or not.
Black Box Testing Techniques:

● Syntax Driven Testing


● Equivalence Partitioning
● Boundary value Analysis
● Cause Effect Graphing
● Requirement Based Testing
● Compatibility Testing
Syntax Driven Testing

● It involves testing the System inputs and it is usually


automated.
● Format of input data
● File format
● Database Schema
Equivalence Partitioning

1. Identification of Equivalence class : Valid or


Invalid value
2. Generating Test Cases : Valid or Invalid input
Boundary Value Analysis

● Boundary Value Analysis is based on testing the boundary


values of valid and invalid partitions
● It checks for the input values near the boundary that have a
higher chance of error.
● Every partition has its maximum and minimum values and
these maximum and minimum values are the boundary values
of a partition.
Cause Effect Graphing

● This techniques establishes relationship between logical inputs called as


cause with corresponding output called as effect.
● Steps
● Identify inputs and outputs
● Develop cause effect graph
● Transforms the graph into decision table
● Convert decision table rules to test cases
Requirement Based Testing

● It includes validating the requirements given in the SRS


Compatibility Testing

● This test case results not only depend on the product but
also infrastructure for delivering functionality.
● When the infrastructure parameters are changed it is still
working properly.
● Some parameters that generally affect compatibility of
software like Architecture and characteristics of machine
(32 or 64 bit) , OS , Database servers
Unit Testing

● Unit testing involves the testing of each unit or an


individual component of the software application.
● The purpose of unit testing is to test the correctness of
isolated code.
● A unit component is an individual function or code of the
application. White box testing approach used for unit
testing and usually done by the developers.
Integration Testing

● Integration testing is the second level of the software


testing process comes after unit testing.
● In this testing, units or individual components of the
software are tested in a group.
● The focus of the integration testing level is to expose
defects at the time of interaction between integrated
components or units.
● Integration testing techniques are Big-bang approach,Top-
down approach,Bottom-up approach,Mixed approach
Object oriented Testing

● It is a collection of testing techniques to verify and validate object-oriented


software.
● The whole object oriented testing revolves around the fundamental entity called
“class”.
● With the help of “class” concept, larger system can be divided into small well
defined units which may then be implemented separately.
System Testing

● It is a level of software testing where a complete, integrated system is


tested.
● The purpose of this test is to evaluate system’s compliance with the
specified requirements.
● It is carried out to check the behavior of the application, software
design and expectation of the end user.
Acceptance Testing

● It is a test conducted to find if the requirements of a


specification or contract are met as per its delivery.
● It is basically done by the user or customer. However, other
stockholders can be involved in this process.
Types of Acceptance Testing

1. Alpha Testing : done by the developer


2. Beta Testing : done by End user
Thank
You

You might also like