SlideShare a Scribd company logo
1 of 20
Download to read offline
© 2021 Maveryx srl.
All rights reserved.
Web Testing
Web Application automated testing
© 2021 Maveryx srl.
All rights reserved.
What is a web application?
• A Web application is a computer program that is stored
on a remote server and delivered over the internet through
a browser interface.
• accessible using any web browser.
• running on a server (or cloud)
• uses many web technologies to perform various tasks
• is dynamic
• …
© 2021 Maveryx srl.
All rights reserved.
How does a web-application work?
• Step 1: the user accesses a web application via a web browser or mobile
application, sending a request to the web server over the internet
• Step 2: the web server forwards the request to the web application server
• Step 3: the web application server performs the requested task – such as
querying the database or processing the data – then generates the results
of the requested data
• Step 4: the web application server sends the results back to the web
server
• Step 5: the web server delivers the requested information to the client
(desktop, mobile device, tablet, etc.) and the information are displayed to
the user
© 2021 Maveryx srl.
All rights reserved.
Web application architecture
Frontend: the part of a web
application that the user
interacts with.
The frontend is built using
technologies such as
Hypertext Markup Language
(HTML), JavaScript and
Cascading Style Sheets
(CSS).
Backend: the server-side of
the web application.
The backend is built using
technologies such as Ruby,
Java, C++/C/C#, Python and
PHP. It also supports popular
databases including MySQL
and PostgreSQL.
© 2021 Maveryx srl.
All rights reserved.
What is testing?
• Testing is the process of executing a program with the intent
of finding errors. (Myers)
• Testing is the process of establishing confidence that a
program o system does what is supposed to. (Hetzel)
• The process of exercising software to verify that it satisfies
specified requirements and to detect errors. (IEEE)
• The process with the objective of preventing defects (Test
Maturity Model - Level 5)
© 2021 Maveryx srl.
All rights reserved.
What is web testing?
• Web testing is the process of testing a web-based
application for functionality, performance,
accessibility, security and more
• The aim of web testing is to find bugs in the web
application being tested.
• Web testing allows verifying that a web application
meets stated or implied functionality, security,
usability, accessibility, visual, and performance
requirements, before it goes live to end users.
© 2021 Maveryx srl.
All rights reserved.
Why web testing?
• Deploying web
applications into the mass
market without proper
testing will result in
Poor quality
Unsatisfied users
Negative feedbacks
Loss of users and money
Poor
Quality
Unsatisfied
users
Negative
feedbacks
Loss of
users and
money
© 2021 Maveryx srl.
All rights reserved.
Web Testing Types
1. Functionality Testing
2. Graphical User Interface Testing
3. Cross Browser/Compatibility Testing
4. Performance Testing
5. Security Testing
6. Database Testing
7. Usability Testing
8. ...
8
© 2021 Maveryx srl.
All rights reserved.
Functional Testing
• Functional testing verifies that all the functionalities of
the web application operate in conformance with their
specification.
• Verify that the web application does "what" is supposed to do.
• Functional testing uses black-box techniques
• NO knowledge of the internal web application logic
• Tests are derived from the specification
• Functional testing includes several testing types such as
unit, smoke, sanity, integration, system, and regression
tests.
© 2021 Maveryx srl.
All rights reserved.
Example using Maveryx
//start browser
Bootstrap.startApplication("Chrome.xml");
//navigate to the web application
new GuiBrowser().navigateTo("https://localhost:8080/login");
//enter username
new GuiText("Username").setText("maveryx");
//enter passowrd
new GuiPasswordText("Password").setText("N6$J#3ug");
//click to log in
new GuiButton("Sign In").click();
//check the successful message
GuiHtmlElement message = new
GuiHtmlElement(AccessibleRoleMaveryx.WEB_H1);
assertEquals("Welcome!", message.getText());
© 2021 Maveryx srl.
All rights reserved.
GUI Testing
• GUI testing is the process of testing the visual elements
to verify that they meet the expected performance and
functionality.
• GUI testing evaluates design elements such as layout,
colors, fonts, font sizes, labels, text boxes, text
formatting, captions, buttons, lists, icons, links and more…
• GUI testing not only tests the user interface, but it also
allows end-to-end system testing.
© 2021 Maveryx srl.
All rights reserved.
Example using Maveryx
//start browser
Bootstrap.startApplication("Chrome.xml");
//navigate to the web application
new GuiBrowser().navigateTo("https://localhost:8080/login");
//check the background color of the Sign-In button
assertEquals(Color.GREEN, new GuiButton("Sign
In").getBackground());
//check the placeholder property of the Username field
assertEquals("Username", new
GuiText("Username").getProperty("placeholder"));
//check the icon of the Username field
GuiImage("C:testuser-img.png", new GuiHtmlElement("user
icon")).waitForObject(3, 1);
© 2021 Maveryx srl.
All rights reserved.
Compatibility testing
• Compatibility testing checks whether the web application is
compatible with a variety of web browsers, hardware
platforms, operating systems, database and networks.
• Compatibility-Cross browser testing is verifying that the
website works and displays correctly in each of the major web
browsers like Chrome, Firefox, Edge, Safari, etc.
• Similarly, tests operating system compatibility must be
conducted on all available OSs including Windows, Linux or
Mac.
© 2021 Maveryx srl.
All rights reserved.
Example using Maveryx
//run the test using Maveryx + Chrome
Bootstrap.startApplication("Chrome");
…
//run the test using Maveryx + Firefox
Bootstrap.startApplication("Firefox");
…
//run the test using Maveryx + Edge
Bootstrap.startApplication("Edge");
…
© 2021 Maveryx srl.
All rights reserved.
Performance testing
• Performance testing is done to check whether and how
a web application works under various loads (increasing
number of concurrent users or transactions).
• Performance testing includes load testing and stress
testing which verifies how the application behaves
during normal and peak loads.
• Stress testing determines how the web application responds
to very high load
• Performance testing also tests for how the application
recovers from a breakdown due to heavy load.
© 2021 Maveryx srl.
All rights reserved.
Example using JMeter
Performance testing needs automated tools. A performance testing tool simulates
a group of users (visitors to the web application) sending requests to the target
server. The server response data is gathered for analysis, and the results showing
the performance of the web application is displayed visually in the form of charts
and reports.
© 2021 Maveryx srl.
All rights reserved.
Security Testing
• The aim of security testing is to uncover flaws, vulnerabilities
and threats in a web app, to determine whether the application
protects data and maintains functionality as intended also in
presence of malicious attacks
• Security testing deals with security aspects including
authentication (login) and access to secure web pages,
downloading files without authorization, session time out
management after long user inactivity and much more.
• The six basic security concepts that need to be covered by
security testing are: confidentiality, integrity, authentication,
availability, authorization and non-repudiation.
© 2021 Maveryx srl.
All rights reserved.
Database Testing
• Database testing is a process of testing the structure
and the data stored in the database
• Database testing allows verifying data accessing, data
validity, data integrity, query retrieving, data insertion,
deletion and modifications, and more…
• Database testing involves checking procedures,
schema, tables, transaction or triggers
© 2021 Maveryx srl.
All rights reserved.
Example using java.sql
// Database connection
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost/mytestdata", "root",
"");
// Get the content of the userinfo table from DB
ResultSet res = con.createStatement().executeQuery("select * from
userdata");
// Check the result
while (res.next()) {
assertEquals("Maveryx", (res.getString(1)));
assertEquals("Test automation framework",
(res.getString(2)));
}
Database testing mainly consists
of constructing queries to check
different database operations,
structures, and attributes
required by the web application
the database is for
© 2021 Maveryx srl.
All rights reserved.
Conclusion
• Complete testing of a web-based system before going live can help address issues
before the system is deployed to the public
• The aim of web testing is to find application failures due to
• running environment
• interaction between client and server
• frequent (daily) updates
• number of users
• dynamical nature
• complexity
• …
• Web testing is difficult and needs to have many testing types to be performed
including functionality, GUI, performance and security.

More Related Content

What's hot

Load testing with vs 2013
Load testing with vs 2013Load testing with vs 2013
Load testing with vs 2013Fahad Shiekh
 
Webservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsWebservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsH2kInfosys
 
Loadrunner presentation
Loadrunner presentationLoadrunner presentation
Loadrunner presentationmedsherb
 
Selenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web ApplicationsSelenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web Applicationsqooxdoo
 
Loadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue SolutionsLoadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue SolutionsRapidValue
 
Are Your Teams Writing Quality Code
Are Your Teams Writing Quality CodeAre Your Teams Writing Quality Code
Are Your Teams Writing Quality Codesentoh
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing AutomationAgileEngine
 
Testing with test_complete
Testing with test_completeTesting with test_complete
Testing with test_completebinuiweb
 
Automated Smoke Tests with Protractor
Automated Smoke Tests with ProtractorAutomated Smoke Tests with Protractor
Automated Smoke Tests with Protractor🌱 Dale Spoonemore
 
Remote Test Execution using TFS 2015 (RC2 and beyond)
Remote Test Execution using TFS 2015 (RC2 and beyond)Remote Test Execution using TFS 2015 (RC2 and beyond)
Remote Test Execution using TFS 2015 (RC2 and beyond)Allen Mathias
 
SoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSmartBear
 
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideAWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideRapidValue
 
Using Selenium to Improve a Teams Development Cycle
Using Selenium to Improve a Teams Development CycleUsing Selenium to Improve a Teams Development Cycle
Using Selenium to Improve a Teams Development Cycleseleniumconf
 
SOAPUI Test Design & Utilities
SOAPUI Test Design & UtilitiesSOAPUI Test Design & Utilities
SOAPUI Test Design & UtilitiesAkshay Sharma
 
Testing Java EE apps with Arquillian
Testing Java EE apps with ArquillianTesting Java EE apps with Arquillian
Testing Java EE apps with ArquillianIvan Ivanov
 
Web services testing
Web services testingWeb services testing
Web services testingRoman Khachko
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toNicolas Fränkel
 
Building Quality with Foundations of Mud
Building Quality with Foundations of MudBuilding Quality with Foundations of Mud
Building Quality with Foundations of Mudseleniumconf
 

What's hot (20)

Load testing with vs 2013
Load testing with vs 2013Load testing with vs 2013
Load testing with vs 2013
 
Webservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsWebservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview Questions
 
Loadrunner presentation
Loadrunner presentationLoadrunner presentation
Loadrunner presentation
 
Selenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web ApplicationsSelenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web Applications
 
Learn SoapUI
Learn SoapUILearn SoapUI
Learn SoapUI
 
Loadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue SolutionsLoadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue Solutions
 
Are Your Teams Writing Quality Code
Are Your Teams Writing Quality CodeAre Your Teams Writing Quality Code
Are Your Teams Writing Quality Code
 
JEE Programming - 07 EJB Programming
JEE Programming - 07 EJB ProgrammingJEE Programming - 07 EJB Programming
JEE Programming - 07 EJB Programming
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing Automation
 
Testing with test_complete
Testing with test_completeTesting with test_complete
Testing with test_complete
 
Automated Smoke Tests with Protractor
Automated Smoke Tests with ProtractorAutomated Smoke Tests with Protractor
Automated Smoke Tests with Protractor
 
Remote Test Execution using TFS 2015 (RC2 and beyond)
Remote Test Execution using TFS 2015 (RC2 and beyond)Remote Test Execution using TFS 2015 (RC2 and beyond)
Remote Test Execution using TFS 2015 (RC2 and beyond)
 
SoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPlugins
 
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideAWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
 
Using Selenium to Improve a Teams Development Cycle
Using Selenium to Improve a Teams Development CycleUsing Selenium to Improve a Teams Development Cycle
Using Selenium to Improve a Teams Development Cycle
 
SOAPUI Test Design & Utilities
SOAPUI Test Design & UtilitiesSOAPUI Test Design & Utilities
SOAPUI Test Design & Utilities
 
Testing Java EE apps with Arquillian
Testing Java EE apps with ArquillianTesting Java EE apps with Arquillian
Testing Java EE apps with Arquillian
 
Web services testing
Web services testingWeb services testing
Web services testing
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
 
Building Quality with Foundations of Mud
Building Quality with Foundations of MudBuilding Quality with Foundations of Mud
Building Quality with Foundations of Mud
 

Similar to Web testing

How to easily design and automate test cases.pdf
How to easily design and automate test cases.pdfHow to easily design and automate test cases.pdf
How to easily design and automate test cases.pdfMaveryx
 
Lecture32-Web-based-testing-II.pptx
Lecture32-Web-based-testing-II.pptxLecture32-Web-based-testing-II.pptx
Lecture32-Web-based-testing-II.pptxBalkrishanpatidar
 
Web application vulnerability assessment
Web application vulnerability assessmentWeb application vulnerability assessment
Web application vulnerability assessmentRavikumar Paghdal
 
Common Web Application Attacks
Common Web Application Attacks Common Web Application Attacks
Common Web Application Attacks Ahmed Sherif
 
Sweta_Tarekar_Resume
Sweta_Tarekar_ResumeSweta_Tarekar_Resume
Sweta_Tarekar_Resumesweta tarekar
 
Cross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficienciaCross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficienciaSoftware Guru
 
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike MartinNETUserGroupBern
 
Application for Automation Testing
Application for Automation TestingApplication for Automation Testing
Application for Automation TestingSarithaMallisetty
 
Reliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software ApplicationsReliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software ApplicationsCSEIJJournal
 
Web sever environmentA Web server is a program that uses HTTP (Hy.pdf
Web sever environmentA Web server is a program that uses HTTP (Hy.pdfWeb sever environmentA Web server is a program that uses HTTP (Hy.pdf
Web sever environmentA Web server is a program that uses HTTP (Hy.pdfaquacareser
 
Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...
Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...
Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...Esraa Farrag
 
DevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityDevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityAlert Logic
 

Similar to Web testing (20)

28791456 web-testing
28791456 web-testing28791456 web-testing
28791456 web-testing
 
How to easily design and automate test cases.pdf
How to easily design and automate test cases.pdfHow to easily design and automate test cases.pdf
How to easily design and automate test cases.pdf
 
Lecture32-Web-based-testing-II.pptx
Lecture32-Web-based-testing-II.pptxLecture32-Web-based-testing-II.pptx
Lecture32-Web-based-testing-II.pptx
 
Web application vulnerability assessment
Web application vulnerability assessmentWeb application vulnerability assessment
Web application vulnerability assessment
 
Selva_Selenium
Selva_SeleniumSelva_Selenium
Selva_Selenium
 
Common Web Application Attacks
Common Web Application Attacks Common Web Application Attacks
Common Web Application Attacks
 
Sweta_Tarekar_Resume
Sweta_Tarekar_ResumeSweta_Tarekar_Resume
Sweta_Tarekar_Resume
 
Cross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficienciaCross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficiencia
 
Updated resume
Updated resumeUpdated resume
Updated resume
 
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin1,2,3 … Testing : Is this thing on(line)? with Mike Martin
1,2,3 … Testing : Is this thing on(line)? with Mike Martin
 
Application for Automation Testing
Application for Automation TestingApplication for Automation Testing
Application for Automation Testing
 
Chinnasamy Manickam
Chinnasamy ManickamChinnasamy Manickam
Chinnasamy Manickam
 
Reliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software ApplicationsReliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software Applications
 
kishore
kishorekishore
kishore
 
ansari
ansariansari
ansari
 
Web sever environmentA Web server is a program that uses HTTP (Hy.pdf
Web sever environmentA Web server is a program that uses HTTP (Hy.pdfWeb sever environmentA Web server is a program that uses HTTP (Hy.pdf
Web sever environmentA Web server is a program that uses HTTP (Hy.pdf
 
Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...
Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...
Web Engineering: A Practitioner Approach -Testing web app - Content Managemen...
 
Mayur_Resume (2) (1)
Mayur_Resume (2) (1)Mayur_Resume (2) (1)
Mayur_Resume (2) (1)
 
Types of Non Functional Testing
Types of Non Functional TestingTypes of Non Functional Testing
Types of Non Functional Testing
 
DevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityDevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to Security
 

More from Maveryx

Codeless Web testing: a keyword-driven example with Excel
Codeless Web testing: a keyword-driven example with ExcelCodeless Web testing: a keyword-driven example with Excel
Codeless Web testing: a keyword-driven example with ExcelMaveryx
 
Keywords-driven testing vs Scripted automation
Keywords-driven testing vs Scripted automationKeywords-driven testing vs Scripted automation
Keywords-driven testing vs Scripted automationMaveryx
 
Stf 2019 workshop - enhanced test automation for web and desktop apps
Stf 2019   workshop - enhanced test automation for web and desktop appsStf 2019   workshop - enhanced test automation for web and desktop apps
Stf 2019 workshop - enhanced test automation for web and desktop appsMaveryx
 
Keyword Driven Testing
Keyword Driven TestingKeyword Driven Testing
Keyword Driven TestingMaveryx
 
Data Driven Testing
Data Driven TestingData Driven Testing
Data Driven TestingMaveryx
 
Testing Android applications with Maveryx
Testing Android applications with MaveryxTesting Android applications with Maveryx
Testing Android applications with MaveryxMaveryx
 
Testing Java applications with Maveryx
Testing Java applications with MaveryxTesting Java applications with Maveryx
Testing Java applications with MaveryxMaveryx
 
Maveryx - Product Presentation
Maveryx - Product PresentationMaveryx - Product Presentation
Maveryx - Product PresentationMaveryx
 

More from Maveryx (8)

Codeless Web testing: a keyword-driven example with Excel
Codeless Web testing: a keyword-driven example with ExcelCodeless Web testing: a keyword-driven example with Excel
Codeless Web testing: a keyword-driven example with Excel
 
Keywords-driven testing vs Scripted automation
Keywords-driven testing vs Scripted automationKeywords-driven testing vs Scripted automation
Keywords-driven testing vs Scripted automation
 
Stf 2019 workshop - enhanced test automation for web and desktop apps
Stf 2019   workshop - enhanced test automation for web and desktop appsStf 2019   workshop - enhanced test automation for web and desktop apps
Stf 2019 workshop - enhanced test automation for web and desktop apps
 
Keyword Driven Testing
Keyword Driven TestingKeyword Driven Testing
Keyword Driven Testing
 
Data Driven Testing
Data Driven TestingData Driven Testing
Data Driven Testing
 
Testing Android applications with Maveryx
Testing Android applications with MaveryxTesting Android applications with Maveryx
Testing Android applications with Maveryx
 
Testing Java applications with Maveryx
Testing Java applications with MaveryxTesting Java applications with Maveryx
Testing Java applications with Maveryx
 
Maveryx - Product Presentation
Maveryx - Product PresentationMaveryx - Product Presentation
Maveryx - Product Presentation
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Web testing

  • 1. © 2021 Maveryx srl. All rights reserved. Web Testing Web Application automated testing
  • 2. © 2021 Maveryx srl. All rights reserved. What is a web application? • A Web application is a computer program that is stored on a remote server and delivered over the internet through a browser interface. • accessible using any web browser. • running on a server (or cloud) • uses many web technologies to perform various tasks • is dynamic • …
  • 3. © 2021 Maveryx srl. All rights reserved. How does a web-application work? • Step 1: the user accesses a web application via a web browser or mobile application, sending a request to the web server over the internet • Step 2: the web server forwards the request to the web application server • Step 3: the web application server performs the requested task – such as querying the database or processing the data – then generates the results of the requested data • Step 4: the web application server sends the results back to the web server • Step 5: the web server delivers the requested information to the client (desktop, mobile device, tablet, etc.) and the information are displayed to the user
  • 4. © 2021 Maveryx srl. All rights reserved. Web application architecture Frontend: the part of a web application that the user interacts with. The frontend is built using technologies such as Hypertext Markup Language (HTML), JavaScript and Cascading Style Sheets (CSS). Backend: the server-side of the web application. The backend is built using technologies such as Ruby, Java, C++/C/C#, Python and PHP. It also supports popular databases including MySQL and PostgreSQL.
  • 5. © 2021 Maveryx srl. All rights reserved. What is testing? • Testing is the process of executing a program with the intent of finding errors. (Myers) • Testing is the process of establishing confidence that a program o system does what is supposed to. (Hetzel) • The process of exercising software to verify that it satisfies specified requirements and to detect errors. (IEEE) • The process with the objective of preventing defects (Test Maturity Model - Level 5)
  • 6. © 2021 Maveryx srl. All rights reserved. What is web testing? • Web testing is the process of testing a web-based application for functionality, performance, accessibility, security and more • The aim of web testing is to find bugs in the web application being tested. • Web testing allows verifying that a web application meets stated or implied functionality, security, usability, accessibility, visual, and performance requirements, before it goes live to end users.
  • 7. © 2021 Maveryx srl. All rights reserved. Why web testing? • Deploying web applications into the mass market without proper testing will result in Poor quality Unsatisfied users Negative feedbacks Loss of users and money Poor Quality Unsatisfied users Negative feedbacks Loss of users and money
  • 8. © 2021 Maveryx srl. All rights reserved. Web Testing Types 1. Functionality Testing 2. Graphical User Interface Testing 3. Cross Browser/Compatibility Testing 4. Performance Testing 5. Security Testing 6. Database Testing 7. Usability Testing 8. ... 8
  • 9. © 2021 Maveryx srl. All rights reserved. Functional Testing • Functional testing verifies that all the functionalities of the web application operate in conformance with their specification. • Verify that the web application does "what" is supposed to do. • Functional testing uses black-box techniques • NO knowledge of the internal web application logic • Tests are derived from the specification • Functional testing includes several testing types such as unit, smoke, sanity, integration, system, and regression tests.
  • 10. © 2021 Maveryx srl. All rights reserved. Example using Maveryx //start browser Bootstrap.startApplication("Chrome.xml"); //navigate to the web application new GuiBrowser().navigateTo("https://localhost:8080/login"); //enter username new GuiText("Username").setText("maveryx"); //enter passowrd new GuiPasswordText("Password").setText("N6$J#3ug"); //click to log in new GuiButton("Sign In").click(); //check the successful message GuiHtmlElement message = new GuiHtmlElement(AccessibleRoleMaveryx.WEB_H1); assertEquals("Welcome!", message.getText());
  • 11. © 2021 Maveryx srl. All rights reserved. GUI Testing • GUI testing is the process of testing the visual elements to verify that they meet the expected performance and functionality. • GUI testing evaluates design elements such as layout, colors, fonts, font sizes, labels, text boxes, text formatting, captions, buttons, lists, icons, links and more… • GUI testing not only tests the user interface, but it also allows end-to-end system testing.
  • 12. © 2021 Maveryx srl. All rights reserved. Example using Maveryx //start browser Bootstrap.startApplication("Chrome.xml"); //navigate to the web application new GuiBrowser().navigateTo("https://localhost:8080/login"); //check the background color of the Sign-In button assertEquals(Color.GREEN, new GuiButton("Sign In").getBackground()); //check the placeholder property of the Username field assertEquals("Username", new GuiText("Username").getProperty("placeholder")); //check the icon of the Username field GuiImage("C:testuser-img.png", new GuiHtmlElement("user icon")).waitForObject(3, 1);
  • 13. © 2021 Maveryx srl. All rights reserved. Compatibility testing • Compatibility testing checks whether the web application is compatible with a variety of web browsers, hardware platforms, operating systems, database and networks. • Compatibility-Cross browser testing is verifying that the website works and displays correctly in each of the major web browsers like Chrome, Firefox, Edge, Safari, etc. • Similarly, tests operating system compatibility must be conducted on all available OSs including Windows, Linux or Mac.
  • 14. © 2021 Maveryx srl. All rights reserved. Example using Maveryx //run the test using Maveryx + Chrome Bootstrap.startApplication("Chrome"); … //run the test using Maveryx + Firefox Bootstrap.startApplication("Firefox"); … //run the test using Maveryx + Edge Bootstrap.startApplication("Edge"); …
  • 15. © 2021 Maveryx srl. All rights reserved. Performance testing • Performance testing is done to check whether and how a web application works under various loads (increasing number of concurrent users or transactions). • Performance testing includes load testing and stress testing which verifies how the application behaves during normal and peak loads. • Stress testing determines how the web application responds to very high load • Performance testing also tests for how the application recovers from a breakdown due to heavy load.
  • 16. © 2021 Maveryx srl. All rights reserved. Example using JMeter Performance testing needs automated tools. A performance testing tool simulates a group of users (visitors to the web application) sending requests to the target server. The server response data is gathered for analysis, and the results showing the performance of the web application is displayed visually in the form of charts and reports.
  • 17. © 2021 Maveryx srl. All rights reserved. Security Testing • The aim of security testing is to uncover flaws, vulnerabilities and threats in a web app, to determine whether the application protects data and maintains functionality as intended also in presence of malicious attacks • Security testing deals with security aspects including authentication (login) and access to secure web pages, downloading files without authorization, session time out management after long user inactivity and much more. • The six basic security concepts that need to be covered by security testing are: confidentiality, integrity, authentication, availability, authorization and non-repudiation.
  • 18. © 2021 Maveryx srl. All rights reserved. Database Testing • Database testing is a process of testing the structure and the data stored in the database • Database testing allows verifying data accessing, data validity, data integrity, query retrieving, data insertion, deletion and modifications, and more… • Database testing involves checking procedures, schema, tables, transaction or triggers
  • 19. © 2021 Maveryx srl. All rights reserved. Example using java.sql // Database connection Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mytestdata", "root", ""); // Get the content of the userinfo table from DB ResultSet res = con.createStatement().executeQuery("select * from userdata"); // Check the result while (res.next()) { assertEquals("Maveryx", (res.getString(1))); assertEquals("Test automation framework", (res.getString(2))); } Database testing mainly consists of constructing queries to check different database operations, structures, and attributes required by the web application the database is for
  • 20. © 2021 Maveryx srl. All rights reserved. Conclusion • Complete testing of a web-based system before going live can help address issues before the system is deployed to the public • The aim of web testing is to find application failures due to • running environment • interaction between client and server • frequent (daily) updates • number of users • dynamical nature • complexity • … • Web testing is difficult and needs to have many testing types to be performed including functionality, GUI, performance and security.