2. WHAT IS TESTING
Software testing is a process of executing a program or
application with the intent of finding the software bugs.
Purpose of Testing-
Two fundamental purposes of testing
First, testing is about verifying that what was specified is
what was delivered.
Second, testing is about managing risk of working
condition in warranty and maintenance phase of the
project.
3. STLC-SOFTWARE TESTING LIFE CYCLE
Below are the phases of STLC:
Requirements /Design Review
Test Planning
Test Designing
Test Environment Setup
Test Execution
Test Reporting
4. STLC Stage Entry Criteria Activity Exit Criteria Deliverables
Requirement Analysis Requirements Document available
(both functional and non functional)
Analyse business functionality to
know the business modules and
module specific functionalities.
Signed off RTM RTM
Acceptance criteria defined. Identify all transactions in the
modules.
Test automation
feasibility report signed
off by the client
Automation
feasibility report (if
applicable)
Application architectural document
available.
Identify all the user profiles.
Gather user interface/authentication,
geographic spread requirements.
Identify types of tests to be
performed.
Gather details about testing priorities
and focus.
Prepare Requirement Traceability
Matrix (RTM).
Identify test environment details
where testing is supposed to be
carried out.
Automation feasibility analysis (if
required).
Test Planning Requirements Documents Analyze various testing approaches
available
Approved test
plan/strategy
document.
Test plan/strategy
document.
Requirement Traceability matrix. Finalize on the best suited approach Effort estimation
document signed off.
Effort estimation
document.
Test automation feasibility
document.
Preparation of test plan/strategy
document for various types of testing
Test tool selection
Test effort estimation
Resource planning and determining
roles and responsibilities.
Test Designing Requirements Documents Create test cases, automation scripts
(where applicable)
Reviewed and signed
test Cases/scripts
Test cases/scripts
RTM and test plan Review and baseline test cases and
scripts
Reviewed and signed
test data
Test data
Automation analysis report Create test data
5. Test Environment setup System Design and architecture
documents are available
Understand the required architecture,
environment set-up
Environment setup is
working as per the plan
and checklist
Environment ready
with test data set up
Environment set-up plan is available Prepare hardware and software
requirement list
Test data setup is
complete
Smoke Test Results.
Finalize connectivity requirements Smoke test is successful
Prepare environment setup checklist
Setup test Environment and test data
Perform smoke test on the build
Accept/reject the build depending on
smoke test result
Test Execution / Test
Reporting
Baselined RTM, Test Plan , Test
case/scripts are available
Execute tests as per plan All tests planned are
executed
Completed RTM with
execution status
Test environment is ready Document test results, and log
defects for failed cases
Defects logged and
tracked to closure
Test cases updated
with results
Test data set up is done Update test plans/test cases, if
necessary
Defect reports
Unit/Integration test report for the
build to be tested is available
Map defects to test cases in RTM
Retest the defect fixes
Regression testing of application
Track the defects to closure
Test Cycle closure Testing has been completed Evaluate cycle completion criteria
based on - Time, Test coverage , Cost ,
Software Quality , Critical Business
Objectives
Test results are available Prepare test metrics based on the
above parameters.
Defect logs are available Document the learning out of the
project
Prepare Test closure report
Qualitative and quantitative reporting
of quality of the work product to the
customer.
Test result analysis to find out the
defect distribution by type and
severity
7. TEST METHODOLOGIES
Test Methodology is the testing technique that is followed
1.Functional Testing
Unit Tests
Integration Tests
System Tests
Acceptance Tests
2. Non Functional Testing
Performance Testing
Security Testing
Usability Testing
Compatibility testing
8. Functional Testing - Functionality testing is performed to verify that a software
application performs and functions correctly according to design
specifications
Unit Testing : Unit Testing is testing of individual software modules or
components that make up an application or system
Integration Testing : Testing of the different modules/components that have
been successfully unit tested when integrated together to perform specific
tasks and activities.
System Testing : Testing the entire system for errors and bugs where the
software is checked for user-expected working conditions.
Acceptance Testing : Testing methodology is the final phase of functional
software testing and involves making sure that all the product/project
requirements have been met and that the end-users and customers have
tested the system to make sure it operates as expected and meets all their
defined requirements
9. TEST METHODS
White Box Testing : Also known as clear-box testing, structural testing, or code-based
testing. It is testing the internal perspective of the system.
Black Box Testing : The examining functionality without any knowledge of internal
implementation.
Grey Box Testing : Combination of White box test method and Black box test
method.
10.
11. TESTING TYPES
Installation testing : Installation test assures that the system is installed
correctly and working at actual customer's hardware as designed
Compatibility Testing : Test that is performed to check if the developed
product is working on the intended platform or software.
Smoke Test: Smoke testing checks if the developed product is good to under
go further tests.
Regression Test: Regression testing focuses on finding defects after a major
code change has occurred
12. Installation testing : Installation test assures that the system is installed
correctly and working at actual customer's hardware as designed
Destructive testing: Checking if software is functioning properly even when it
receives invalid or unexpected inputs, thereby establishing input validation
and error-management routines.
13. TESTING APPROACHES
Boundary value analysis
Equivalence partitioning
Boundary value analysis : This approach deals with input values at the
extreme ends of input domain cause more errors in system. In most of the
application errors occur at the boundaries of input domain.
Equivalence partitioning : This method is typically used to reduce the total
number of test cases to a finite set of testable test cases, still covering
maximum requirements. In short it is the process of taking all possible test
cases and placing them into classes. One test value is picked from each
class while testing.
14. TEST CASE WRITING
The basic objective of writing test cases is to validate the test coverage of the
application and use to implement while execution.
WHAT IS A TEST CASE?
“A test case has components that describes an input, action or event and
an expected response, to determine if a feature of an application is
working correctly.”
TESTCASES CONTAINS
Project
Test case id
Test case name
Unit to test/Module
Description
Step Names
Steps Description
Expected result
Actual result
Comments
15. IMPORTANCE OF FUNCTIONAL TESTING
Functional testing is important to confirm the overall quality of software.
When performing functional testing, testers can analyze individual pieces of
software separately within the context of the entire software.
By testing a particular item inside the software, testers can recognize
integration points between that particular item and other parts of the
software.
Coming up with flawless software is the end goal for any developer and tester,
it is essential to ensure that every business requirement gets fulfilled in the
software product