0% found this document useful (0 votes)
2 views25 pages

Software Testing

Uploaded by

Ali Raza
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)
2 views25 pages

Software Testing

Uploaded by

Ali Raza
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

Software Testing

• Software testing is defined as the execution of a program to find its


faults. While more time typically is spent on testing than in any other
phase of software development, there is considerable confusion
about its purpose.
• Many software professionals, for example, believe that tests are run
to show that the program works rather than to learn about its faults
How to define Software Testing Principles
• Testing
The execution of a program to find its faults
• Verification
The process of proving the programs correctness.
• Validation
The process of finding errors by executing the program in a real environment
• Debugging
Diagnosing the error and correct it
Testing Principles: To remove as many defects as possible before test since the
quality improvement potential of testing is limited
Testing Levels

• Unit testing
• Integration testing
• System testing
• Acceptance testing
Unit testing
• The most ‘micro’ scale of testing.
• Tests done on particular functions or code modules.
• Requires knowledge of the internal program design and code.
• Done by Programmers (not by testers).
Unit testing
Objectives  To test the function of a program or unit of
code such as a program or module
 To test internal logic
 To verify internal design
 To test path & conditions coverage
 To test exception conditions & error
handling
When  After modules are coded
Input  Internal Application Design
 Master Test Plan
 Unit Test Plan
Output  Unit Test Report
Who Developer

Methods White Box testing techniques


Test Coverage techniques

Tools Debug
Re-structure
Code Analyzers
Path/statement coverage tools
Education Testing Methodology
Effective use of tools
Integration Testing

• Testing of combined parts of an application to


determine their functional correctness.

• ‘Parts’ can be
• code modules
• individual applications
• client/server applications on a network.
Types of Integration Testing
Big Bang testing: Big Bang Integration Testing is an integration
testing strategy wherein all units are linked at once, resulting in a
complete system. When this type of testing strategy is adopted, it is
difficult to isolate any errors found, because attention is not paid to
verifying the interfaces across individual units.
Top Down Integration testing: testing form the top of the
module hierarchy and work down to the bottom. Modules
are added in descending hierarchical order.
Bottom Up Integration testing:
testing from the bottom of the hierarchy and works up to the
top. Modules are added in ascending hierarchical order.
System Testing & Acceptance Testing
• the process in which a quality • Acceptance Testing: Acceptance
assurance (QA) team evaluates testing is a quality assurance (QA)
how the various components of process that determines to what
an application interact together in degree an application meets end
the full, integrated system or users' approval
application.
System Testing
Objectives  To verify that the system components perform
control functions
 To perform inter-system test
 To demonstrate that the system performs both
functionally and operationally as specified
 To perform appropriate types of tests relating
to Transaction Flow, Installation, Reliability,
Regression etc.
When  After Integration Testing

Input  Detailed Requirements & External Application


Design
 Master Test Plan
 System Test Plan
Output  System Test Report
Who Development Team and Users

Methods Problem
/ Configuration
Management

Tools Recommended set of tools

Education Testing Methodology


Effective use of tools
Acceptance Testing

Objectives  To verify that the system meets


the user requirements
When  After System Testing
Input  Business Needs & Detailed
Requirements
 Master Test Plan
 User Acceptance Test Plan
Output  User Acceptance Test report
Who Users / End Users

Methods Black Box techniques


Problem / Configuration
Management

Tools Compare, keystroke capture & playback,


regression testing

Education Testing Methodology


Effective use of tools
Product knowledge
Business Release Strategy
Testing methodologies

Black box testing

White box testing

Incremental testing

Thread testing
• Black box testing
• No knowledge of internal design or code
required.
• Tests are based on requirements and
functionality
• White box testing
• Knowledge of the internal program design and code
required.
• Tests are based on coverage of code
statements,branches,paths,conditions.
BLACK BOX - TESTING TECHNIQUE

• Incorrect or missing functions


• Interface errors
• Errors in data structures or external database access
• Performance errors
• Initialization and termination errors
Black box / Functional testing

• Based on requirements and functionality

• Not based on any knowledge of internal


design or code

• Covers all combined parts of a system

• Tests are data driven


White box testing / Structural testing

• Based on knowledge of internal logic of an


application's code

• Based on coverage of code statements,


branches, paths, conditions

• Tests are logic driven


White Box - testing technique
• All independent paths within a module have been
exercised at least once

• Exercise all logical decisions on their true and false


sides

• Execute all loops at their boundaries and within their


operational bounds

• Exercise internal data structures to ensure their


validity
Functional testing
• Black box type testing geared to functional requirements of
an application.
• Done by testers.
System testing
• Black box type testing that is based on overall requirements
specifications; covering all combined parts of the system.
End-to-end testing
• Similar to system testing; involves testing of a complete
application environment in a situation that mimics real-world
use.
Sanity testing

• Initial effort to determine if a new software


version is performing well enough to accept
it for a major testing effort.

Regression testing

• Re-testing after fixes or modifications of the


software or its environment.
Major Testing Types

 Stress / Load Testing


 Performance Testing
 Recovery Testing
 Conversion Testing
 Usability Testing
 Configuration Testing
Stress / Load Test: Evaluates a system or component at
or beyond the limits of its specified requirements.
• Determines the load under which it fails and
how.
Performance Test: Evaluate the compliance of a
system or component with specified
performance requirements.
• Often performed using an automated test
tool to simulate large number of users.
Recovery Test: Confirms that the system recovers
from expected or unexpected events without loss of
data or functionality.
Eg. Shortage of disk space, Unexpected loss of communication,
Power out conditions
Conversion Test: Testing of code that is used to convert data from
existing systems for use in the newly replaced systems
Usability Test: Testing the system for the users to learn and use the
product.
Configuration Test

• Examines an application's requirements for pre-


existing software, initial states and configuration
in order to maintain proper functionality.

You might also like