0% found this document useful (0 votes)
32 views37 pages

Chapter 4 Testing Tools

The document discusses the importance and benefits of automated testing compared to manual testing, highlighting various types of automated tests such as API, UI, and performance testing. It outlines criteria for selecting automation tools and lists popular tools like Selenium and Postman. Additionally, it addresses the challenges and advantages of API and UI testing, emphasizing the need for automation in improving software quality and efficiency.

Uploaded by

armanmohd50584
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views37 pages

Chapter 4 Testing Tools

The document discusses the importance and benefits of automated testing compared to manual testing, highlighting various types of automated tests such as API, UI, and performance testing. It outlines criteria for selecting automation tools and lists popular tools like Selenium and Postman. Additionally, it addresses the challenges and advantages of API and UI testing, emphasizing the need for automation in improving software quality and efficiency.

Uploaded by

armanmohd50584
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 37

. Unit IV Testing Tools 06 1.

API Automation
Tools 2. Demonstration using POSTMAN 3.
UI Automation Tools 4. Demonstration using
Selenium
Automated Tests
• Automated Testing is a technique where the
Tester writes scripts on their own and uses
suitable Software or Automation Tool to test
the software.
Why Transform From Manual to Automated Testing?

• In the year 1994, An aircraft completing its


Routine flight crashed just before landing. This
was due to some bug or defect in the
Software. The Testers didn’t even care about
the final testing and hence this accident
happened. So to replace for few of the Manual
Tests (mandatory), there is a need for
Automation Testing. Below are some of the
reasons for using automation testing:
• Quality Assurance: Manual testing is a tedious task that can
be boring and at the same time error-prone. Thus, using
automation testing improves the quality of the software
under test as more test coverage can be achieved.
• Error or Bug-free Software: Automation testing is more
efficient for detecting bugs in comparison to manual
testing.
• No Human Intervention: Manual testing requires huge
manpower in comparison to automation testing which
requires no human intervention and the test cases can be
executed unattended.
• Increased test coverage: Automation testing
ensures more test coverage in comparison to
manual testing where it is not possible to
achieve 100% test coverage.
• Testing can be done frequently: Automation
testing means that the testing can be done
frequently thus improving the overall quality
of the software under test.
Difference Between Manual Testing and Automated Testing

Parameters Manual Testing Automated Testing

Manual testing is not accurate at all times Since it is performed by third-party tools
Reliability due to human error, thus it is less reliable. and/or scripts, therefore it is more reliable.

Investment in tools rather than human


Investment Heavy investment in human resources. resources.

Manual testing is time-consuming due to Automation testing is time-saving as due to


Time efficiency human intervention where test cases are the use of the tools the execution is faster in
generated manually. comparison to manual testing.

Programming There is no need to have programming It is important to have programming


knowledge knowledge to write the test cases. knowledge to write test cases.

There is a possibility that the test cases


When there are changes in the code,
executed the first time will not be able to
Regression testing catch the regression bugs due to the
regression testing is done to catch the bugs
due to changes in the code.
frequently changing requirements.
Automation Testing Types

• Unit testing: Unit testing is a phase in software testing to test the


smallest piece of code known as a unit that can be logically
isolated from the code. It is carried out during the development of
the application.
• Integration testing: component: Integration testing is a phase in
software testing in which individual software components are
combined and tested as a group. It is carried out to check the
compatibility of the component with the specified functional
requirements.
• Smoke testing: Smoke testing is a type of software testing that
determines whether the built software is stable or not. It is the
preliminary check of the software before its release in the market.
• Performance testing: Performance testing is a type of software testing
that is carried out to determine how the system performs in terms of
stability and responsiveness under a particular load.
• Regression testing: Regression testing is a type of software testing that
confirms that previously developed software still works fine after the
change and that the change has not adversely affected existing features.
• Security testing: Security testing is a type of software testing that
uncovers the risks, and vulnerabilities in the security mechanism of the
software application. It helps an organization to identify the loopholes in
the security mechanism and take corrective measures to rectify the
security gaps.
• Acceptance testing: Acceptance testing is the last phase of software
testing that is performed after the system testing. It helps to determine
to what degree the application meets end users’ approval.
• API testing: API testing is a type of software
testing that validates the Application
Programming Interface(API) and checks the
functionality, security, and reliability of the
programming interface.
• UI Testing: UI testing is a type of software
testing that helps testers ensure that all the
fields, buttons, and other items on the screen
function as desired.
Criteria to Select Automation Tool

Following are some of the criteria for selecting the automation tool:
• Ease of use: Some tools have a steep learning curve, they
may require users to learn a completely new scripting
language to create test cases and some may require users to
maintain a costly and large test infrastructure to run the test
cases.
• Support for multiple browsers: Cross-browser testing is vital
for acceptance testing. Users must check how easy it is to run
the tests on different browsers that the application supports.
• Flexibility: No single tool framework can support all types of
testing, so it is advisable to carefully observe what all tool
offers and then decide.
• Ease of analysis: Not all tools provide the same sort of analysis.
Some tools have a nice dashboard feature that shows all the
statistics of the test like which test failed and which test passed.
On the other hand, there can be some tools that will first request
users to generate and download the test analysis report thus, not
very user-friendly. It depends entirely on the tester, project
requirement, and budget to decide which tool to use.
• Cost of tool: Some tools are free and some are commercial tools
but many other factors need to be considered before deciding
whether to use free or paid tools. If a tool takes a lot of time to
develop test cases and it is a business-critical process that is at
stake then it is better to use a paid tool that can generate test
cases easily and at a faster rate.
• Availability of support: Free tools mostly
provide community support on the other hand
commercial tools provide customer support,
and training material like tutorials, videos, etc.
Thus, it is very important to keep in mind the
complexity of the tests before selecting the
appropriate tool.
Popular Automation Tools

• Selenium: Selenium is an automated testing tool that is used for Regression


testing and provides a playback and recording facility. It can be used with
frameworks like JUnit and Test NG. It provides a single interface and lets users
write test cases in languages like Ruby, Java, Python, etc.
• QTP: Quick Test Professional (QTP) is an automated functional testing tool to test
both web and desktop applications. It is based on the VB scripting language and
it provides functional and regression test automation for software applications.
• Sikuli: It is a GUI-based test automation tool that is used for interacting with
elements of web pages. It is used to search and automate graphical user
interfaces using screenshots.
• Appium: Apium is an open-source test automation framework that allows QAs to
conduct automated app testing on different platforms like iOS, Android, and
Windows SDK.
• Jmeter: Apache JMeter is an open-source Java application that is used to load
test the functional behavior of the application and measure the performance.
API Automation Tools

• API testing, or application programming


interface testing, is a type of software testing
that focuses on the testing of individual API
methods and the interactions between
different APIs.
API
• As we know API stands for Application Programming
Interface which acts as an intermediate of
communication between two applications. Due to this
intermediary role of API (Application Programming
Interface) two applications talk to each other and
performs the required actions efficiently. API contains a
set of rules and guidelines based on which the
applications are developed. So in simple we can say an
API acts as an interface between two software
applications so that two software applications can
communicate with each other.
• API testing typically includes the following steps:
• Reviewing the API documentation to understand
the functionality and expected inputs and outputs
• Writing test cases that exercise the different
functionality of the API
• Executing the test cases and comparing the
expected results with the actual results
• Analysing the results and identifying any issues
that need to be fixed
• There are several types of API testing, including:
• Functional testing: Testing the functionality of the API to ensure it behaves
as expected
• Security testing: Testing the security of the API to ensure it is protected
against common vulnerabilities
• Performance testing: Testing the performance of the API to ensure it can
handle the expected load
• Interoperability testing: Testing the compatibility of the API with other
systems
• Usability testing: Testing the usability of the API for developers
• Tools such as Postman, SoapUI, and Runscope can be used to automate and
simplify the process of API testing.
• API Testing refers to test the APIs which are
used in the application just to validate that the
APIs are working fine. When a system has a
collection of APIs, these needs to be tested to
know that the system is working perfectly or
not. Mostly we can say that API testing
confirms system’s performance, reliability,
security and functionality
• Below list represents some of the tools which are used
for API Testing :
• Postman
• Katalon Studio
• Soap UI
• Parasoft
• REST assured
• Tricentis Tosca
• Ping API
• Assertible
• GUI testing is different from the API testing as
GUI testing is present at Presentation layer
where the API testing is present at Business
layer
What exactly we check during API testing :

• Data accuracy.
• Response time.
• Duplicate or missing functionality.
• Authorization checks.
• Multithreaded issues.
• Security and performance issues.
• Error codes if API returns.
• Reliability issues.
• Benefits of API Testing :
• Like we get a lot of advantages by using APIs in application,
similarly by performing API testing we achieve a lot of things
towards the success of the developed application. Below are some
benefits i.e.
• Earlier validation of correctness in response and data.
• Earlier test maintenance.
• Better speed and coverage of testing.
• GUI independent testing.
• Reduced testing cost.
• Language independent test.
• Helpful in testing core functionality.
• Disadvantages of API Testing:
• API testing can have some disadvantages, including:
• Complexity: API testing can be complex, especially when testing multiple
APIs or when testing APIs that are integrated with other systems.
• Limited Visibility: Since API testing is performed at the integration level, it
can be difficult to see how the API is interacting with other components of
the system. This can make it difficult to identify and troubleshoot issues.
• Security: APIs can introduce security vulnerabilities if they are not
properly tested and secured. This can be a significant concern for
organizations that handle sensitive data.
• Difficulty in testing non-functional requirements: Non-functional
requirements such as performance, scalability and security are difficult to
test with functional testing
UI Automation Tools
• What is UI in automation testing?
• UI tests launch an app (or part of it), then
simulate user interactions, and finally check
that the app reacted appropriately.
• They are integration tests that can range from
verifying the behavior of a small component
to a large navigation test that traverses a
whole user flow
• UI testing or user interface testing is a type of
software testing that focuses on checking the
appearance, functionality, and usability of
different kinds of user interfaces, such as:
Graphical user interface (GUI) Command line
interface (CLI) Voice user interface (VUI)
• What is UI testing with example?
• In the simplest terms, UI testing is about
checking two things: how your application
handles user actions performed via mouse,
keyboard, and other input devices. whether
the visual elements (buttons, links, text fields,
images, and so on) are displayed correctly and
work as intended.
• Which tool is used for UI automation?
• Selenium is a popular open-source UI
automation testing tool. It boasts powerful
features like recording and playback and has
an extensive community of developers and
users.
• Automating UI tests reduces the time and
effort required to manually test an
application's user interface. Instead of having
a tester validate each and every aspect of the
user interface, test algorithms are developed
for each user scenario.2
Automated testing offers numerous benefits in
Agile software development
• . Enables teams to increase test coverage rates significantly
• Increased test coverage fosters faster debugging
• Test scripts once created can be reused; this makes testing
easily scalable
• Test execution is much faster as compared to
manual testing
• Efficient test scripts deliver accurate test results
• Unlike manual tests, automated tests are not prone to
human error
• Automated testing is time and cost-effective
• Here’s a list of tools that can be used for Automated UI
Testing:
• Selenium (Website UI Testing)
• Cypress (Website UI Testing)
• Playwright (Website UI Testing)
• Puppeteer (Website UI Testing)
• NightwatchJS (Website UI Testing)
• Appium (Mobile App UI Testing)
• Espresso (Android Mobile App UI Testing)
• XCUITest (iOS Mobile App UI Testing)
Challenges in UI automation testing

• dentifying the right automation tool for


extensive testing
• Diversity in the test environment
• Test automation demands enormous
investment
• Automation requires technical expertise
Demonstration using POSTMAN
Demonstration using Selenium

You might also like