Day 2 –
Learn Software
Testing
Day 2 – SDLC, STLC and Test Levels
SDLC
Different Phases of SDLC
STLC
Different Testing Levels
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
Phases of SDLC
• Requirement Specification and Analysis
• Design
• Coding
• Testing
• Implementation
• Maintenance
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
Design
The output of SRS is the input of design phase.
Two types of design -
High Level Design (HLD)
Low Level Design (LLD)
Coding, Testing and Implementation
Coding
Developers use the LLD document and write the code
in the programming language specified.
Testing
The testing process involves development of a test
plan, executing the plan and documenting the test
results.
Implementation
Installation of the product in its operational
environment.
Maintenance
After the software is released and the client starts using the software,
maintenance phase is started.
3 things happen - Bug fixing, Upgrade, Enhancement
Bug fixing – bugs arrived due to some untested scenarios.
Upgrade – Upgrading the application to the newer versions of the
software.
Enhancement - Adding some new features into the existing software.
Software Testing Lifecycle Phases
Requirements study
Test Case Design and Development
Test Execution
Test Closure
Test Process Analysis
Requirement Study
Testing Cycle starts with the study of client’s
requirements.
Understanding of the requirements is very essential for
testing the product.
Analysis and Planning
Test objective and coverage
Overall schedule
Standards and Methodologies
Resources required, including necessary training
Roles and responsibilities of the team members
Tools used
Test Case Design
Test Case Design and Development
• Component Identification
• Test Specification Design
• Test Specification Review
Test Execution
• Code Review
• Test execution and evaluation
• Performance and simulation
Test Closure and Analysis
Test Closure
• Test summary report
• Project De-brief
• Project Documentation
Test Process Analysis
Analysis done on the reports and improving the application’s
performance by implementing new technology and additional
features.
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
Unit Testing
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
Incremental Integration Testing
Continuous testing of an application as and when a new
functionality is added.
Application’s functionality aspects are required to be
independent enough to work separately before completion of
development.
Done by programmers or testers.
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
Top Down Integration testing
Bottom Up Integration testing
Integration Testing
Objectives To technically verify proper interfacing
between modules, and within sub-systems
When After modules are unit tested
Input Internal & External Application Design
Master Test Plan
Integration Test Plan
Output Integration Test report
Integration Testing
Who Developers
Methods White and Black Box
techniques
Problem / Configuration
Management
Tools Debug
Re-structure
Code Analyzers
Education Testing Methodology
Effective use of tools
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
System Configuration
Who Development Team and Users
Methods Problem / Configuration Management
Tools Recommended set of tools
Education Testing Methodology
Effective use of tools
Systems Integration Testing
Objectives To test the co-existence of products and applications that are
required to perform together in the production-like operational
environment (hardware, software, network)
To ensure that the system functions together with all the
components of its environment as a total system
To ensure that the system releases can be deployed in the
current environment
When After system testing
Often performed outside of project life-cycle
Input Test Strategy
Master Test Plan
Systems Integration Test Plan
Output Systems Integration Test report
Systems Integration Testing
Who System Testers
Methods White and Black Box techniques
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
Acceptance Testing
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