Sofware Testing Documents
Sofware Testing Documents
➔ Testing the software application which is being developed based on the client's
requirements
➔ In other words, Validating the application whether the developed software meets client
requirements
➔ Example: The company develops an eCommerce application like Flipkart and
establishes the testing of whether users can place the order successfully by using that
application. Here, the testing role is confirming the functionality of an application is
working fine
➔ To find whether the application has any programming and logic errors
➔ To confirm whether an application meets the client's expectation
➔ Developed Applications should be competitive in the market
➔ To keep the existing customers
➔ To form new customers
➔ Everything is incomplete without testing
➔ Example: The company develops an eCommerce site without testing and deploying the
application to customer usage. When a customer tries to place an order if it fails then the
business gets lost. Now, you can understand the importance of software testing
Verification Validation
Checks whether the product is built as per the Checks whether the product is fit for use and
specified requirement and design satisfies the business needs after product
specification while developing a product development completes
An example includes Inspections, reviews, An example includes all types of testing like
and walkthroughs of the Business Smoke, Sanity, Regression, System, and UAT
requirement documents, Design documents,
etc.
Verification happens in each phase of the Validation happens in during or end of each
development cycle phase of the development cycle
Checks "Are we building the product right"? Checks "Are we building the right product?
Verification is also known as Static Testing Validation is also known as dynamic testing
Here, the Execution of code does not happen Here, the Execution of code happens
➔ In the Software development life cycle(SDLC), testing can be started in the requirement
phase and continue till the software deployment
➔ It also depends on the SDLC Model that is being used. For example, in the waterfall
model testing starts in the testing Phase. In the Agile model, the test starts for each
sprint by reviewing the BRD, reviewing the design document, and writing the test cases
➔ Testing can start at an early stage so it reduces the cost and time to rework and can be
delivered the product at the right time
➔ Testing performed by developers after the completion of codes is also categorized as
testing.
Requirement
Design
Coding/Development
Testing
Deployment
Maintenance
1
Requirement Phase
Design Phase
➔ In this phase, a senior developer or architect will make a design of software as per logic
based on client requirements by referring to the documents
➔ The design team supports making mockup screens in a wireframe which is a schematic
or blueprint that describes the structure and functionality flow of the software.
➔ This wireframe is shared with the developer which works as input for the developer in the
coding phase and it is also an input for the testing to make test plans and test cases.
➔ There are some tools to create interactive mockups for the designs. For example,
InVision, etc.,
Coding/Development Phase
➔ This is an important phase in the development life cycle where we build software and
write code for the product
➔ Front-end and Backend developers are primarily responsible to develop the software
according to the design and according to the client requirements discussed in the
previous phases
➔ Front-end developers develop attractive GUI and necessary interface to interact with
back-end operations and Back-end developers do back-end coding according to the
required operations
Testing Phase
➔ In this phase after getting deployed in a testing environment with Frontend and Backend
code then the testing team starts to test.
2
➔ Testing determines whether all the functionality is working fine in the software as per
client requirements mentioned in the requirement phase
➔ When there are defects in the application the testing team raises a bug in any tools the
company has like Jira, Bugzilla, etc., or an Excel sheet explaining the scenario or test
case and test steps.
➔ The developer will fix the issues if they reproduce them, then the tester retests the fixed
issues. This process goes on until the build is stable
Deployment
➔ Once testing is done successfully without any issues. If any known issues are there and
if it does not affect the current functionality that issue will be fixed in the next version
➔ The next phase is a deployment where deploy the stable build to production by
deployment engineers
➔ Once an application for using the customer starts to use the application
Maintenance
➔ When customers come across any issues in production like functionality not working as
expected, GUI is not user-friendly, performance issues for example Response from the
server gets delayed when more number of users access the application, security issues,
for example, unauthorized user access the application
➔ If issues are high severity then the development team will fix the issue as a high priority
and redeploy the fixed issue in production. When an issue is a low severity that issue
gets fixed and release in the next version
➔ This Maintenance phase is a prolonged process, which never ends in the software
development life cycle until the software in the usage
➔ During the Maintenance phase, customers may request any other new or additional
features for the application such case that requirement will be added to the Business
document
➔ The Software testing life cycle is a process of software testing that takes place in
different phases to ensure delivering the high-quality product
➔ In each phase, a specific activity takes place to ensure that the quality goals are met in
the testing life cycle
➔ We have Entry and Exit Criteria for each phase in STLC
Entry Criteria: For each phase set of conditions to be satisfied before starts the testing
Examples:
3
➔ Test Plan - This Test plan document should be completed before starting testing.
It’s a document that includes the scope, and approach and points out a software
testing effort
➔ Test Strategy - The testing approach should be finalized before starting testing.
It’s a set of directions that explain the test design and figure it how testing needs
to be done
➔ Test case and Test Data - Test cases with Test data should be ready for
execution
➔ Test Tools - Identifying the testing tools wherever it’s necessary for testing
➔ Test Environment - Identify the Environment where the testers going to execute
the test cases
Exit Criteria: For each phase set of conditions to be satisfied before testing comes to a
conclusion
Examples:
➔ Complete execution of all scenarios and test cases
➔ Meets the sufficient coverage requirements and functionalities
➔ Should not have critical, show stopper and high priority bugs when testing comes to the
conclusion
Requirement Analysis
Test Planning
Test Case Development
Environment Setup
Test Case Execution
Test Cycle closure
Requirement Analysis
➔ In this Phase, testers walk through the requirement documents developed in the
requirement phase of SDLC.
➔ While reviewing the documents, the tester should understand the objective and scope of
the software
Entry Criteria: ● Prepare the list of all ● List all the necessary
● Planning of test plan requirements and questions, tests for testable
requirement specification and get clarified from the requirements and Test
environment details
4
and acceptance criteria Business analyst and the ● Search the Automation
should be available client feasibility(if needed)
● Preparing the Application ● Identify the types of testing to
architecture document be performed
● Identify the Risk
Exit Criteria: ● Identify the Test environment
● The requirement where the testing to be
Traceability matrix performed
should be approved by
the client
● And signed off the test
automation feasibility
Test Planning
➔ In this Phase, the Test Manager or Lead prepares the test plan and test strategy
documents
➔ The Test plan will be having the testing approach for both functional and non-functional
testing.
➔ The Test Plan gets prepared and finalized in the same phase
Entry Criteria: ● Defining the scope of the ● Test Plan and Test
● The requirement software strategy documents
document should be ● Identify the testing approach ● Test estimation
available ● Identify the feature to be documents get ready for
tested and not to be tested deliverables in this phase
Exit Criteria: ● Team formation
● The test plan document ● Test estimation
should get approved by ● Determine which tools
the Project Manager and needed for testing
by the client ● Determine the role and
responsibilities of the team
➔ In this phase, the tester identifies the test scenarios, Test case/Test scripts(for
automation), and Test data based on Requirement documents
➔ The prepared Test cases will be reviewed by Team Member/Team Lead/Business
Analyst and the Client(If Test Case needs approval from the Client)
5
Entry and Exit Criteria Activities Deliverables
Environment Setup
➔ Environment setup needs a group of essential software and hardware to set the
environment for testing
➔ The testing team won’t be involved in the environment setup if the development team
provides the test Environment.
➔ Testing environment configuration mostly as same as the production environment
➔ Confirming the testing environment whether it’s in ready status by executing the smoke
testing
6
● Smoke should be
performed successfully
in the given environment
➔ This is the Key phase of the STLC, Test cases are executed in the corresponding
environment
➔ While execution tester may find defects and can raise it accordingly
➔ The developer fixes the issue and the tester retest the fixed defects to confirm defects
working fine as expected
7
● Opened and Closed Bug Critical Business objectives
reports & Quality
Exit Criteria: ● Prepare the test Metrics
● Test closure report ● Make the documents what
signed off by client and are the things learned from
Test Metrics the project
● Prepare the test closure
report
● Segregate the defects by
Severity and Priority from the
test result
8
Example: Assume an eCommerce domain, below modules are allocated to persons for
execution.
● Person A: Assign login for an existing user, sign up for the new user, and forgot
password test cases
● Person B: Seller and User(Buyer) login-related test cases
● Person C: Product details and placing the order by the user and so on
SDLC Models
Waterfall Model
V Model
Agile Model
Spiral Model
Waterfall Model
➔ Waterfall Model is the base model in SDLC and it’s simple to understand and use it
➔ In this Model, phase execution happens in sequential order(One by One) which means
the outcome of one phase would be the input of the next phase. Therefore, this model is
also known as the Linear sequential life cycle model
9
➔ In this phase, can avoid overlapping issues between the phases since each phase must
be completed before the next phase starts
➔ Each phase deliverables utilizes in the next phase for example requirements documents
used in the design phase, design documents used in the development, etc.
➔ Example: In the Requirement stage outcomes are BRD/SRD/FRD, this outcome moves
to the Design phase as Input, this design outcome moves to the development phase to
develop the software, then this outcome moves to the testing phase to test the software
The waterfall model has various stages which happens in below sequential
Requirement Gathering
System Requirements
Design
Coding
Testing
Release and Maintenance
Requirement Gathering:
➔ In this first phase, the Business team gathers all business needs from the client to
develop the software and make it in the form of requirement documents(For
Example:Business Requirement Documents(BRD))
➔ This documents should contains business needs clearly which means specification of
the input and output of the product
System Requirements:
Design:
➔ In this phase, will create the overall application architecture based on system
requirements document
➔ Also, creates the application module flow as happy and unhappy scenarios by flow chart,
flow diagram etc.
Coding:
➔ Once design is completed, the next developer starts to write the code to develop the
application in a specific programming language if the client requested.
10
➔ Otherwise they use the Industry standard programming language such as Javascript,
Python, Java, C#, C++ and so on
➔ The 2 different development team will be there for the project one is Frontend who
develops the GUI and other one is Backend who develops the API’s based on
requirements
➔ Design team also involves in this phase to present the application attractively
Testing:
➔ Here, testing team starts to execute the test cases on the application based on client
requirements
➔ If they found any defects will raise it to development team
➔ Once issue is fixed, tester do retest the defect to confirm that issue is working fine
➔ Once the Functional and Non-functional testing is done then deploy the application in
production environment after client approval
➔ Once deployed the application successfully in respective environment, if users gets any
unexpected results or facing any problem while using the application then client will
address to project manager or business analyst to fix the issue by development team
➔ If client request any changes in the application that also will be taken care in the
Maintenance phase
➔ In this model, can do the phases one by one to develop the product
➔ Can keep the deadline for each phase to complete their process
➔ This waterfall model is easy to understand and easy to use
➔ This model is suitable for smaller project where the requirements is less
11
For smaller projects
If Project requirements is stable
Technology is understood
There are no Inexplicit requirements
V-Model:
➔ This Model overcomes the drawback of the Waterfall Model and in this model testing
start in requirement stage itself
➔ In this V Model, all development phases can be integrated with testing phase
➔ Verifying the testing documents such as Test Plan, Test case and so on by reviewing and
discussing for feedback
➔ Validating the developed software by testing it based on the client requirements
➔ This model also called as V and V Model which stands for Verification and Validation
Model
➔ Here, process happens in the sequential order which means next phase started once
previous phase completed
V-Model
12
Elaborating about the integration of Development and Testing Phases
➔ In this stage, doing the verification process in user requirements phase and doing the
validation process in Acceptance Testing
➔ Business Analyst gather the requirements from the client and document it
➔ Business Analyst review the documents with client and get the approval from them for
further process
➔ Testers gather Acceptance test cases from requirement document
13
➔ Senior Developer creates architecture and design for the application
➔ It provides overview of solution, platform, system, product and service/process
➔ Normally more than one technical approach is proposed based on the technical and
financial feasibility then final decision will be taken
➔ Developer perform integration testing based on application architecture
➔ In this Module design phase, clear application components are designed. It defines the
actual logic for each and every component of the system
➔ Components can be divided into small units or module and explain to each of them so
programmer starts coding directly
➔ Verify that design is compatible with other modules in the system architecture and other
external system
➔ Developer perform the unit testing based on application modules once development
completed
Advantages of V-Model:
Disadvantages of V-Model:
➔ It’s expensive model than waterfall model, needs a lot of resources, expensive budget
and need more time
➔ Coordination and maintenance are difficult
➔ Adding new requirements and changing in the existing requirements at middle of the
process are difficult
➔ Here, we need to do more documentation work like preparing the test cases and all other
documents
➔ The V model is not suitable for object oriented projects
➔ We cannot go back and replace the functionality when the application in the testing
stage
Agile Model:
14
➔ Initially the Waterfall model was popular in the software industry to develop the software.
➔ The Main difficulties for developer is handling the changes when customer requesting to
change in requirements at the mid of development and probably developers needs a
time to complete those changes
➔ To overcome the drawback of waterfall model, they brought Agile software development
model
➔ The Agile model is primarily designed to complete the change request quickly. Also, by
utilizing this model can complete the project as soon
➔ In the Agile model, the customer requirements are break down into many small parts to
develop the application incrementally so it adopts the iterative development
➔ Agile model is combination of Incremental and Iterative process Model
➔ For each incremental part less number of components or features comes for
development which goes in an iteration wise. So each iteration have less components to
develop and can be completed in a couple of weeks
➔ At the time one iteration get planned, developed and deployed to the customers
➔ For each iteration time will be there to complete the development and deliver to
customer
The following steps are the agile process of SDLC which is used for each iteration to
develop the software in an incremental way. Activities of each phases are same which
we have seen in Waterfall and V-Model
15
Principles of Agile Model:
➔ To establish close contact with customers during the development and to get clear
understanding of the requirements for each agile project there will be customer
representatives on the team.
➔ At the end of each iteration, the Business analyst and customer representative review
the process and re-evaluate the requirements
➔ Frequently delivery of incremental versions of the software to the customer
representative in intervals of few weeks
➔ Whenever customer request the changes in requirements will get it and efficiently
integrated with the application
➔ In this model, communication with project team members happens whenever required
instead the exchange of the documentation
➔ The Agile development process usually deploys Pair programming that means 2
programmer's work together for the project. They split the works and deliver the modules
before or on deadline
16
➢ Scrum
➢ Feature-driven development
➢ Extreme programming(XP)
Scrum:
Extreme Programming(XP):
➔ XP is an agile framework that aims to build higher quality software and higher quality of
life for the development team
➔ XP is built upon values,principles and practices
➔ In XP method, mostly concentrate on customer satisfaction and it requires maximum
customer interaction to develop the software
➔ It divides entire software development cycle into several number of short development
cycles
➔ It accepts customer request and integrated changes or requirements at any phase of the
development life cycle
➔ When XP is applicable in Agile methodology
● Dynamically changing software requirements
● Risk caused due to project deadline using new technology
● Small, co-located extended development team
● The technology you are using permits for automated unit and functional tests
17
Feature Driven Development(FDD):
➔ FDD is an agile iterative and incremental model that focussing on the progress of the
feature of developing the software
➔ The main objective of the FDD is to provide the updated and working software to the
client timely. In FDD,reporting and progress tracking required at all levels
➔ The following are the 5 stages of FDD life cycle
● Build an overall model -> Domain Model than content
● Build a features list -> A list of feature
● Plan by feature -> Assigning the features to developers
● Design by feature -> Adding content to Model
● Build by feature -> Inspection by client
➔ Can adopt the changes in the mid of software development since development in
iteration wise
➔ An error can be reduced in this model since development in incremental model
➔ Able to deliver the one part of developed software to customer at the earliest
➔ A whole project development time also can be reduced
➔ Customer representative keeps in follow up with business analyst to track the
development status
➔ At the end of the project can deliver the software with high quality to customer in this
model
Spiral Model:
➔ Spiral Model is a combination of Iterative Development Model and Waterfall Model
➔ Spiral Model provides a support for handling the Risk in the project
➔ In this model, develop the application module by module and deliver to the customer so
that customer start the application at the early stage
➔ This Model is best used for medium and large projects since continuous enhancement
involvement in the project
➔ In this Model, develop the application in phases because sometimes the client provides
the requirements or changes in between the process.
18
➔ This model is favored for expensive and complicated projects. Its a circular view of
software life cycle
Requirement Gathering
Design
Coding
Testing and Risk Analysis
Requirement Gathering:
➔ Document the all kind of gathered Requirements like system, unit and subsystem needs
from the customer and identify the objectives of the project
➔ It includes estimation of cost,schedule and resource for the spiral
➔ In this stage, easily can understand business requirements since business analyst and
client have stable communication
Design:
➔ In the second stage of the spiral model, where we design the architecture of the
application, logical diagram, flow charts, decision tree etc.
Coding:
➔ In this coding stage, develop the application as per the client requirements and get the
client feedback after providing the demo for developed module
➔ In Each iteration the developed modules are built with different version numbers.
➔ Whatever Modules Developed in each iteration that builds deliver to customer for their
responses
19
➔ The Prototype model helps to handle the risk in the project. But,that risk will be
identified completely before starts the development work
➔ We cannot use the prototype model after development work started.
➔ In each phase of the spiral model, the modules of the product dated and
analyzed that time risk will be identified and resolved by prototype model
➔ It is not suitable for the small and low-risk product since it’s costly for smaller project
➔ Risk analysis is an important phase so it requires expert people for risk assessment
➔ There is no requirement of review process and no parallel deliverables allowed in the
spiral model
➔ In the spiral model, management is a bit difficult, that’s why it is a complex process
➔ The maximum number of intermediate phases needs unnecessary paperwork since
more number of phases in this model estimating the time also is very difficult
20
Types of Software Testing
The software testing mainly divided into two parts which are mentioned below:
❖ Manual Testing
❖ Automation Testing
Manual Testing is done manually by test Automation testing is done with use of
engineer script,code and automation tools by a test
engineer
In Manual testing takes some time to In Automation testing can complete the test
complete the test very fast compared to manual testing
21
For manual testing, programming knowledge For automation testing, programming
is not needed knowledge is needed
In manual testing allows random testing In Automation testing does not allow random
testing
The following three different types of testing categorized in the manual Testing
22
Gray Box testing:
➔ Gray box testing is a software testing method to test the software application with partial
knowledge of the internal working structure
➔ The purpose of gray box testing is to search and identify the defects due to improper
code structure or improper use of application
➔ It gives the ability to test both the presentation layer as well as internal coding structure.
It’s primary used in integration testing and penetration testing
➔ It is the combination of both white box and black box testing
➔ Example: While testing website feature if tester found font related issues or height &
Width alignment etc then tester can make the changes straightaway in HTML Code and
check those alignment issue as real time
Black box testing are classified into two parts, which are explained below
❖ Functional Testing
❖ Non-Functional Testing
Functional Testing:
➔ The tester will check all the components of the application against requirement
specification known as functional testing. Also, it called as Component testing
➔ In functional testing, execute all the components by providing the input value and define
the output value, then validate the actual with expected value
➔ Validating the functionality of application whether it meets business needs
➔ Functional testing is combination of Unit Testing, System Testing and Integration testing
23
Types of functional testing
Functional testing is also classified into various categories which are mentioned below
❖ Unit Testing
❖ Integration Testing
❖ System Testing
❖ User Acceptance Testing
Unit Testing
➔ Unit Testing is also called Initial level Testing
➔ It’s done by the developer
➔ The aim of the unit testing is to isolate the each point of the code and verify its
correctness
➔ Unit Testing is performed by respective developers on the individual modules of source
code assigned to developers
➔ The developers use test data that is different from the test data of the testing team
➔ It mainly focuses on field level and functional level validation
➔ Developer checks all fields are available in the application
Integration Testing
➔ It is used to test the link or integration among the components of the application
➔ To test the interfaces or communication amongst many modules
➔ Integration testing focuses on checking data communication among the all modules
➔ The Integration testing is individual software modules are integrated logically and tested
as a group
➔ Integrated testing can be done in two ways such as Bottom-up integration testing and
Top-down Integration testing
➔ Bottom-up Integration Testing: This testing starts with unit testing, followed by tests of
progressively higher level combination of units called Modules or builds
➔ Top-down Integration Testing : In this testing, the highest level modules are tested first
and progressively, lower level modules are tested thereafter
System Testing
➔ It is to test the software and the hardware requirements of the application
➔ It test the whole functionality of the application
➔ It test the performance of the system which means system response from server after
request hits to the server
24
➔ System testing is the testing of complete and fully integrated software product
➔ The application is tested in an environment that is very close to the production
environment where the application will be deployed. Example: QA Environment/Staging
environment
➔ System testing enable to test,verify and validate the business needs as well as the
application architecture
Alpha Testing
➔ Alpha testing is a type of user acceptance testing which it confirms whether the
application functionally working as per requirements and identify the possible issues or
defects before deliver to the end user or public
➔ This testing is performed by internal employees of Software test engineers
➔ The focus of this testing is to simulate the real users by using black box and white box
techniques
➔ The process of Alpha testing is
◆ Review the business requirement documents
◆ Develops the test plan and test case
◆ Execute the testing as per test case
◆ Raise the defects and assign to the developers
◆ Developer fix the defects and tester retest of the defects
Beta Testing
➔ It is done by the different customers
➔ Beta testing of a product is performed by real users of the application in the real
environment and can be considered as a form of external user acceptance testing
25
➔ Beta version of the software is released to the limited number of end users to obtain the
feedback of product quality
➔ Beta testing reduces the product failure risks and provides increased quality of the
product through customer validation
➔ Direct feedback from customers is major advantages of beta testing
➔ This helps testing the product in real time environment
➔ For Example: They deploy the beta version and they mention the beta word with version
like WhatsApp for Android Beta 2.22.12.6
❖ Performance Testing
❖ Usability Testing
❖ Compatibility Testing
Performance Testing:
➔ In this testing, they capture the performance of application by applying some loads and
will focus on response time, load, throughput and stability of an application
➔ Performance testing contains various types of testing such as
◆ Load Testing: In this testing, we execute the test with some load on the
particular API to validate the application performance. Here, load means request
that could be less than or equal to the requested load by client
Example: Requested load is 100 requests. User hit less than or equal to 100
request and have to find it whether server capacity accepts the 100 requests or it
throwing an error in the response
◆ Stress Testing: In this testing we execute the test with the load beyond the limit
and we observe how the system acts for this load.
Example: Requested load is 20000 requests only. But, here we use more than
20000 Request and will find in which request server throws an error or server
gets crash
◆ Scalability Testing: Here, we inspect the performance of application by
increasing or reducing the load in particular balance is known as scalability
Testing
Example: Here,from time to time Increase the load and decrease the load to find
the performance of the application
26
◆ Stability Testing: In this testing, we estimate the application performance by
applying the load for a specific time to find any defects in the application
Example: Hit the 10,000 request in 1 minute and find how is the server
response for this load
Usability Testing:
➔ In Usability Testing, testers examine how user friendly this application is and identify the
issues related to usability problem
➔ Verify how much this application is workable and easy to understand to the end user for
handling the application
➔ Verify the application appearance having pleasant look and confirm the application
making feel to the end user to use it
Compatibility Testing:
➔ In this testing, testers test the application in different operating systems like
Windows,Linux, Mac to confirm the application is working properly in all OS.
➔ Verify the application behavior in various browsers like Chrome, Firefox, IE, Microsoft
Edge, Safari etc. Will raise the defects if any unexpected behavior in any browsers and
developer will fix it
➔ Verify the application with old version of backend codes
➔ Verify how the responsiveness of application with various mobile devices
➔ Verify the application with various network environments
Smoke Testing
➔ It test the Major functionality of the application
27
➔ Testers focus only the positive scenario of application, not a negative scenario
➔ Main purpose of smoke testing is that delivered build is stable or not for further testing
which is also known as Build verification testing
➔ For smoke testing can filter a test cases from already designed test cases
➔ Smoke testing prefers wherever new builds are deployed in any environment like QA
server, UAT & Production server to confirm no blocker bugs in the new build
➔ Example: In Chat application, additionally they developed video call feature in
application and deployed in QA Server. Initially Tester starts sanity test they do smoke
test to make sure build is stable
Sanity Testing
➔ Sanity Testing performs after deploys the build with new features or fixes defects
➔ Test all new features and dependent feature functionality is working fine
➔ Verify all resolved defects are working fine by fixing this defects that does not affect any
other associated functionality
➔ Once Sanity test is working fine then can starts a regression testing
➔ All the test cases are not covered in Sanity testing
➔ Example: Already your account details options are available in an ecommerce site
which is in production. Additionally they added new features such as Your wishlist,
Payment through UPI and Your Recommendation. Need to test all these features and
dependent functionality of these features also needs to test in the application
Retesting
➔ In Restesting, verify the fixed defects is working fine or not which is raised during the test
execution
➔ Retesting also occurs on specific functionality when client finds a defects on that
functionality
➔ In some cases raised defects can be declined by developer since they have not
reproduce that issue their side such case testers do retest of that bug and make sure
whether that defect is there or not
➔ Sometimes any core features needs to retest to make sure there is no major defects on
that features
➔ Example: In Chat application, testers raised an issue messages are not delivered to all
users when a user sends a message from a group chat. After issue fixed by developer,
the tester do retest to confirm now message are delivered to all users from group
Regression Testing
28
➔ Regression testing means repeating a test already run successfully and compare the
new results with the earlier valid results
➔ Verify whether fixed defects does not any impact on the application that has already ran
successfully
➔ Regression testing is confirming that the product works fine with new functionality, bug
fixes or any change in the existing features
➔ Test cases need to execute again and again whenever deploying the new functionality or
changes in the existing features. To avoid test manually, automation testing prefers for
regression testing for time consuming
➔ Example: In Chat application, once sanity test done for video call feature and bug fixes
for message delivery issues. Then, tester starts the regression testing for whole
application to make sure all functionality are working fine
Database Testing:
➔ Database is a collection of data which contains information of the application those are
stored in tables to retrieve the appropriate data whenever it needs
➔ It tests the data integrity that is connection between the backend and the frontend
➔ It tests whether there is any missing or wrong data in the database that is missing
table,column etc.
➔ It tests whether data is store or not and where it is stored
➔ It tests the performance related data
➔ It used to analyze the schema, tables, triggers etc., of the database under test
➔ While doing the database testing, can make sure the database efficiency, maximum
stability, performance and security
➔ To perform the database testing, must have basic knowledge of SQL
Exploratory Testing
➔ For exploratory testing, have to get the application in all possible ways, understanding
the flow of the application from senior test engineers & developers, making a test
document and checking the application working condition
➔ We use the exploratory testing a) When the requirement is missing b) Early Iteration is
required c) If new testers tested the functionality of the application to cross check the
modules or features of the application, verify the same functionality of the application by
experience testers
➔ Types of Exploratory Testing:
◆ Freestyle: In this testing, testers did not follow any rules, there is no maximum
coverage and will do testing like monkey testing
29
◆ Strategy based: This exploratory testing carry out with the assistance of multiple
testing techniques such as risk-based, boundary value analysis and equivalence
partitioning will be performed by senior test engineers who has good knowledge
about the application
◆ Scenario based: The Test engineers execute this testing with the help of
multiple scenarios such as end to end scenarios, test scenarios and real user
scenarios
Ad Hoc testing
➔ It test the functionality of the application randomly without any procedures
➔ This test execute when limited time is there for testing
➔ Ad Hoc testing is the form of unstructured testing techniques
➔ Normally, end users utilize the application randomly and find the defects, but test
engineers test the application systematically so they may miss some defects. To avoid
such defects testers who knows very well about the project execute the testing randomly
using error guessing techniques
➔ Therefore, this testing also known as Monkey testing or Random Testing
➔ Example:
◆ In browser compatibility testing, we test the application randomly without
following the test cases in all major browsers
◆ If developer disabled or enabled any software development technology in the
code such case test engineers perform the Ad Hoc testing
◆ If client asking the new build with new features added in the application to test
their side before deploying in production such case test engineers execute the
random testing on the application
Security Testing
➔ It test valid and invalid checking and also checks whether the application should not
allow the unauthorized users
➔ The Primary goal of security testing is to find the weakness, risk and threats in the
software application so that can make sure the security of the application
➔ It is a testing procedure, to ensure the customer whatever data’s passing in the
application are safe
➔ When performing the security testing, need to focus on below mentioned areas in the
application
◆ System Software Security
◆ Network Security
◆ Server Side Application Security
30
◆ Client Side Application Security
➔ Types of Security Testing:
◆ Security Scanning
◆ Risk Assessment
◆ Vulnerability Scanning
◆ Penetration Testing
◆ Security Auditing
◆ Ethical Hacking
◆ Posture Assessment
➔ The security testing recommends to perform parallely in each stage of the software
development life cycle
GUI Testing
➔ In this testing, usually use to evaluate the graphical user interface designs of elements or
features in the software application
◆ Text boxes
◆ Font size
◆ Font color
◆ Buttons
◆ Menus
◆ Links
◆ Layout
31
◆ Labels
◆ Text Formatting
◆ Lists
◆ Captions
◆ Icons
◆ Content
➔ The Primary goal of the GUI Testing is to validate the features of the software application
performs as per the given requirement/specifications
➔ As per GUI Testing, can decide whether a user will use the application more or not
➔ Users may not use the application again if user not satisfy with interface or unable to
identify the difficulties in order to understand it that’s why GUI Testing is the most
important in software testing
➔ The GUI Testing execution allows us to test the feature of the application from the user
perspective
➔ Sometimes the internal performance of the system works fine, but user interface doesn’t
work that’s why GUI Testing is very good approach in order to test other types of
application as well
➔ Example:
◆ In GUI Testing, checks the appearance of each module of the application are
good, even in different resolutions
◆ It Checks whether the interface is attractive or pleasant or not and whether the
image has good clarity
◆ Verify all kinds of Headings are aligned correctly or not
◆ Verify the spellings,width, height of the elements, elements positions,font colors,
font size, alignment of the images, size of the images, Color of the error
messages, warning messages
◆ Verify Scroll bar is presents or not whenever content is more than the page size
◆ This testing also make sure that user may not get disappoint while using the
system interface
32
All these Testing techniques can see in detail
33
➔ The equivalent partitions are derived from requirements and specification of the
software.
➔ The advantage of this technique, it helps to reduce the time of testing since it reduces
the number of test cases from infinite to finite.
◆ Example: Assume same password field and same character restrictions it
accepts between 8 to 16 characters
Invalid Test Valid Test case Valid Test Case Valid Test Case Invalid Test
case Case
In this example, we used both equivalence partitioning and boundary value analysis
techniques to reduce the number of test case from infinite to 5 Test cases
Error Guessing
➔ Error Guessing is a technique in which there is no specific procedure to identify the error
in the application
➔ In this techniques, every test engineer will take the values or inputs based on their
understanding of the requirements and they do not follow any kind of rules to perform
this technique
➔ It’s based on product knowledge and testing experience of the person who can guess
the problematic areas of the software which helps to save a lot of time.
➔ The implementation of this technique is depend on experience of tester or analyst having
prior experience in the same domain or similar domain
➔ The primary objective of this technique to identify common errors at any level of testing
➔ For example:
◆ Coding or logical error
◆ Syntax error
◆ Server Related error
◆ Database related error
◆ Browser related error
◆ UI Related error
◆ Connectivity related error
◆ Configuration related error
34
Decision Table testing technique
➔ This is a systematic approach where the various input combination and their respective
system output shows in tabular form
➔ This Testing techniques can also be called as Cause-effects table where Cause is Input
value and Effect is output values are represents for better test coverage
➔ It used to pick the test cases in structured manner, it reduces a testing time and provides
good coverage to the testing area of the application
➔ Decision table is used to verify all probable combinations of conditions for testing and
test engineers are also able to find the missing conditions easily.
➔ This technique is important because it helps to test different combinations of conditions
and gives better test coverage for complex business logic.The conditions are Valid and
Invalid values.
➔ Normally, the number of probable combinations are calculated by 2 ^ n, where n is the
number of inputs. Therefore, when input(n) values are more such case we can goes for
any other technique like boundary value analysis or equivalent partitioning techniques
➔ Example: Assume that you need to write a test cases for profile picture uploading
functionality for chat application like whatsapp and below are the test conditions:
◆ Maximum file size is 2MB and
◆ File Type : JPEG(JPG), PNG & GIF
Therefore, our application accepts the image file only if both conditions are satisfied else
it throws an error message
The below one is decision table which captures the probable input conditions and their
respective outputs
Conditions Case Case Case Case Case Case Case Case Case Case Case Case
1 2 3 4 5 6 7 8 9 10 11 12
Input JPG PNG GIF JPG PNG GIF JPG PNG GIF Any Any Any
Format other other other
file file file
format format format
Input Size Size< Size< Size< Size= Size= Size= Size> Size> Size> Size< Size > Size =
2MB 2MB 2MB 2MB 2MB 2MB 2MB 2MB 2MB 2MB 2MB 2MB
Output Valid Valid Valid Valid Valid Valid Invalid Invalid Invalid Invalid Invalid Invalid
35
➔ This technique represents when changes made in input conditions it cause the state of
output changes for the application
➔ This state transition techniques helps for testing to study the behavior of an application
for different input conditions
➔ Test engineers can give valid and invalid input test data and record the system behavior
➔ This technique can be used when a tester is having finite set of input values to test the
application
➔ When application have to test in sequential order like ATM Machine after insert the card
it ask the language, based on that input it ask another input like it goes until customer
final expectation
➔ When the system behavior is not in sequential order such case state transition technique
is not suitable for that modules or an application
➔ Below things should be understand before using state transition techniques for testing
the application
◆ State: It says the status of the element before and after input values or action.
For example, Button in Off status before action and Button in On Status after
action
◆ Transition: Here, the transition process happens when the status changes from
one status to another. For Example, When button changes from Off to On such
time one process happens which is called transition
◆ Events: To happen transition like changing the button from Off to On such action
is called Event
◆ Action: It says the result of transition may be success or failure. Example, When
changing the button from Off to On it shows success message for success else it
shows error message for failure
➔ Example: Assume a video file opens in any media player. Based on this example, you
can understand about the 4 components of state transition technique
◆ State - When video is playing which is play status and when it pause which is
pause status
◆ Transition - The Transition process gets when playing the video from pause
status
◆ Event - Pausing and Playing the video
◆ Action - When playing or pausing the video it get interrupt due to internet
connection or it keeps loading due to poor network
36
Use Case Testing Technique
➔ Use case is a brief description of action done by an actor or user on the System and the
responses of the software application(System) to those user actions
➔ It is extensively used in developing test cases at system or user acceptance level. Here,
Test cases looks like interactions between user and system
➔ This software testing technique assist to find test cases which covers the complete
system on a transaction by transaction basis from beginning to end of the system
➔ The use case gives us all probable techniques like what are possible ways users can
utilize the application
➔ This testing assist to fill the gaps if any in the system, that might not found when testing
the individual testing modules
➔ For every action on the application done by Actor and get reaction from the system for
that action which is called as Transaction
➔ For Example: Let’s assume +2 result pages published by the government.
◆ In a use case, user called as an Actor which represents by A and gets response
for corresponding action from System that represents by S
◆ Here, we can write a use case for a result functionality in a web application
37
Scenario Step# Description
38
➔ Below are the some benefits when making the test plan
◆ It is useful to development team, Business Analyst, Business development and
even for customers can understand the details of testing
◆ Testers can refer the Test plan to find which needs to be followed
◆ Management Team can find the features like Test strategy,scope of
application,test estimation, resources for testing by referring the Test Plan and
that can be use for other projects
➔ A test plan has the following Steps:
◆ Study about the Product
◆ Decide the Test Strategy going to use
◆ Mention the Test Objectives
◆ Define the Test Criteria(Entry and Exit Criteria)
◆ Resource Details for testing( Both Human and System Resource)
◆ Plan Test Environment
◆ Schedule and Estimation for testing activities
◆ Test Deliverable it contains Documents before testing,Test Data while testing,
Reports after testing
Test Scenario:
➔ Creating the test scenarios confirms test coverage covers completely
➔ Test scenario presents in one line statement of particular area for the application under
test
◆ For example: Scenario is, Checking the Login functionality
➔ From the Test scenario prepare the test cases for that functionality
◆ For example: Based on login functionality scenarios can write many test cases.
Here can see some sample test cases for this scenario a) Verify with valid user id
and password b) Verify with Invalid user Id and password c) Verify the forgot
password is working fine etc.
➔ To write a Test scenarios, first need to study the requirements thoroughly from Business
requirements document or any other document it vary from project or company wise and
understand it
➔ Tester needs to think as user perspective and have to focus to cover all real time
scenarios and use cases of the application
➔ Test scenarios are helps to ensure all process flows are tested from end to end of the
application
➔ Using Traceability matrix confirm all requirements has test scenarios or not
➔ Business Analyst/Test Lead/Test Manager and Client reviews the Test Scenarios and
approved it if no correction in the scenarios else it back to the team with their feedback
39
➔ Here, stated some scenarios from chat module for Whatsapp application
◆ Test Scenario 1: Check user able to Install the whatsapp from google and
register it
◆ Test Scenario 2: Verify user can be able to search the particular Name to send
the message
◆ Test Scenario 3: Verify user can be able to send the messages, images and
videos from gallery or camera
◆ Test Scenario 4: Verify user able to add participants in the group chat
◆ Test Scenarios 5: Verify user added participants in that group receives message
sent by sender
◆ Test Scenarios 6: Verify user able to set display picture(DP) from camera or
gallery in profile
➔ Like this we can write some more scenarios for chat module based on these scenarios
can write several test cases
Test Case:
➔ Test cases derives from Test Scenario of particular feature or functionality of the software
application
➔ Using Test cases perform the actions to validate the particular features of the application
➔ Test case should have all positive and negative test cases for respective scenarios
➔ Test Case contains Test case description, test steps, test data, Expected result, Actual
result and Pass/Fail status
➔ Same Test Cases can be used for Regression testing
➔ Tester starts to write a test cases when customer gives his requirement to Business
team and while programmer starts the developing application
➔ Once test cases are done it forward to the Business team they will review it then it goes
to the client for their review. If there is any feedback from the client, the tester will correct
it and send it to the client. It goes until client approve
➔ Test case execution starts once developer completes the development of application and
deployed in respective environment
➔ Before test execution the test case prepares so actual result and status details are
blanks only.
➔ After test executed based on the output, the actual result and status updated in
respective columns which is called Test Report
➔ Test case templates vary from project or company wise. But some basic columns are
always presents in Test case templates
◆ Test Case ID
40
◆ Requirement#
◆ Module
◆ Test case description
◆ Test case steps
◆ Test data
◆ Expected Result
◆ Actual Result
◆ Pass/Fail status
Let’s see whatsapp as a simple example for Test Cases
Test
TC Scenari Test Case Expected Actual Stat
No Module o Description Test Steps Results Results us
1. Open the
whatsapp and make
sure app in chat
screen
2. Click the new
message button
3. Search the
Contact:Contact X to
whom need to send
message and select
Verify user it
able to send 4. Type the User should
message by message: Testing the able to send
Verify using new message messages
user able message 5. Click the send to selected
1 to send a button button person
message
1. Open the
Chat s,images
whatsapp and make
and
sure app in chat
videos
screen
in single
2. Select the person
chat
Verify user from the recent chat
able to send Contact X
message by 4. Type the User should
selecting the message: Testing the able to send
person from message messages
recent chat 5. Click the send to selected
2 screen button Person
41
1. Open the
whatsapp and make
sure app in chat
screen
2. Search the
Contact: Contact X
to whom need to
send image and
select it
4. Select the
attachment option
and select the gallery
Verify user 5. Select the images User should
able to send or photos to send able to send
images from 6. Click the send images from
3 gallery button gallery
1.Open the whatsapp
Verify that the 2.Click on Settings User should
user can view 3.Click the profile able to view
the profile and view the profile the profile
4 picture photo picture
1.Open the whatsapp User should
2.Click on Settings able to set
3.Click on profile and the profile
Verify that the Camera icon picture
user able to 4. Select the camera using
Verify set the photo option to set the camera
5 that the from camera profile picture option
user can User should
set 1.Open the whatsapp able to
Setting
Display 2.Click on Settings upload the
Picture(D Verify that the 3.Click on profile and profile
P) or user can Camera icon picture
not. upload the 4. Select the gallery using
photo from option to set the gallery
6 Gallery profile picture option
1.Open the whatsapp
2.Click on Settings
3. Click on profile
and Camera icon User should
Verify that the 4. Select either able to
user can gallery or camera remove the
remove the option profile
7 photo 5. Then, select picture
42
Delete icon to
remove the picture
1.Open the whatsapp
2.Click on Settings
3.Click the profile User should
Verify Verify that the and change the able to set
that the user can set about content by the about
8 user can status or not. clicking edit button content
set
status or 1.Open the whatsapp
not. Verify that the 2.click on Settings User should
user can 3.click the profile and able to
update status set the about by update the
9 or not. clicking edit button about
➔ Test data is an input data given to software application wherever needed in test
execution
➔ Enter valid test data as input to get the expected result for positive testing
◆ Example: Enter Valid username and password and expected result is system
should navigate to respective page
➔ Enter invalid test data as input to get the unexpected result for negative testing
◆ Example: Enter Invalid username and password and expected result is system
should throw the validation error message
➔ While preparing the test case, wherever possible enter the input value for the test cases
that saves execution time as well saves time for updating the test data in test case while
execution
➔ Let’s see whenever uses test data as input in the application
◆ For Negative testing, verify the system response whether it throws error message
when input field is empty, test data as invalid format, Invalid Input values, test
data not in the limitation etc.,
◆ For positive testing pass the valid input and verify the system response whether
user gets success message or it navigates to respective page
◆ When tester using the testing techniques like boundary value analysis,
Equivalence partition,Decision table,State transition then that fields needs input
data to check the functionality of the application
43
➔ Requirement traceability matrix is use to trace that all requirements are covered in
development and testing for the software application
➔ Requirement traceability matrix creates with the help of Business requirements
document(BRD) or Functional requirements document(FRD)
➔ RTM will be in the table format that contains the requirements with all possible test
scenarios and test cases and their current state which means it has pass,fail,Not
executed status
➔ The main aim of requirement traceability matrix is to validate that all requirements are
verified through test cases so we cannot miss any requirements for the project
➔ It is prepared by the test lead or test manager
➔ It contains the percentage of pass, fail, Not executed etc in numbers and in charts
➔ The Main aim of this matrix are
◆ Ensure the software is developed as per mentioned in the requirement
documents
◆ Using Matrix can get how many fail cases are there and how much testing are
completed
◆ It helps to concentrate on failed cases to fix it and Not executed/Pending test
cases to complete it before deadline
◆ It use to trace the developed documents during the different phases of SDLC
➔ Types of traceability matrix is
◆ Forward traceability maps from requirement to test cases that means all
requirement applied to the product and all requirement is tested fully
◆ Backward traceability maps from test cases to requirements
◆ Bi-direction tracing ensures all the requirements are covered by test cases
RTM template
44
Total 100 1000
Requirement=100
Defect Tracking
What is Bug/Defect in software testing
Bug life cycle
Severity and Priority
Test Environment
Test Report and Bug Report
45
● Click the forgot password link in login page
● It should navigate to page which contains requesting the mail id
● After enter the required details new password should come in the mail id
◆ Issue is mail received without a new password. Therefore, issue is without new
password user not able to login if user forgot the password which is a defect in
the application
➔ In the current market so many tools are present for defect management like
Jira,Bugzilla,Mantis etc.
Severity Bug:
46
➔ It measures how that bug affect the functionality of the software application
➔ Based on severity of the bug the testing process can be stopped such kind of bug need
to fix as soon as possible
➔ Severity are categorized into below
◆ Low - This is the very least severity in the bug. The Impact of this issue is very
low. Maybe this issue can occur in rare scenarios.
◆ Minor - This severity comes prior to Low severity. It won’t affect the functionality
of the application but it should be fixed.
◆ Major - This kind of severity bug should be fixed before release of the application
or version. It won’t stop further testing and can proceed the testing process.
◆ Critical - The main functionality of the application is not working such that the
case tester cannot continue the testing process. This kind of severity is also
known show stopper bug
Priority Bug:
➔ Identify the priority of the bug and initiate the action accordingly
➔ The high priority bugs to be fixed immediately
➔ Below are the priority bug categorized
◆ Low(P3) - This is the very least priority bug can do fix after high and medium
priority fixes may be can do these fixes after release also if this bug not affect the
functionality of the application.
◆ Medium(P2) - This priority bug it affects the application can fix before releasing
the application or version.
◆ High(P1) - This High priority bug needs to give first attention to fix the issue due
to this kind of bug testing process may be on hold.
47
◆ Example: In whatsapp inside to setting module in chat tab, if not able to see the
app information when clicks it such bug falls in low severity since it impacts is not
affect the functionality so it comes under low Priority(P3)
➔ High Severity and Low Priority: Some bug severity would be high but it comes under
low priority since it impacts is very high but users uses that scenario in rare case so it
comes under low priority that can be fixed before the current or next release
◆ Example: In Status, if Emoji is not able to select since those are not listing there
such issue impacts the functionality of application but it not comes under P1
since emoji won’t use by all users in status therefore that issue can be fixed
before the current or next release
➔ Low Severity and High Priority: Most of the design issues impacts is very less but
appearance of the application is not good so such kind of bug needs to give high priority
◆ Example: After adding the profile image in DP it overlap with Group name or
Individual person name in Chats or status or calls tab it impacts not affect in
functionality but app appearance is not good therefore needs to fix it as High
Priority(P1)
Test Environment:
➔ The test environment is use to test the software application after development to find the
errors in the application
➔ Once the requirement details gets from client, the development team starts to develop
the application in development environment
➔ After development completes the code moves to the QA environment for testing
➔ Most of the companies have 4 servers for projects.
◆ Development Server: When projects get from the client, first will get the
requirement details in a Business requirements document. Devops team creates
development server for developing the application, there programmer writes the
code and debug the code while developing the application
◆ QA Server: This environment setup with normal configuration which is used to
test the application after developing, that code moves into this QA server.
Whatever bugs are raised to the developer once they fix that issue, those codes
move to this environment to retest the issue.
◆ Staging Server: This environment configuration is similar to production server so
once testing completes in QA server the same code moves to staging server.
One round of testing will be done in this server to confirm application is stable
before codes push into the production server
48
◆ Production Server: This environment is used by the end user once code is
pushed into production from the staging server. Sanity or Smoke test will be done
by test engineers to confirm the application is stable
Test Report:
➔ In Test report, can see the actual result, status of the test case and Bug details wherever
test case is failed
➔ Test Report is a summarize from test case execution which contains test results and Bug
priority details
➔ Test report is useful to product managers, Business team and developers whether
software can be released or not
➔ Test report is needs to make sure the application are stable which is acceptable level of
quality
➔ Test report represents the current status of the project and it helps to measure the quality
of the end product
➔ Mostly Test Report contains below informations in the summary sheet
◆ Project Name
◆ Types of testing
◆ Application Feature/Modules
◆ Execution status(Includes Pass,Fail,Inprogress,Pending,Blocked,Not applicable)
◆ Defects details with priority level like High, Medium & Low
➔ This is the test report template. May be vary based on Companies or Projects
49
➔ Above template is for web applications. If your project has mobile platforms then extend
the same format for those platforms
➔ Initially Project Name and Type of testing comes in the top of the table
➔ Features represents the module or component of the application
➔ Pass is number of test cases passed for particular feature
➔ Similarly number of test cases failed,pending and blocked for particular features
➔ In the end of the table, identify the total number of TC’s for pass,fail,pending & blocked
for all features and the total number of test cases presents for all features in this release
or application
➔ Then, Efforts Estimation in hours and days represents the estimation of this release in
hours and days for these features
➔ Version number of the release for the project, Pass, Fail,Pending, Blocked and Executed
percentage can be seen in the next table. Can keep any colors for status to identify it
➔ This is the simple calculation to get the percentage of Pass, Fail, Pending & Blocked
status that are calculated by total number of particular status of test case(Eg: Pass-375)
divided by total number of test cases of all status(Eg: 498) multiple by 100(Eg:
375/498*100=75%)
➔ Executed status percentage can be calculated by adding the percentage of Pass and
Fail test cases(Eg: 75+11=86%) it shows overall executed status
➔ In the last table, you can see the number of failed test cases based on priority like High,
Medium and Low. That total number of failed test cases should be matched with number
of test cases mentioned in the failed status in the feature table
Bug Report:
➔ Bug Report is a detail documents about defects addressed to the developer to fix while
testing the application
➔ The bug reports must contains the scenario or test case steps or root cause of the issue
so it’s easy to fix the defects faster by developer
➔ This saves the software release date from delay and can make the product on time with
good quality
➔ When reporting the bug to developer the below information contains in the bug report
◆ Bug_id: Unique identification number for bug addressed to developer
◆ Bug description: It describe the details of the bug including in which module bug
was found
◆ Test Steps to reproduce the bug: Here, elaborating the steps how can able to
get that bug
◆ Affected and Fix Version: In which version, the bug was identified and which
version going to fix it
50
◆ Reported Date: When the bug was addressed to developer
◆ Components: In which platforms, the bug is being identified either Web
application or Android or iOS
◆ Reported By : The name of the tester who raised the bug
◆ Resolved By: The name of the developer who resolved this bug
◆ Status : The latest status of the bug whether it has been closed or reopened
◆ Closed Date: When that bug is closed by tester
◆ Priority: Mentioning the priority of the bug whether it has been High/Medium/Low
based on the severity of the bug that means how that bugs impacts of the
application
◆ References: Any proof of the bug like screenshots of the issue, requirement
documents to make sure features of the application should be like this.
51