Manual Testing Full Course
Manual Testing Full Course
What is Agile?
What is Scrum? Scrum Team
What is Sprint?
What is User Story?
How to give story points / How to estimate user story?
What is the definition of Done / What is the definition of Ready?
Different Sprint Activities
Sprint Planning / Backlog Refinement / Sprint Review / Sprint Retrospective
Types of Software:
1) System software - ex: Device Drivers, Operating System, Servers, Utilities, etc.
2) Programming Software - ex: Compilers, Debuggers, Interpreters, etc.
3) Application Software - ex: Web Applications, Mobile Apps, Desktop Apps
Project vs Product
Project = software app developed for a specific customer, based on his requirement
Product = software app developed for multiple customers, based on market requirements.
SDLC is a process used by software industry to design, develop and test software.
3 P (pillars) theory:
1) P - People
2) P - Process (SDLC)
3) P - Product
Waterfall model
A. Requirements Analysis - collect the requirements from the customer and create a set of documents
(SRS - Software Requirements Specifications document)
INPUT - customer requirements
OUTPUT - SRS
B. System Design - based on the required document, the designers will prepare HLD (High Level Modules
Docs) and LLD (Low Level Modules Docs)
INPUT - SRS
OUTPUT - HLD & LLD
C. Implementation - based on the design documents, the developers will implement the software
INPUT: HLD & LLD
OUTPUT: CORE
Advantages:
1) Good quality of the product
2) Since requirements changes are not allowed, chances of finding bugs will be less
3) Initial investment is less, since testers are hired in later stages
4) Preferred for small projects where requirements are freeze.
Disadvantage:
1) Requirement changes are not allowed
2) If there is a defect in the requirements that will be continued in later phases
3) Total investment is more because of time taking for rework of defect later
4) Testing will only start after coding
Spiral model
Is an iterative model and overcomes the drawbacks of the waterfall model.
It is used whenever there is a dependency on the modules.
In every cycle new software will be released to the customer.
Software will p\be released in multiple versions -> Version control model.
Advantages:
1) Testing is done in every cycle, before going to the next one
2) Customer will get to use the software for every module
3) Requirements changes are allowed after every cycle before going to the next one
Disadvantages:
1) Requirement changes are not allowed in between the cycle
2) Every spiral model cycle looks like waterfall model
3) There is no testing in requirement & design phase
V-model
BRS = Business Requirements Specifications = consists of the complete scope of the project, the
performance requirements and usability, the purpose of the product, the functions of the product, the
features of the product and the users, the scope of the work and the humanity requirements.
CRS = Customer Requirements Specifications = is a planning document normally used for computer
systems sup- port planning purposes. It identifies in some depth issues the customers have now and
foresee for the next period, issues the computing support group fore- sees, and any potential business
climate changes in the works.
URS = User Requirements Specifications = is a planning document that specifies what the software or
system needs to do. It is written from the point of view of the end user and does not need to be technical
or complicated.
BRS / CRS / URS is made by BUSINESS UNIT (REQUIREMENT PHASE),not by Devs and Testers. To be
understand by Dev and Testing teams, it transforms into SRS (contains technical term and parameters)
BRS / CRS / URS -----> User Acceptance Testing
SRS = Software Requirements Specifications = is a document that describes what the software will do and
how it will be expected to perform. It also describes the functionality the product needs to fulfill all
stakeholders (business, users) needs.
SRS is made by PROJECT MANAGERS (REQUIREMENT PHASE).
SRS -----> System Testing
HLD = High Level Design Documents = explains the architecture that would be used to develop a system.
The architecture diagram provides an overview of an entire system, identifying the main components that
would be developed for the product and their interfaces. It includes the description of the following parts:
System architecture, Database design, Brief mention of all the platforms, systems, services, and
processes the product would depend on, Brief description of relationships between the modules and
system features.
LLD = Low Level Design Documents = is a component-level design process that follows a step-by-step
refinement process. It provides the details and definitions for the actual logic for every system component.
It is based on HLD but digs deeper, going into the separate modules and features for every program in
order to document their specifications.
DLD = Detailed Level Design Documents = the most detailed technical document, which describes user
stories, error processing algorithms, state transitions, logical sequences, etc. It describes the interaction of
every low-level process with each other.
High-Level Design Low-Level Design
The overall architecture of the application A detailed description of each and every
and the network design as well as module that is mentioned in the high-level
relationships between various system design (HLD.)
modules and functions.
Main idea: HLD is required to understand Main idea: provides information for building
the flow across various system entities. For the product, its configuration, and
example, if you have several integrated troubleshooting. For example, if you have
solutions, HLD describes how everything several solutions, LLD describes each one in
works as a single organism. detail, like a single organ in a body.
Goal: converts business goals and Goal: converts a high-level solution into a
requirements into a high-level solution. detailed solution ready for building.
Chronologically, HLD is created before any Chronologically, LLD is created after the high-
other technical documentation. level design document.
HLD Creator: Solutions Architect. LLD Creator: Designers & Developers with
PM.
Input Data: software requirement Input Data: reviewed and authorized high-
specifications (SRS.) level design document (HLD.)
Results: database design, functional design, Results: program specification and unit test
and review record. plan.
2) Walk-through
- informal review, not pre planned and done whenever required
3) Inspection
- more formal review, in a 3-8 meeting scheduled via email
Advantages:
1) Testing is involved in each and every phase.
Disadvantages:
1) More documentation
2) Initial investment is more
QA vs QC vs QE
QA is:
- process related
- focus on building in quality
- preventing the defects
- is process oriented
- is involved in every phase of the SDLC
QC is:
- the actual testing of the software
- focus on testing for quality
- is detecting the defects
- is product oriented
- is involved only in the testing phase of the SDLC
QE is:
- automating testing (Quality Engineering)
3 P (pillars) theory:
4) P - People (QC)
5) P - Process (QA)
6) P - Product
2) Integration testing
- is performed between 2 or more modules
- focuses on checking data communication between multiple modules
- is a white box testing technique
- is conducted by developers
-ex:
A) Incremental integration testing:
- incrementally adding the modules and test the data between the modules
- 2 approaches: Top - Down (integrated module is a child of the previous parent model) & Bottom -
Up (integrated module is a parent of the previous child model)
B) Non incremental integration testing
- adding all the models in a single shot and test the data flow between the modules
- drawbacks: missing data between modules and not understanding of the root cause of defect
3) System testing
- testing over all functionality of the app with respective client requirements
- it is a black box testing technique
- is conducted by the testing team
- is conducted after unit and integration testing phases
- it focuses on:
2) Usability Testing:
- it test the easiness of the application
3) Functional Testing:
- is tests the behaviour of the application
- it is focused on customer requirements
- types:
A) Object properties testing (disable or not, focus or not, visible or not, etc)
C) Error handling: tester verify the error messages while performing incorrect actions on the application
(readable, user understandable language)
E) Links Existence & Links Execution: tester verifies where links are placed and if they navigate to proper
page
Types:
- Internal Link - on the same page
- External Link - on another page
- Broken Page - for future implementation, should navigate on the same page
- types:
A) Performance Testing: the speed of the application (how well it responds):
Load: gradually increasing the load (multiple users) on the app and check speed
Stress: suddenly increasing/decreasing the load (multiple users) on the app and check speed
Volume: check how much data is the application able to handle
C) Recovery Testing: check if the application has recovery mechanism in case of electrical outage, internet
loss, etc
D) Compatibility Testing:
Forward compatibility - upgrade mechanism
Backward compatibility - downgrade mechanism
Hardware compatibility - verify the app is able to install on different hardware platforms -
Configuration Testing - verify the performance of the software against different
combinations of hardware
F) Sanitation Testing / Garbage Testing: check if there are extra features not mentioned in the
requirements (bug is raised in order to remove the feature)
Edit Box
A) Functional:
- check if user can enter a value
- check if user can clear the value
- check if user is able to enter any type of characters (ECP)
- verify the maximum length of text that the edit box can hold (BVA)
B) GUI:
- check if text entered is visible
- check if edit box is enabled
- check if edit box is visible
- check is edit box position is as per requirements
- check if the edit box size is as per requirement
- check if text size/font/color in the edit box is as per requirement
- check if edit box gives any hint/placeholder for user regarding what to enter
Links
A) Functional:
- check if user can click the link
- verify if user is navigated to the right location after link is clicked
- verify if user is navigated to location in a new page or in the same tab, as per requirement
B) GUI:
- check if link is visible
- check if link is enabled
- check if link position is as per requirement
- check if mouse hoovering returns the link name on the bottom left of the browser
- check if the link text size/font/color is as per requirement
- check if on mouse hoover the cursor changes from tip to hand
- check if on mouse hoover the link color changes
- check if the color of the text link changes to showcase that was previously clicked
Button
A) Functional:
- verify user can click the button
- verify if user is able to perform the required function when the button is clicked
B) GUI:
- check if button is visible
- check if button size/shape/color are as per requirement
- check if button position is as per requirement
- verify text present in the button is visible
- verify text present in the button is positioned as per requirement
- verify text present in the button has the size/font/color as per requirement
- check if on mouse hoover the cursor changes from tip to hand
- check if on mouse hoover the button color changes as per requirement
Text box
A) Functional:
- check if user can enter a value
- check if user can clear the value
- check if user is able to enter any type of characters (ECP)
- verify the maximum length of text that the edit box can hold (BVA)
B) GUI:
- check if text entered is visible
- check if text box is enabled
- check if text box is visible
- check is text box position is as per requirements
- check if the text box size is as per requirement
- check if text size/font/color in the text box is as per requirement
- check if text box gives any hint/placeholder for user regarding what to enter
Check box
A) Functional:
- check if the checkbox can be selected or not
- check if multiple checkbox-es can be selected or not, as per requirement
- check if checkbox can be selected both by mouse and by keyboard
- check if checkbox selection enables the specific element as selected
- check if selection and submit is pressed, the user is redirected to the option as per choice made
- check if selection is right recorded in the database or for browser redirection
- verify if different checked/unchecked boxes combination are considered in redirection
B) GUI:
- check if checkbox is visible or not
- check if checkbox is enabled or not
- verify if checkbox size/color is as per requirements
- check if the checkbox label is correctly aligned in page
- check if the initial focus is on the first checkbox if multiple
- verify that multiple checkbox-es are aligned properly
- verify if selection control is inactive when the page loads
Search box
A) Functional:
- check if user is able to enter required text in the search box
- verify whether search box is giving any auto suggestions for text to be searched
- verify if user is allowed to use any characters in the search box (ECP)
- check if user can clear or delete text written in the search box
- check if user is able to select any specific auto search result populated in the search box
- verify the maximum length of text that the search box can hold (BVA)
B) GUI:
- check if search box is visible or not
- check if search box is enabled or not
- verify if search box size/color is as per requirements
- check the font/size/color of the text entered in the search box is as per requirements
- check if text entered in the search box is visible
- check if search box gives any hint/placeholder for user regarding what to search in search box
Calendar
A) Functional:
- check if the header of the calendar displays current date first (default date)
- check if clicking on the next and previous changes current month/year
- check if user can select a date/month/year or not
- check if months have the correct number of days (27, 28, 30, 31)
- if calendar has a date field, check if the field allows only digits (ECP)
- if calendar has a date field, check if the field allows maximum digits between 1 and 31 (BVA)
- if calendar has a date field, ensure the date format is as per requirements or interchangeable
B) GUI:
- check if the calendar window is displayed and active when is invoked by pressing the calendar icon
- check if the size/position of the calendar is as per requirements
- check if calendar is visible or not
- check the calendar appearance on different screen sizes
- check if dates are highlighted when mouse hoovering
- check if cursor changes on mouse hoovering from tip to hand
Radio Button
A) Functional:
- check if radio button is select able by using both mouse and keyboard
- check if user is able to select multiple radio buttons
- check when user selects no radio button and clicks submit if there is an error message displayed
- check when radio button is selected and submit is pressed if user is redirected on the right page
- check when radio button is selected if the database updates with the selection
- check that the default selection of the radio button is as per requirement
B) GUI:
- check if radio button is visible
- check if radio button is presented on the web page as per design document
- check if radio button shape/size/color is as per design document
- check if label text is present for radio button or not
- check the alignment on the page for the radio button
- if multiple radio buttons available, check if the displaying order is respected as per requirements
2) Re-Testing:
-it is used to ensure that the defects which were found and posted in the earlier build where fixed or not in
current build
- tester will test the bug fix alone (opposite to regression testing)
- tester will close the bug if is resolved, otherwise it will reopen and send it to dev
Exploratory Testing
Adhoc Testing & Monkey Testing
Positive & Negative Testing
- testing the application with valid inputs is called Positive Testing
- it checks if an application behaves as expected with valid inputs
End-to-end testing
- testing the overall functionalities of the system including the data integration among all the modules
Globalization & Localization Testing
1) Globalization Testing (global compatibility):
- performed to ensure the system or software app can run in any cultural or local environment
- different aspects of the software are tested to ensure that it supports every language and different
attributes
- it test the different currency formats, mobile phone number formats and address formats are supported
by the app
1) Requirement Analysis
2) Test Planning
3) Test Design
4) Test execution
5) Bug Reporting & Tracking
6) Test Closure
- a document that describes the test scope, test strategy, objective, schedule, deliverable and resources
required to perform testing for a software product
- contents:
A) Overview
B) Scope - Inclusions, Test Environments, Exclusions
C) Test Strategy
D) Defect Reporting Procedure
E) Roles / Responsibilities
F) Test Schedule
G) Test Deliverable
H) Pricing
I) Entry and Exist Criteria
J) Suspension and Resumption Criteria
K) Tools
L) Risk and Mitigation
M) Approvals
Use Case, Test Scenario & Test Case
1) Use Case: (created by manager / test lead / business manager part of FRS)
- use case describes the requirements
- contains THREE items:
A) Actor - is the user, which can be a single person or a group of people, interacting with a process
B) Action - is the reach of the final outcome
C) Goal/Outcome - is the successful user outcome
- is a set of step by step action to validate a particular feature or functionalities of a software application
- it contains:
A) Test Case ID
B) Test Case Title
C) Description
D) Preconditions
E) Priority
- P0 - smoke and sanity case testes (very important)
- P1 - regressions test cases
- P2 - functional test cases (major flows of the app)
- P3 - UI testing
F) Requirement ID
G) Steps/Actions
H) Expected Result
I) Actual Result
J) Test data
- is a platform specially build for test case execution on the software product
- it is created by integrating the required software and hardware along with proper network configurations
- test environment simulates production/real time environment
- another name for test environment: TEST BED.
Test Execution
Defect/Bug Reporting
Defects/Bugs Classification
Defect/Bug Severity & Priority
1) Defect Severity:
- describes the seriousness of a defect and how much impact has on business workflow
- categorized in 4 classes:
A) Blocker - indicates nothing can proceed further
Ex1: Application crashed
Ex2: Login not working
B) Critical - indicates that main functionality is not working and business workflow is broken
Ex1: Funds transfer not working in net banking
Ex2: Ordering product not working (e-commerce application)
C) Major - it causes some undesirable behaviour, but the app/feature is still functional
Ex1: After sending email there is no confirmation message
Ex2: After booking cab there is no confirmation
2) Defect Priority:
- describes the importance of defect and states the order in which a defect should be fixed
- categorized in 3 classes:
A) P0 (High) - must be resolved immediately as it affects the system severely
B) P1 (Medium) - it can wait a new version / build to be created
C) P2 (Low) - developer can fix it in later releases
Defect/Bug Life Cycle
Test Closure
Test Metrics
QA/Tester Responsibilities
Agile principles:
Advantages:
Disadvantages:
1) Less focus on design and documentation since we deliver software very fast
Scrum process
- a framework through which we build software product by following the agile principles
A) Scrum team:
1) Product owner:
- defines the feature of the product (classification in a form of epic and user stories)
- priorities the features according to the market value
- adjusts the features and priorities every iteration, as needed
- accepts or rejects work results
2) Scrum Master:
- the main role is facilitating and driving the agile process
- he makes sure the team members are following the agile process
- organizes scrum meetings and a\other scrum ceremonies
3) Dev Team:
- develop the software product
4) QA Team:
- test the software product
B) Scrum terminology:
4) Sprint - a period / span of time to complete user stories, a.k.a iteration, decided by the product owner
and the team, usually 2-4 weeks
5) Sprint Planning Meeting - meeting conducted with the whole team, to decide what can be delivered in
the sprint and duration
6) Sprint Backlog - list of committed stories by Dev/QA for specific sprint (subset of Product Backlog)
7) Scrum Meeting - meeting conducted by the scrum master, everyday, 15 mins (a.k.a Stand-up Meeting)
- “what did you do yesterday, what will you do today, any impediment on the way”
8) Sprint Retrospective Meeting - conducted by the entire team, after sprint completion
- “what went right/wrong”
9) Story point - rough estimation of user stories, will be decided by Dev & QA in Fibonacci series form
- 0, 1, 1, 2, 3, 5, 8, 13, 21, ….
- 1 story point = 1 hour / 1 day, 6 hours, etc
10) Burn down Chart - graph prepared by scrum master, which shows how much work remains in the
sprint (daily)