Software Manual Testing Notes
Software Manual Testing Notes
It is a process of validating whether the application has been developed as per the
client requirement or not.
If there is any deviation between client requirement and the application under
test, we will file the bug in bug tracking tool and will assign the bug to the
developer to fix.
Once the bug has been fixed by the developer, we will verify and close the bug.
1. Local Environment:-
The coding will be developed by the developers on their own machines.
Once the code has been developed, Developer will perform Unit testing
once Unit testing is done. He will check in the code to perforce tool/any
version control tool.
Perforce: - perforce is a tool which can manage the versions of the code.
There are some other tools like GIT, GIT HUB, SVN and CVS etc.
2. Dev Environment:-
The code will be checked out from perforce and deployed to dev
environment by Release manager or developer. The developer will test the
functionality of application whether the integrated code is working as per
the requirements or not. If he faces any bugs developer will modify the code
in the local environment and the fixed code will be deployed to dev.
Functionality: Behavior of an application, we call it as functionality. (Login/Logout)
3. QA Environment:-
The code will be checked out from perforce and deployed to QA
Environment by Release Manager or QA Lead. QA will executed the test
cases, If there is any deviation between Test case and Application under
Test, he will file the bugs in bug tracking tool and will assign to the
developers. Once the bugs have been fixed by developers, he will verify and
close the bugs.
4. UAT/Stage Environment:-
The code will be checked out from perforce and deployed to UAT/Stage
Environment by Release Manager. QA will prepare and execute the UAT test
cases, if the build is stable (bug free) UAT environment will be handover to
the client. Client will execute the end to end scenario which has been
prepared by him. If the application is defect free then it will be deployed to
production environment else client will reject the build. QA has to file the
bugs found in stage environment or sometimes client will file the bugs and
Dev team has to fix them ASAP.
5. Production Environment:-
The code will be checked out from perforce and deployed to Production/Live
Environment by Release Manager. QA will perform Smoke followed by
Sanity testing. If the application is defect free then the QA will send a release
email to the team (Client, Dev team, QA team). If QA finds any bugs in
production, he has to file the bugs and Dev team has to fix them ASAP. And
the fixed code should be released to production on the same day.
Mobile
Browser
Web Server Application
Server Database
Web Browser
3 – Tier Architecture: The Web Server, Application Server and Database Servers
are physically separated but internally integrated with each other for processing
data is called 3-tier architecture.
If we try to access any browser through Mobile/Laptop or any other Applications –
the address will hit the web server where the static pages will contains and
interlinked with Application Server where the business logic will contains the Java
Codes, JAR Files and War Files and to reduce load on main server we can keep a
File System. The Database server will contains the entire Table forms like user
tables, address tables, payment tables and pin code tables and we can use External
System/Application Program Interface (API’s) which will communicate with the
third party payment gateway. For example third party payment gateways like
Credit / Debit and UPI’s transactions. (Google is an Entire architecture)
What is a Web Server?
A Web Server is a software application which handles HTTP requests sent by the
HTTP Client, like Web browsers, and returns web pages in response to the clients.
Web servers usually deliver html documents along with images, style sheets, and
scripts.
Priority: P1
Actual Value/Results : QR Scan Disabled Payments allowed only through Mobile No.
Expected Value / Results: Payment to be accepted through QR Scan and Mobile
Steps to Filing a Bug in Bug Tracking Tool: Whenever we are getting a bug in QA environment we will file
that bug in bug tracking tool, While filing the bug we will give the short description of the synopsis, steps
to reproduce along with that we have to give severity and priority. Severity and Priority will be given by
the QA Engineer, if the severity and priority is not proper QA lead can be change/ update the actual
severity of the bug. If the developer will fixed it that is fine if not bug triage meeting will be conducted by
the manager to know the status of bugs to be fixed by Developer as well as QA to validate.
Meeting will be conducted with team i.e in that Meeting QA Lead, QA Members, Developers, Dev lead
and Project Manager will be there to discuss about the 20 bugs left by developer. The Manager will ask to
developer how much time it will take to fix the 20 bugs. Developer will reply that you want me to fix this
particular bug it will take 2-3 hours to fix a bug. In the same way Manager will ask to QA how much time it
will take to validation whether the bug got fixed or not / to do the regression testing.
Developer is unable to fix all the bugs, so the manager will pick the bugs according to the severity. He will
pick all P1 /P2 Bugs and he will ask the developers to complete this within three days that we are
reaching to Point of time to submit the enhanced application. So, how much ETA (Expected time of
Arrival) is required to fix. So, developer is request that we can fix some severity bugs and the remaining
bugs will be moved to next sprint, but the status is open i.e. assigned to developer only.
**We are having a bug triage meeting, in that meeting QA Lead, QA Members, Developers, Dev lead and
Project Manager will be there to discuss about the bugs which are in open state and they are targeting
the Severity P1/P2 bugs which are high and medium or which will be impact in the functionalities if it
released. So, they will triage the particular bugs stating that how much time (ETA) / efforts required to
developer to fix and QA to test and close the particular bugs and the remaining bugs moved to the next
sprint or release. The moved / low severity bugs status will be the same as “Assigned to dev” only, they
won’t change the status.
Regression Testing:
Regression testing is defined as a type of software testing to confirm that a recent program or code
change has not adversely affected existing features.
Regression testing is nothing but a full or partial selection of already executed test cases which are re-
executed to ensure existing functionalities work fine.
This testing is done to make sure that new code changes should not have side effects on the existing
functionalities. It ensures that the old code still works once the latest code changes are done.
QA is testing a web page he might see some java script errors – we have file this as bug.
Exception: Whenever the developer has handled that particular error it will throw an exception.
Exception is an abnormal condition. An exception is an event that disturbs the normal flow of the
program. It is an object which is thrown at runtime.
Null Point Exception: Whenever java code is looking for parameters or some value and that value it has
to get it from API’s , if the API has given Null value then it will throw Null Point Exception.
Bug Tracking Tool: ( BugZilla, Squish List, JIRA, QC and Team Tracker)
1. Bug tracking tool may vary as per the Project Requirement
2. Linux server configured with bug tracking tool
3. We have to open Linux server through Host/IP Address but masking with name:
www.tcs.bugzilla.com
4. We can Loging through our SSO (Single Sign on), which will be given to QA at the time of Joining
in the Organization.
1. Customer can monitor the requirements, he can change any point of time
3. He can get revenue out of it and he can invest again it depends upon the competitor
Scrum:
Scrum is an agile development method which concentrates specifically on how to manage tasks with-in a
team-based development environment. Scrum believes in empowering the development and advocates
working in small teams. It consists of three roles, and their responsibilities are explained as follows:
Scrum Master: scrum master is responsible for setting up the team, sprint meeting and removes obstacles
to progress.
Product Owner: The Product Owner creates product backlog, prioritize the backlog and is responsible for
the delivery of the functionality at each iteration.
Scrum Team: Team manages its own work and organizes the work to complete the sprint or cycle.
In the Agile we are getting the requirements in the form of stories, these stories will be discussed in one
meeting i.e sprint planning meeting. The manager will discuss with the developers and QA that we can
release the stories within the sprint size or not(i.e 2-3 Weeks). Once sprint planning meeting completed
the stories will be assigned to the Developers and QA Lead for testing. QA Lead will assign the sub stories
for Testing to QA Members if required.
Agile with Scrum Process for Software Development : When we get the requirements
from the product owner that will be fed into the JIRA Project Management tool so, from JIRA will have
sprint planning meeting will discuss about stories , once the stories has been assigned to me I will create
the sub task and I will give the effort estimation for that. So once that has been done I will start working
on the particular story and if I’m having any issues we are having daily scrum calls will discuss about the
issues or any dependency like database or any other which I’m facing and once the particular task has
been completed I will mark that as completed in JIRA. Rector Spectrum Meeting: So, once the particular
sprint has been completed we will go with rector spectrum meeting to discuss what went wrong in the
previous sprint and what should be corrected as part of next sprint. So that all the stories chosen for the
particular sprint we can cover in the next sprint accordingly.
In this we have velocity graph checking – how many team members are there and how much time it will
take to complete the Sprint.
Burned out chat – how munch percentage of work done and how much percentage is left to done
Sprint backlog – whenever in that particular sprint if any story has been moved to next sprint, we call it as
sprint back log.
Whichever story not completed and that will be moved to the next sprint is called sprint back log. The
Sprint back log will be picked-up in next sprint it depends up on the product owner.
The Business analyst will gather all the requirements from the Product Owner and add to the JIRA and the
Technical Architect will study the feasibility whether we can develop the story as required by the Product
owner in that Sprint size once the feasibility study completed designer will design the High Level Modules
and Low Level Modules after completion of the design, development team will start the coding /
development of the story, completed story will assigned to the QA for Testing if the testing is completed
with all bug fixing and all it will be moved to the Implementation and Maintenance or Product Launch.
Sticky Bugs:
Masked Bugs: A Masked Defect is a defect already existing in the software, however, it hasn't caused any failure in
the application execution mainly because it is covered or masked by another defect
Seeding Bugs: Defect seeding is a practice in which defects are intentionally inserted into a
program by one group for detection by another group.
Definition-1: Once the developer has developed a piece of code he will validate whether the
particular unit is working as per the business logic or not for that reason he will create a calling
class and he will pass different set of arguments like Valid and Invalid set of arguments to validate
that particular unit has been developed as per client / customer requirement or not.
**Before integrating code with the UI (User Interface), developer will perform Unit testing in the
local environment.
Definition-2: Developer will create a calling class and he will pass set of arguments like valid and
invalid set of arguments to check whether the piece of code has been developed as per the
business logic / customer requirement or not.
Unit testing will be done by Developers only.
2. Module Testing: If we combine two or more than two units that we will call it as module, if any
one perform testing on top of that is called as module testing.
Developer will perform module testing in his local environment where in more than two units of
code has been integrated. The Developer will check the data flow between one unit to another
unit is working as per the client requirement or not after integration is called module testing.
Example: When we Transfer a fund and the transferred amount should reflect in accounts
statement.
3. Integration Testing: Individually the Modules are working fine but after integration how the data
flow will work is called Integration Testing. Integration testing can be done on dev environment;
in integration testing if one module is not ready they will add the hard coded values to validate
their functionality.
Example: While making Ganesh Idol makers will put cement ball on hand instead of laddu which
is not yet ready to put on hand. So makers put cement ball on hand and they will remove cement
ball after got ready of laddu.
The Integration test can be done in Dev Environment by developer or QA – Depends on the
Project. If a QA is validating he can’t raise the bugs in bug tracking tool.
If developer will push the code with hard coded values to QA, we can file the bugs in bug tracking
tool.
***Capturing Response Code from the API that we call it as Hard Coded value.
4. System Testing: System Testing means, you are testing in a QA Environment where the hard
coded values are not there, application has been developed as per the customer requirement,
and application has been developed in that customer environment only. So the customer
requested that I want to deploy this particular application on Weblogic, Tomcat and Oracle, so
the application deployed there only.
Definition-2: when we are testing that application in QA Environment that application has been
deployed as per customer request. In system testing we are trying to test a complete application
and that application deployed in the Environment which has been specified by the client.
Difference between Integration Testing and System Testing: We can perform functional and non
functional testing in system environment but in integration we can do only functional testing. In
integration testing we might face hard coded values but in system testing we won’t see any hard
coded values. System Testing will be done by the QA in QA Env.
Walk through: Definition: After Completion of our Test Plan we will explain the test plan to the
client each line by line how we are going to test and what we are doing in the test in test plan and
the same we have to take approval from the client to proceed further.
Ex: for this particular sprint we will test 4 stories and these are the story no / story names.
We are going to perform 4 Test cases and I’m going to validate the data base testing, I’m
going to perform functional testing.
Objective of Plan: Whenever the application has developed by the developer, all the
functionalities should work as per the customer requirement if not working we file the bug
that is an Objective.
Scope: Scope will contain In-Scope and Out of Scope
In Scope: In Scope contains all the stories which we are going to the cover as part of this
particular sprint or Particular release. (In Story we can have story no, story details, module
names, functionality details, enhancement details)
Out of Scope: the modules which we are not going to cover and which we are not going to
cover types of testing is out of scope. (Performance and API Testing’s)
Entry and Exit Criteria: When to Start Testing and When to Stop Testing
Build: A build is the process of converting source code files into standalone software
artifact(s) that can be run on a computer.
**Smoke Testing: Whenever any build has been deployed to the QA Environment, we will
perform initial testing to validate the Build is stable enough for the further testing or not. We
will verify whether the important features and functionalities are working fine and there are no
showstoppers in the build that is under testing.
Example: Bike given to repair and brake pads were broken and mechanic fixed and we will
check the bike at mechanical showroom, if it is working fine we will give money and come
Advantages of Smoke testing
Entry Criteria: Once the build is stable or once we are done with smoke testing, if the smoke
testing is passed we can start our testing
Exit Criteria: Once P1/P2 bugs are fixed and P3/P4 has been triaged we can stop our
testing.
Functional Testing: IN functional Testing we will perform both functionality and GUI Testing
What is GUI Testing: Verifying the Graphical Functions in Graphical User Interface, like Color, Tab,
Template, Logo
Non-Functional Testing is also called as a Performance Testing: If we open an application how much
time it is taking is called performance of the application and we will measure the time
Functionality testing is performed to verify that an application performs and functions correctly
according to design specifications. During functionality testing we check the core application
functions, text input, menu functions and installation and setup on localized machines, etc.
Functional testing describes what the Non-functional testing describes how good
product does the product works
TYPES OF TESTING:
SMOKE TESTING: Smoke Testing is the initial testing performed on the released build to validate
whether the critical functionalities of the applications are working fine or not. If it is not working we will
reject the build and we will wait for patch build. If the smoke is passed then we will move to execute
regression test cases.
Some of the Organizations are following the Below Mentioned Process for Smoke
Testing:
1. Without having automation scripts, without having manual test cases, just they are validating all
the major functionalities are available or not.
2. They will have a formal testing where they will prepare all the test cases for the smoke they will
execute one by one if the smoke test cases passed they will execute the regression test cases
3. They will prepare the smoke automation scripts using selenium or any of the tools they will
execute on top of the application which has been deployed in QA Env. If anything is not working
they will reject the build and wait for path build.
SANITY TESTING: Sanity Testing is performed to validate when any bug fix /
enhancement have been done and no further issues are introduced due to these
changes.
EX: Some External API’s has changed and we will validate our application
functionalities which are dependent on that Particular API’s only.
Both sanity tests and smoke tests are ways to avoid wasting time and effort by quickly
determining whether an application is too flawed to merit any rigorous testing.
Sanity Testing is also called tester acceptance testing.
Smoke testing performed on a particular build is also known as a build verification
test.
One of the best industry practices is to conduct a Daily build and smoke test in
software projects.
Both smoke and sanity tests can be executed manually or using an automation tool.
When automated tools are used, the tests are often initiated by the same process that
generates the build itself.
As per the needs of testing, you may have to execute both Sanity and Smoke Tests in
the software build. In such cases, you will first execute Smoke tests and then go
ahead with Sanity Testing. In industry, test cases for Sanity Testing are commonly
combined with that for smoke tests, to speed up test execution. Hence, it's a common
that the terms are often confused and used interchangeably
Release Note: we will give all the story details which has been released to production and
fixed bug details.
In QA/UAT – the definition will change – We will perform sanity when an External API’s has
been modified we will try to execute the test cases are dependent on those API’s.
Regression Testing:
Regression testing is defined as a type of software testing to confirm that a recent program or code
change has not adversely affected existing features.
Regression testing is nothing but a full or partial selection of already executed test cases which are re-
executed to ensure existing functionalities work fine.
This testing is done to make sure that new code changes should not have side effects on the existing
functionalities. It ensures that the old code still works once the latest code changes are done.
Let’s try to summarize the Software Testing Life Cycle (STLC) it now!
2 Planning Updated Define the scope of the project Test Plan document.
requirements
document. Do the risk analysis and Risk mitigation
prepare the risk mitigation document.
Test feasibility plan.
reports “ Test estimation
Perform test estimation. document.
Automation
feasibility report. Determine the overall testing
strategy and process.
S.No Phase Name Entry Criteria Activities Performed Deliverables
Test Plan
document
Risk Document
Test estimation
document
5 Implementation Detailed test Create and review the test Test cases
condition cases.
document Test scripts
Create and review the
automation scripts. Test data
log
Updated
requirement
traceability metrics
7 Conclusion Updated test cases Provide the accurate figures Updated traceability
with results and result of testing metrics
Test closure Identify the risks which are Test summary report
conditions mitigated
Updated risk
management report
HAPPY TESTING!!
Regression testing is nothing but a full or partial selection of already executed test
cases which are re-executed to ensure existing functionalities work fine.
This testing is done to make sure that new code changes should not have side
effects on the existing functionalities. It ensures that the old code still works once
the latest code changes are done.
Where we will execute the test cases or the functionalities which will be affected
due that particular bug fix we will do partial regression. The tractability matrix is
interlinked with partial regression.
If we don’t have a time we will execute P1/P2 test cases followed by ad-hoc testing
What is Re-Testing, when we will do Re-Testing, tell me with example?
Re-Testing: Testing the application with different set of data is called Re-Testing
a) When we execute the same test cases with different set of data
b) When we are trying to reproduce the bug with different set of data or in
different peers machines.
Example:
a) if we want to validate the register page of Gmail i.e every text box field
has their own validations so depend upon the validations we will write
test data in test cases with different set of data.
Steps:
1. Hit www.gmail.com
2. Click on Signup button
3. Enter Valid data in first name like – (Hema, Hemanth, Hemanth1982) –
Min – 4 and Max-12
4. Enter Valid data in other text fields and click submit button
b) If we got a bug say “send mail” is not working
We will try to reproduce the same issue on IE, FF and other browsers as
per client requirement to see if it is really a code issue or browser issue.
Say it is not working on both browsers and its working on IE and not
working on FF, we will file a bug and we will send it to appropriate
developer, once the bug got fixed and the code is pushed to QA
Environment we will do re-testing i.e we will execute the steps which
we have provide in the bug and will verify if the bug is fixed or still exist.
If the bug is fixed then we will close the bug else we will re-assign to
developer.
Exploratory Testing:
Exploratory testing is done to explore the application and is done to get the
knowledge of the application in this user tries to understand the application as well
as functionalities of application.
1. This testing is conducted when there is no time for complete testing (i.e no
time to execute all the test cases). In this testing we will test main
functionalities of the application randomly.
2. When we have execute the entire test cases and we have left with time then
we will do ad-hoc testing to cover some corner which was not covered in
test document
3. When we don’t have any proper document like(Test cases, FRS), we will do
ad-hoc testing by using our application knowledge
.Exe file is different (32 bit / 64bit) for each and every different operation system
Browser Testing:
Session Testing:
Testing the application session expire time is called session testing, the developer
will write the test session expiry time in web.xml file.
<Session-Config>
<Session-timeout>10</Session-timeout>
</Session-Config>
For Example: if Session timeout is given as 30Mins in web.xml file and if the user is
sitting idle for 30 mins. In 31st minute, the user will try to do any operation on that,
the session will be expired and the user will be taken to the default login page. If
the user is doing any action on 29th minute the count will be reset to 30 mins.
We can do testing by deleting session cookies once cookies are deleted the user
should be taken to default login page.
Session ID: Session ID is the Unique ID which will be generated by the session
programming which has been developed by the programmer.
Whenever we will login, Application server will send the session ID, every time it
will create session id for each login with different Session ID’s.
Define Cookies:
Cookies are usually small test files, given ID tags that are stores on your computers
browser directory. Cookies are created when you see your browser to visit a
website that uses to keep track of your movements within the site, help you
resume where you left off, remember your registered login, theme selection,
preferences and other customization functions.
1. Session Cookies or Non Persistent Cookie: These are temporary cookie files
which are erased when you close your browser. When you restart your
browser and go back to site the website will not recognize you. You will have
to log back in (If login is required) or select your preferences theme again if
the site uses these features. A new session cookie will be generated, which
will store your browsing information and will be active until you leave the
site and close your browser.
Example: Session cookies allow users to be recognized within a website so
any page changes or item or data selection you do is remembered from page
to page. The most common example of this functionality is the shopping cart
feature of any e-commerce site. When you visit one page of catalog and
select some items, the session cookie remembers your selection so your
shopping cart will have the items you selected when you are ready to
checkout. Without session cookies, if you click CHEKOUT, the new page does
not recognize your past activities on prior pages and your shopping card will
always be empty.
2. Persistent Cookies: These files stay in one of your browsers sub folders until
you delete them manual.
If we are trying to login with valid username and password, we will check we are
able to login or not into the application. If we are trying to login with valid
username and Invalid Password, that means that the authentication is not proper.
Usability Testing also known as User Experience (UX) Testing, is a testing method
for measuring how easy and user-friendly a software application is. A small set of
target end-users, use software application to expose usability defects. Usability
testing mainly focuses on user's ease of using application, flexibility of application
to handle controls and ability of application to meet its objectives.
Navigation: Navigation tests analyze how users navigate through your website or
application, given a specific task or goal. The results help you hone critical user
flows, and improve your information architecture.
Pagination: List of items displayed more than one Page and the displayed pages
are properly navigated or not.
End to end Testing: End-to-end testing is a technique used to test whether the
flow of an application right from start to finish is behaving as expected. The
purpose of performing end-to-end testing is to identify system dependencies and
to ensure that the data integrity is maintained between various system
components and systems.
The entire application is tested for critical functionalities such as communicating
with the other systems, interfaces, database, network, and other applications.
Use Case: Use case plays a significant role in the distinct phases of the Software
Development Life Cycle. Use Case depends on ‘User Actions’ and ‘Response of
System’ to the User Actions.
2 Adding item Able to add item to 1.Select Item should Item is Fail
functionality the cart categories list get added to not
2.Add the item to the cart getting
cart added to
the cart
3 Sign out Check sign out 1. select sign out The user User is Fail
functionality functionality button should be not able
able to sign to sign
out. out