Manual Testing
What is Software Testing?
● Software testing is the process of evaluating and verifying that a software product or
application is working as per the given requirements and also to ensure that software
product is defect free.
● It involves execution of software using manual or automated tools.
Why Software Testing is Required
➢ It makes the software more reliable and easy to use.
➢ The testing is important since it discovers defects/bugs before the delivery to the client,
which guarantees the quality of the software.
➢ Increase the overall quality of the system
➢ Thoroughly tested software ensures reliable and high-performance software operation.
➢ Saves Money as defect identified in earlier stages
➢ To build customer confidence and business
➢ Software Testers Are Made for Challenging Work Environments
What is Manual Testing?
● Manual Testing is a practice of testing an application manually to find defects
and bugs. Test cases are executed manually, by humans, without support
from or scripts
SDLC(Software Development Life Cycle)
6 Phases of the Software Development Life Cycle
SDLC (Software Development Life Cycle)
● Requirement Analysis: In this phase, all the requirements are collected from the
customer/client. They are provided in a document called Businessmen requirement
specification (BRS) and System requirement specification (SRS).All the details are discussed with
the customer/client in detail.
● Design: In this phase, BA team comes up with wireframes and Dev team prepares the
solution design document.
● Development: In this phase, dev team implements/develops the code for the
feature/functionalities of the system/software.
● Testing: Testing is carried out to verify the entire system. The aim of the tester is to find out
the gaps and defects within the system and also to check whether the system is running
according to the requirement of the customer/client
● Deployment: After successful testing, the product is delivered/deployed to the client, and
even clients are trained on how to use the product.
● Maintenance: Once the product has been delivered to the client a task of maintenance
starts as when the client will come up with an error the issue should be fixed from time to time.
STLC(Software Testing Life Cycle)
6 Phases in Software Testing Life Cycle
STLC(Software Testing Life Cycle)
● Requirement Analysis: In this phase, all the requirements are thoroughly reviewed and
understood.
● Test Planning: Test Team plans the strategy and approach.
● Test Case Development: In this phase, the testing team develops the test cases for all the
requirements.
● Environment setup: It decides the software and hardware conditions under which a work
product is tested. It is one of the critical aspects of the testing process and can be done in
parallel with the Test Case Development Phase. Test team may not be involved in this activity if
the development team provides the test environment.
● Test Execution: This phase is carried out by the testers in which testing of the software build
is done based on test plans and test cases prepared. The process consists of test script execution,
test script maintenance and bug reporting. If bugs are reported, then it is reverted to
development team for correction and retesting will be performed.
● Test Cycle Closure: This phase is completion of test execution which involves several
activities like test completion reporting, collection of test completion matrices and test results.
Development Methodologies
WaterFall Model: The Waterfall Model was the first Process Model to be
introduced. It is also referred to as a linear-sequential life cycle model. In a waterfall
model, each phase must be completed before the next phase can begin and there is
no overlapping in the phases.
Advantages
● Simple and easy to understand and use
● Phases are processed and completed one at a time.
Disadvantages
● No working software is produced until late during the life cycle.
● High amounts of risk and uncertainty.
Development Methodologies
V-model: The V-Model is an extension of the waterfall model and is based on the
association of a testing phase for each corresponding development stage. This means that for
every single phase in the development cycle, there is a directly associated testing phase. This is
a highly-disciplined model and the next phase starts only after completion of the previous
phase.
Advantages
● This is a highly-disciplined model and Phases are completed one at a time.
● Works well for smaller projects where requirements are very well understood.
Disadvantages
● High risk and uncertainty.
● Poor model for long and ongoing projects.
Development Methodologies
Agile: It is one of the software development methodologies which is based on the iterative development,
where requirements and solutions evolve through collaboration between self-organizing cross functional
teams.
In Agile methodology Scrum and Kanban two types of frameworks are available.
What is Scrum ?
∙ In scrum framework, the phases of project is break down into smaller pieces that can be completed by a
cross – functional team within a prescribed time period called as Sprint.
∙ Each sprint starts with sprint plan meeting, requirements come in the form of user stories
∙ Sprint will have time framework for 2 – 4 weeks
∙ Daily scrum calls are conducted by Scrum master to assess the progress of the sprint
∙ Using Scrum board the progress of the sprint is monitored (To Do, Build, Test, Done)
Development Methodologies
What is Kanban
·Kanban focuses on monitoring a continuous task flow and continuous delivery.
·The team is never given more work that it can handle
·This is accomplished through the two primary principles of Kanban Visualize your work,
Limiting work-in-progress
What is White Box Testing, Black Box Testing, And Gray Box Testing
White Box testing: White box testing done by the developers it is also called as
unit testing and component testing
To perform white box testing, The tester should know the internal structure of the
application and how it works.
Black Box Testing: Black box testing is done by functionality testers which is also
called as functional testing, Here we are mainly concentrate on functional -business
flow and positive and negative flow.
Gray Box testing: The person who do the both development and testing is known
as gray box testing
Testing Types
Smoke testing – This test is done to make sure the given build is testable or not or the given
build is stable or not.
Functional testing – Testing is done to make sure that given application is working as per the
requirements and both positive, negative test cases are executed.
Retesting – Testing is done to ensure that the given defect/bug is fixed and application is
working as expected.
Regression – Testing the application to find defects which may occur due to the code
changes/bug fixes.
Integration – Testing the application by combining two or more modules.
Compatibility – This test is used to ensure a software application is properly working across
different browsers, databases, operating systems (OS), mobile devices, networks and hardware.
Ad-hoc testing – Testing without any test cases and no test case design/technique, executing with
prior knowledge of application functionality
Static testing: Testing an application without any action
Example: Logo, Colour… Etc
Dynamic testing: Testing an application by performing required action
Example: Clicking button testing….Etc
Sanity testing: This testing is a type of regression testing and main purpose of testing is to
make sure proposed modification
Exploratory testing: If we don't have any base document for the application, we spent more time
on the application and explore the knowledge
Exhaustive testing: Tester is to check each field with different inputs and combination to check
weather its working as expected are not
Monkey testing: To check whether the system is generating an error message when
we enter invalid combination.
Localization testing: Essentially, localization testing is a technique behavior, suitability
for specific locations and regions
Internationalization Testing: Internationalization testing is a process of ensuring the
adaptability of software to different cultures and languages around the world accordingly
without any modification in source code
Levels of Testing
Unit Testing- Unit testing is a testing which is done by developers once the unit test id
done then they will deploy in QA environment
Integration Testing- Here we will check whether two or more modules are integrated as per
the requirement or not. Here we will approach top to bottom and bottom to top approach
System Integration Testing: Here we validate end to end testing. We are validation
upstream and downstream are integrated as per the requirement
UAT testing (user acceptance testing): It is done by the UAT tester. Who represent the
client It has two types of testing
Alpha testing – Final testing done by development company
Beta testing – Beta testing is done by UAT testers OR to know the feedback from the end
usertype
Testing Techniques
● Boundary value Analysis: Testing technique used to check the
boundary values using lowest boundary and highest boundary
● Equivalence class partition: This technique is used to reduce the test
data when we have different combination of input of conditions with valid
class and invalid class
● Error Guessing mechanism: We can guess the result whether it is
working as expected or not.
Non Functional Testing
Non Functional Testing
Performance testing: To know the behaviour of an application how best it can performs under a
given benchmark.
Load and Stress testing are part of Performance testing
Load testing: To know the behaviour of an application under some load.
Stress testing: To evaluate the system performance under load with extreme stress conditions.
Disadvantages of Non-Functional Testing
● Every time the software is updated, non-functional tests are performed again.
● Due to software updates, people have to pay to re-examine the software; thus software becomes very
expensive.
Acceptance Criteria
Acceptance criteria refer to a set of predefined requirements that must be met to mark a
user story complete.
Acceptance criteria are the lowest-level functional requirements
They are unique for each user story and define the feature behavior from the end-user's
perspective.
Important aspect in regard to acceptance criteria is that they have to be defined before
the development team starts working on a particular user story.
Entry And Exit Criteria
Entry criteria:
1. Approved Test plan
2. Approved SRS
3. Test scenarios guidelines
4. Test scenario template
Exit criteria: Test scenarios should be reviewed and approved.
Test Scenario/Test Case
● Test Scenario: It states that in how many ways we can test the
application/software.
● Test Case: It is a step by step explanation of the scenario.
Test Case Template
What is a Bug
Bug:
If the specific feature of the application does not work as expected or the given
software/application is not developed as per the requirements, then it is called as Bug.
Bug Life Cycle:
It is a process where the Bug/defect goes through different stages, this cycle starts as soon as a bug is
reported by the tester and ends when a tester ensures that the bug is fixed
• New: When a new defect is logged and posted for the first time. It is assigned a status as NEW.
• Assigned: Once the bug is posted by the tester, the lead of the tester approves the bug and assigns the bug to the
developer team
• Open: The developer starts analyzing and works on the defect fix
• Fixed: When a developer makes a necessary code change and verifies the change, he or she can make bug status as
“Fixed.”
• Pending retest: Once the defect is fixed the developer gives a particular code for retesting the code to the tester.
Since the software testing remains pending from the tester's end, the status assigned is “pending retest.”
• Retest: Tester does the retesting of the code at this stage to check whether the defect is fixed by the developer or
not and changes the status to “Re-test.”
• Verified: The tester re-tests the bug after it got fixed by the developer. If there is no bug detected in the software,
then the bug is fixed and the status assigned is “verified.”
• Reopen: If the bug persists even after the developer has fixed the bug, the tester changes the status to “reopened”.
Once again the bug goes through the life cycle.
• Closed: If the bug no longer exists then the tester assigns the status “Closed.”
• Duplicate: If the defect is repeated twice or the defect corresponds to the same concept of the bug, the status is
changed to “duplicate.”
• Rejected: If the developer feels the defect is not a genuine defect then it changes the defect to “rejected.”
• Deferred: If the present bug is not of a prime priority and if it is expected to get fixed in the next release, then
status “Deferred” is assigned to such bugs
• Not a bug: If it does not affect the functionality of the application then the status assigned to a bug is “Not a bug”.
What is Severity
Severity: It refers to how badly the bug is affecting the application, the QA/test engineer
determines the severity level of a Bug/defect.
Types of Severity: Severity of the bug/defect is categorized into four parts:
Critical (S1): This defect indicates complete shut-down of the process, nothing can proceed further.
Major (S2): It is a highly severe defect and collapses the system. However, certain parts of the system
remain functional.
Medium (S3): It causes some undesirable behavior, but the system is still functional.
Low (S4): It won’t cause any major break-down of the system.
What is Priority
Priority: It refers to that how soon the bug/defect should be fixed. Priority is decided in consultation with the
managers/clients which is dependent on the business value.
Types of Priority : Priority of the bug/defect is categorized into three parts:
High (P1): The bug/defect must be resolved as soon as possible as it affects the system severely and cannot be used until it
is fixed.
Medium (P2): Bug/defect can be fixed in the normal course of development and testing.
Low (P3): Bug/defect can be fixed at a later date. Other, more serious bugs take priority.
Jira Tool
Jira is a Software for issue tracking, bug tracking and Project management.
Issue: An individual item in Jira, whatever you create a unique id is created. Issue
represents a request, a task, a-to do item, a development item like a story or bug or epic.
Project: A collection of issues, it consists of your team tasks, to-do-items.
Board: It is a view of issues for one or more projects, it is easy way to see the status of
many issues. There are Scrum and Kanban boards in Jira, depending on the software
projects you develop, Jira boards are chosen.
User Story
A User story in Jira is a used to capture a description of a Software feature from a Users
perspective.
➢A User story can be created by selecting the project and selecting the Issue type as
Story which will be indicated in Green colour.
➢All the User stories created for a project will be displayed under Backlog section.
➢During Sprint planning, the User stories are moved to the Sprints from the Backlog
section.
EPIC
➢ An Epic is a large user story which is too big to fit into a sprint.
➢ It is high level story which is usually split into smaller user stories, which can be
completed within a Sprint.
➢ All the User stories which are derived from an Epic are mapped to it.
API TESTING
API TESTING is a software testing type that validates Application Programming Interfaces (APIs). The
purpose of API Testing is to check the functionality, reliability, performance, and security of the
programming interfaces. In API Testing, instead of using standard user inputs(keyboard) and outputs,
you use software to send calls to the API, get output, and note down the system’s response. API tests
are very different from GUI Tests and won’t concentrate on the look and feel of an application. It mainly
concentrates on the business logic layer of the software architecture.
API testing – Https Method
API testing – Response code and Statuses
Database Testing
Database testing includes performing data validity, data integrity testing, performance
check related to
database and testing of procedures, triggers and functions in the database.
• The transactional information from the application should be stored in the database and
it should provide correct information to the user.
• Information should not be lost when it is loaded to database.
• Only completed transactions should be stored and all incomplete operations should be
aborted by the application.
• Access authorization to database should be maintained. No unapproved or unauthorized
access to user information should be provided.
• Using SQL(Structured Query Language) queries, we can test the data in the Database
Database Testing
Database Testing Attributes:
Transactions:
Transactions means the access and retrieve of the data. Hence in order during the transaction processes the ACID
properties should be followed.
Database Schema:
It is the design or the structure about the organization of the data in the database.
Triggers:
When a certain event occurs in a certain table, a trigger is auto-instructed to be executed.
Procedures:
It is the collection of the statements or functions governing the transactions in the database.