0% found this document useful (0 votes)
43 views

Introduction To Software Testing

The document discusses software testing and provides details on: 1. The objectives of software testing which include finding errors, ensuring desired outcomes, and satisfying requirements. 2. The different levels of software testing from unit testing of individual code modules to integration, system, and validation testing of combined parts and the full application. 3. The various testing strategies like formal testing, static and dynamic testing, manual and automated testing, and integration techniques like top-down, bottom-up, and sandwich testing.

Uploaded by

zeeshan arif
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)
43 views

Introduction To Software Testing

The document discusses software testing and provides details on: 1. The objectives of software testing which include finding errors, ensuring desired outcomes, and satisfying requirements. 2. The different levels of software testing from unit testing of individual code modules to integration, system, and validation testing of combined parts and the full application. 3. The various testing strategies like formal testing, static and dynamic testing, manual and automated testing, and integration techniques like top-down, bottom-up, and sandwich testing.

Uploaded by

zeeshan arif
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/ 26

Software Quality Assurance

Course Code ITEC-4122


Software Testing Introduction-I

By,
Ikhlaq
Agenda
Understanding softwaretesting and its objectives.
Discuss the differences between the various Software
testing strategies, their advantages and disadvantages.
Levels of Software testing.
Test
What is Software testing
Testing is the process of exercising a program with the
specific intent of finding errors prior to delivery to the
end user and to ensure that the software systems would
work as expected when they are used by their target
customers and users
Software testing provides a mechanism to demonstrate
their operation through controlled execution according
to approved test procedures on approved test cases.
Objectives of software testing
That it is giving the desired outcomes and satisfying all the
requirements and business needs.
To reveal as many errors as possible, so they are recorded, analyzed
and debugged.
 Software testing is all about comparing actual and the desired
behavior of the product.
To perform the required tests strategically, efficiently and
effectively within budgetary and scheduling limitations.
To compile a record of software errors for using in error preventive
actions.
To bring the tested software product to an acceptable level of
quality in context of (Zero defect)(User satisfaction)(Excellence)
What Testing Shows

errors

requirements conformance

performance

an indication
of quality

6
Why testing
Some of the reasons why software testing becomes a
very significant and integral part in achieving product
quality.
Cost-effectiveness
Excellence(Performance in terms of efficiency and
effectiveness)
Customer Satisfaction
Minimizing defects
Conformance to the specifications.
Testing Approaches
Formal Testing: Performed by test engineers.
Informal Testing: Performed by the developers.
Static testing: Static techniques are concerned with accuracy assessment
on the basis of characteristics of the static model design and source code
e.g. software inspections.
Dynamic testing: Dynamic techniques require model execution and are
intended for evaluating system’s operational behavior e.g. software testing.
Manual Testing: That part of software testing that requires human
input, analysis, or evaluation.
Automated Testing: Software testing that utilizes a variety of tools
to automate the testing process. Automated testing still requires a
skilled quality assurance professional with knowledge of the
automation tools and the software being tested to set up the test cases.
Who Tests the Software
Developer Specialized tester team
Major Activities in Software Testing
There are three main activities in software testing and
these are described below with brief explanation:
Test strategy
A test strategy is an formal outline that describes
the testing approach of the software development cycle
to meet those objectives from a quality assurance
perspective.
To perform effective testing, you should conduct
effective technical reviews. By doing this, many errors
will be eliminated before testing commences
Different testing techniques are appropriate for
different software engineering approaches and at
different points in time, also depending of scale and
type of software product.
Cont…
Testing begins at the component level and works
"outward" toward the integration of the entire computer-
based system. Likewise we begin by ‘testing-in-the-small’
and move toward ‘testing-in-the-large’
For conventional software
 The units and module are our initial focus
 Integration of modules follows
For OO software
 our focus when “testing in the small” changes from an individual
module (the conventional view) to an OO class that encompasses
attributes and operations and implies communication and collaboration
Levels of testing

Unit testing
Integration testing
 Top-down integration
 Bottom-up integration
 Sandwich testing and integration

Validation testing
System testing (end-to end)
Cont…
Unit testing
This type of testing is performed by the developers
before the setup is handed over to the testing team to
formally execute the test cases. Unit testing is
performed by the respective developers on the
individual units of source code assigned areas. The
developers use test data that is separate from the test
data of the quality assurance team.
The goal of unit testing is to isolate each part of the
program and show that individual parts are correct in
terms of requirements and functionality.
Unit Testing

module
to be
tested

results

software
engineer
test cases

16
Unit Testing

module
to be
tested
interface
local data structures

boundary conditions
independent paths
error handling paths

test cases
17
Unit Test Environment

driver
interface
local data structures

Module boundary conditions


independent paths
error handling paths

stub stub

test cases

RESULTS
18
Integration Testing
The testing of combined parts of an application to determine if they
function correctly together is Integration testing.
There are three methods of doing Integration.
 Bottom-up integration: Testing begins with unit testing, followed by
tests of progressively higher-level combinations of units called
modules or builds.
 Top-Down integration: The highest-level modules are tested first and
progressively lower-level modules are tested after that. In a
comprehensive software development environment, bottom-up testing
is usually done first, followed by top-down testing.
 Sandwich integration: Sandwich testing is a type of testing that
consist of two parts, they are Top-down approach and Bottom-up
approach. It combines the advantages of both Bottom-up testing and
Top-down testing.
Integration Testing Strategies
Options:
• the “big bang” approach (all at once)
• an incremental construction strategy

20
Top Down Integration

A
top module is tested with
stubs

B F G

stubs are replaced one at


a time, "depth first"
C
as new modules are integrated,
some subset of tests is re-run
D E

21
Bottom-Up Integration

B F G

drivers are replaced one at a


time, "depth first"
C

worker modules are grouped into


builds and integrated
D E
cluster

22
Sandwich Testing

A
Top modules are
tested with stubs

B F G

Worker modules are grouped into


builds and integrated
D E

cluster
23
System Testing

This is the next level in the testing and tests the system as a whole. Once all the
components are integrated, the application as a whole is tested rigorously to see that it
meets Quality Standards. This type of testing is performed by a specialized testing team.
 System Testing is the first step in the Software Development Life Cycle, where the
application is tested as a whole.
 The application is tested thoroughly to verify that it meets the functional and technical
specifications.
 The application is tested in an environment which is very close to the production
environment where the application will be deployed.
 System Testing enables us to test, verify and validate both the business requirements
as well as the applications architecture.
Significance of system testing:
 Minimize the gaps in testing when an application with changes made has to be tested.
 Testing the new changes to verify that the change made did not affect any other area of the
application.
 Mitigates Risks when regression testing is performed on the application.
 Test coverage is increased without compromising timelines.
 Increase speed to market the product.
Cont….
Thank you

You might also like