SlideShare a Scribd company logo
Testing Ajax Applications when to test, what to test, how to test Ajax applications Square One University Series
For the latest version of this presentation,  visit  http://slideshare.com/ted.husted For the latest version of source code, visit  http://code.google.com/p/yazaar/  For followup questions,  write  [email_address] Testing Ajax Applications
Abstract Not long ago, testing Ajax meant play-testing by hand.  Today, tools can simplify and automate Ajax testing. In this session, we explore: How Ajax works, and why it complicates testing; When, where, and how to test Ajax components; How to test with continuous integration systems.
Testing Ajax Applications Ajax 101 How Ajax works Why it complicate testing
Testing Ajax Applications Ajax 101 How Ajax works Why it complicate testing Tool Review Selenium IDE and Remote Control Hudson Continuous Integration Server
Testing Ajax Applications Ajax 101 How Ajax works Why it complicate testing Tool Review Selenium IDE and Remote Control Hudson Continuous Integration Server Ajax Testing in Action  Live Coding Demonstration Eclipse + Selenium + Subversion + Hudson
Ajax 101 Marketing term coined in 2005  Set of technologies
Ajax 101 Marketing term coined in 2005  Set of technologies In use since 1999  (even 1996)
Ajax 101 Marketing term coined in 2005  Set of technologies In use since 1999  (even 1996) An acronym made the difference Would you buy a  pre-owned technology from this man?
http://www.adaptivepath.com/ideas/essays/archives/000385.php
http://msexchangeteam.com/archive/2005/06/21/406646.aspx “ It was [the] desire to look,   act and feel like Outlook   that caused us to move   web applications forward   in a new evolutionary path.”
 
 
http://www.mailsite.com/Products/express-pro-ajax-web-email-calendar-client.asp
http://-x-web-email-calenda-  http://www.slideshare.net/satyajeet_02/web-20-5316/
http://www.mailsite.com/Products/express-pro-ajax-web-email-calendar-client.asp
Open QA Selenium Selenium is a suite of tools http://selenium.openqa.org/documentation/
Open QA Selenium Selenium is a suite of tools Selenium IDE   records and runs tests http://selenium.openqa.org/documentation/
Open QA Selenium Selenium is a suite of tools Selenium IDE   records and runs tests Selenium Remote Control runs across multiple platforms http://selenium.openqa.org/documentation /
Open QA Selenium Selenium is a suite of tools Selenium IDE   records and runs tests Selenium Remote Control runs across multiple platforms Selenium Grid   runs across multiple machines http://selenium.openqa.org/documentation/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<tr><td> open </td><td >Welcome.action </td><td></td></tr> <tr><td> assertTitle </td><td> MailReader </td><td></td></tr> <tr><td> clickAndWait </td><td> link=Register with MailReader </td><td></td> <tr><td> assertTitle </td><td> MailReader - Register </td><td></td></tr> <tr><td> type </td><td> Register_save_username </td><td> trillian </td></tr> <tr><td> type </td><td> Register_save_password </td><td> astra </td></tr> <tr><td> type </td><td> Register_save_password2 </td><td> astra </td></tr> <tr><td> type </td><td> Register_save_fullName </td><td> Tricia McMillian< /t <tr><td> type </td><td> Register_save_fromAddress </td><td> [email_address] <tr><td> clickAndWait </td><td> Register_save_Save </td><td></td></tr> <tr><td> assertTitle </td><td> MailReader - Menu </td><td></td></tr> <tr><td> assertTextPresent </td><td> Tricia McMillian </td><td></td></tr>
 
 
RegisterTrillianTest.java public class RegisterTrillianTest extends SeleneseTestCase { public void testRegisterTrillian() throws Exception {    selenium.open(&quot; /menu/Welcome.action &quot;);   assertEquals(&quot; MailReader &quot;, selenium.getTitle());   selenium.click(&quot; link=Register with MailReader &quot;);   selenium.waitForPageToLoad(&quot; 30000 &quot;);   assertEquals(&quot; MailReader - Register &quot;, selenium.getTitle());   selenium.type(&quot; Register_save_username &quot;, &quot; trillian &quot;);   selenium.type(&quot; Register_save_password &quot;, &quot; astra &quot;);   selenium.type(&quot; Register_save_password2 &quot;, &quot; astra &quot;);   selenium.type(&quot; Register_save_fullName &quot;, &quot; Tricia McMillian &quot;);   selenium.type(&quot; Register_save_fromAddress &quot;, &quot; [email_address] &quot;);   selenium.click(&quot; Register_save_Save &quot;);   selenium.waitForPageToLoad(&quot; 30000 &quot;);   assertEquals(&quot; MailReader - Menu &quot;, selenium.getTitle());   checkForVerificationErrors(); }
Selenium – Key Features Create test scripts using Selenium Commands.
Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications.
Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications.  Compile test scripts in native languages, such as Java, C#, Ruby.
Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications.  Compile test scripts in native languages, such as Java, C#, Ruby. Integrate scripts with other test  suites and continuous  integrations systems.
Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications.  Compile test scripts in native languages, such as Java, C#, Ruby. Integrate scripts with other test  suites and continuous  integrations systems.
Selenium – Key Features Support for major browsers Firefox 2+, (RC and Core) IE7, Safari 2+, Opera 8+, Windows, OS X, Linus, Solaris. Current Releases  IDE, RC, Grid, 2008; Core: 2007 Since 2005 License – Apache ~11 Team Members  ThoughtWorks project
http://clearspace.openqa.org/index.jspa
OpenQA Selenium Form Support Asynchronous Support Server Support IDE Support  CI Support
Firefox 3 and Selenium RC The current Remote Control beta release (2007) is not compatible with FF3 Minor configuration issue with version numbering in FF3 Hot patch available Best Advice: Install FF2 in default location, and FF3 in an alternate spot.
OpenQA Selenium Strengths    Granual toolset Large, dedicated team Steady releases Active community Weaknesses Complex setup Superficial suites Choppy docs  Perpetual beta
OpenQA Selenium Bottom Line Use to create acceptance tests Complements unit tests jsUnit, YUI Test, qUnit
Hudson Continuous build process framework Runs as a Java  web application BYO Container or standalone mode https://hudson.dev.java.net/
 
 
https://hudson.dev.java.net/
http://cruisecontrol.sourceforge.net/dashboard.html
 
Hudson – Key Features RSS/E-mail/IM Integration JUnit/TestNG test reporting Permanent links Change set support After-the-fact tagging History trend, Distributed builds, File fingerprinting, Plugins.
Hudson – Key Features Quick Install, Free style setup  – Runs standalone, instant project checkout, automatic build configuration. Visual Configuration  – No XML required. Friendly Dashboard  - Project status at a glance.
Hudson – Key Features Regular releases  (daily/weekly milestones) License -- MIT / Creative Community
Hudson Strengths    Simple setup Slick UI Well documented Regular releases Active community Weaknesses Java container Committers?
http://cruisecontrol.sourceforge.net/overview.html
Let's Code It!
Ajax Testing Tool Review During the session, we covered when, what, and how to test Ajax applications  creating automatic tests with various tools testing with IDEs and continuous Integration systems
Square One University Series

More Related Content

PPTX
Automation Testing by Selenium Web Driver
PPTX
Selenium web driver
PDF
Mobile Testing with Selenium 2 by Jason Huggins
PDF
Selenium Overview
PPTX
Selenium WebDriver
PPTX
Breaking free from static abuse in test automation frameworks and using Sprin...
PPTX
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
PDF
Selenium Framework using Java | Selenium Tutorial | Selenium Training Online ...
Automation Testing by Selenium Web Driver
Selenium web driver
Mobile Testing with Selenium 2 by Jason Huggins
Selenium Overview
Selenium WebDriver
Breaking free from static abuse in test automation frameworks and using Sprin...
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
Selenium Framework using Java | Selenium Tutorial | Selenium Training Online ...

What's hot (17)

PDF
Automatic Functional Testing with Selenium and SauceLabs
PDF
How-to Create a 'Lock' record in Salesforce
PPTX
Using the Tooling API to Generate Apex SOAP Web Service Clients
PPTX
How to configure Appium with android IDE & eclipse
PPTX
Practical Application of the API Security Top Ten: A Tester's Perspective
PPTX
Automated UI testing done right (DDDSydney)
PDF
What's New in AppFuse 2.0
PPT
Asp.net tips
PDF
Selenium RC - Web Application Testing Tool
PDF
Selenium
PDF
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
PDF
Making Sense of APEX Security by Christoph Ruepprich
PPTX
Selenium using Java
 
DOCX
Multiple Submit Button Test App
PDF
Apex behind the scenes
PDF
Ted Husted Presentation Testing Ajax Applications Ae2009
PPTX
It’s your time to ask questions
Automatic Functional Testing with Selenium and SauceLabs
How-to Create a 'Lock' record in Salesforce
Using the Tooling API to Generate Apex SOAP Web Service Clients
How to configure Appium with android IDE & eclipse
Practical Application of the API Security Top Ten: A Tester's Perspective
Automated UI testing done right (DDDSydney)
What's New in AppFuse 2.0
Asp.net tips
Selenium RC - Web Application Testing Tool
Selenium
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
Making Sense of APEX Security by Christoph Ruepprich
Selenium using Java
 
Multiple Submit Button Test App
Apex behind the scenes
Ted Husted Presentation Testing Ajax Applications Ae2009
It’s your time to ask questions
Ad

Similar to Testing Ajax Web Applications (20)

PDF
Testing Tools
PDF
Testing Web Application Security
DOCX
Testing and Automation
ODP
PPTX
Selenium ppt
PDF
Testing Ajax Applications
DOC
PDF
full-stack-webapp-testing-with-selenium-and-rails.pdf
PPT
selenium.ppt
PPT
selenium.ppt
PPT
selenium.ppt
PPT
Selenium
ODP
Introduction to Selenium
PDF
Selenium Automation Testing - A Complete Guide
DOCX
What is selenium
PDF
Selenium Automation Testing - A Complete Guide.pdf
PPTX
Automated Testing on Web Applications
PDF
Selenium Automation Testing - A Complete Guide.pdf
PPTX
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
PDF
Basics of Selenium IDE,Core, Remote Control
Testing Tools
Testing Web Application Security
Testing and Automation
Selenium ppt
Testing Ajax Applications
full-stack-webapp-testing-with-selenium-and-rails.pdf
selenium.ppt
selenium.ppt
selenium.ppt
Selenium
Introduction to Selenium
Selenium Automation Testing - A Complete Guide
What is selenium
Selenium Automation Testing - A Complete Guide.pdf
Automated Testing on Web Applications
Selenium Automation Testing - A Complete Guide.pdf
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
Basics of Selenium IDE,Core, Remote Control
Ad

More from Ted Husted (16)

PPTX
Ship It!
PDF
.NET @ apache.org
PDF
The secret life_of_open_source
PDF
Open Source Secret Sauce - Lugor Sep 2011
PDF
NU FaceBook 101 JCC 2010
PDF
Developing java Web Applications Using Google Apps RJUG 2011
PDF
Open source secret_sauce_apache_con_2010
PDF
Drupal kickstart-workshop
PDF
Open source-secret-sauce-rit-2010
PDF
Agile Analysis with Use Cases: Balancing Utility with Simplicity
PDF
API Doc Smackdown
PDF
Testing The Testers
PDF
Coding Ajax
PDF
Coding Ajax
PPT
Retrofitting
PDF
Open Source Secret Sauce
Ship It!
.NET @ apache.org
The secret life_of_open_source
Open Source Secret Sauce - Lugor Sep 2011
NU FaceBook 101 JCC 2010
Developing java Web Applications Using Google Apps RJUG 2011
Open source secret_sauce_apache_con_2010
Drupal kickstart-workshop
Open source-secret-sauce-rit-2010
Agile Analysis with Use Cases: Balancing Utility with Simplicity
API Doc Smackdown
Testing The Testers
Coding Ajax
Coding Ajax
Retrofitting
Open Source Secret Sauce

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
A Presentation on Artificial Intelligence
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Machine learning based COVID-19 study performance prediction
MYSQL Presentation for SQL database connectivity
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Review of recent advances in non-invasive hemoglobin estimation
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Monthly Chronicles - July 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
A Presentation on Artificial Intelligence
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
20250228 LYD VKU AI Blended-Learning.pptx
Big Data Technologies - Introduction.pptx
Machine learning based COVID-19 study performance prediction

Testing Ajax Web Applications

  • 1. Testing Ajax Applications when to test, what to test, how to test Ajax applications Square One University Series
  • 2. For the latest version of this presentation, visit http://slideshare.com/ted.husted For the latest version of source code, visit http://code.google.com/p/yazaar/ For followup questions, write [email_address] Testing Ajax Applications
  • 3. Abstract Not long ago, testing Ajax meant play-testing by hand. Today, tools can simplify and automate Ajax testing. In this session, we explore: How Ajax works, and why it complicates testing; When, where, and how to test Ajax components; How to test with continuous integration systems.
  • 4. Testing Ajax Applications Ajax 101 How Ajax works Why it complicate testing
  • 5. Testing Ajax Applications Ajax 101 How Ajax works Why it complicate testing Tool Review Selenium IDE and Remote Control Hudson Continuous Integration Server
  • 6. Testing Ajax Applications Ajax 101 How Ajax works Why it complicate testing Tool Review Selenium IDE and Remote Control Hudson Continuous Integration Server Ajax Testing in Action Live Coding Demonstration Eclipse + Selenium + Subversion + Hudson
  • 7. Ajax 101 Marketing term coined in 2005 Set of technologies
  • 8. Ajax 101 Marketing term coined in 2005 Set of technologies In use since 1999 (even 1996)
  • 9. Ajax 101 Marketing term coined in 2005 Set of technologies In use since 1999 (even 1996) An acronym made the difference Would you buy a pre-owned technology from this man?
  • 11. http://msexchangeteam.com/archive/2005/06/21/406646.aspx “ It was [the] desire to look, act and feel like Outlook that caused us to move web applications forward in a new evolutionary path.”
  • 12.  
  • 13.  
  • 17. Open QA Selenium Selenium is a suite of tools http://selenium.openqa.org/documentation/
  • 18. Open QA Selenium Selenium is a suite of tools Selenium IDE records and runs tests http://selenium.openqa.org/documentation/
  • 19. Open QA Selenium Selenium is a suite of tools Selenium IDE records and runs tests Selenium Remote Control runs across multiple platforms http://selenium.openqa.org/documentation /
  • 20. Open QA Selenium Selenium is a suite of tools Selenium IDE records and runs tests Selenium Remote Control runs across multiple platforms Selenium Grid runs across multiple machines http://selenium.openqa.org/documentation/
  • 21.  
  • 22.  
  • 23.  
  • 24.  
  • 25.  
  • 26.  
  • 27.  
  • 28.  
  • 29.  
  • 30.  
  • 31.  
  • 32.  
  • 33.  
  • 34.  
  • 35. <tr><td> open </td><td >Welcome.action </td><td></td></tr> <tr><td> assertTitle </td><td> MailReader </td><td></td></tr> <tr><td> clickAndWait </td><td> link=Register with MailReader </td><td></td> <tr><td> assertTitle </td><td> MailReader - Register </td><td></td></tr> <tr><td> type </td><td> Register_save_username </td><td> trillian </td></tr> <tr><td> type </td><td> Register_save_password </td><td> astra </td></tr> <tr><td> type </td><td> Register_save_password2 </td><td> astra </td></tr> <tr><td> type </td><td> Register_save_fullName </td><td> Tricia McMillian< /t <tr><td> type </td><td> Register_save_fromAddress </td><td> [email_address] <tr><td> clickAndWait </td><td> Register_save_Save </td><td></td></tr> <tr><td> assertTitle </td><td> MailReader - Menu </td><td></td></tr> <tr><td> assertTextPresent </td><td> Tricia McMillian </td><td></td></tr>
  • 36.  
  • 37.  
  • 38. RegisterTrillianTest.java public class RegisterTrillianTest extends SeleneseTestCase { public void testRegisterTrillian() throws Exception { selenium.open(&quot; /menu/Welcome.action &quot;); assertEquals(&quot; MailReader &quot;, selenium.getTitle()); selenium.click(&quot; link=Register with MailReader &quot;); selenium.waitForPageToLoad(&quot; 30000 &quot;); assertEquals(&quot; MailReader - Register &quot;, selenium.getTitle()); selenium.type(&quot; Register_save_username &quot;, &quot; trillian &quot;); selenium.type(&quot; Register_save_password &quot;, &quot; astra &quot;); selenium.type(&quot; Register_save_password2 &quot;, &quot; astra &quot;); selenium.type(&quot; Register_save_fullName &quot;, &quot; Tricia McMillian &quot;); selenium.type(&quot; Register_save_fromAddress &quot;, &quot; [email_address] &quot;); selenium.click(&quot; Register_save_Save &quot;); selenium.waitForPageToLoad(&quot; 30000 &quot;); assertEquals(&quot; MailReader - Menu &quot;, selenium.getTitle()); checkForVerificationErrors(); }
  • 39. Selenium – Key Features Create test scripts using Selenium Commands.
  • 40. Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications.
  • 41. Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications. Compile test scripts in native languages, such as Java, C#, Ruby.
  • 42. Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications. Compile test scripts in native languages, such as Java, C#, Ruby. Integrate scripts with other test suites and continuous integrations systems.
  • 43. Selenium – Key Features Create test scripts using Selenium Commands. Run tests in against live applications. Compile test scripts in native languages, such as Java, C#, Ruby. Integrate scripts with other test suites and continuous integrations systems.
  • 44. Selenium – Key Features Support for major browsers Firefox 2+, (RC and Core) IE7, Safari 2+, Opera 8+, Windows, OS X, Linus, Solaris. Current Releases IDE, RC, Grid, 2008; Core: 2007 Since 2005 License – Apache ~11 Team Members ThoughtWorks project
  • 46. OpenQA Selenium Form Support Asynchronous Support Server Support IDE Support CI Support
  • 47. Firefox 3 and Selenium RC The current Remote Control beta release (2007) is not compatible with FF3 Minor configuration issue with version numbering in FF3 Hot patch available Best Advice: Install FF2 in default location, and FF3 in an alternate spot.
  • 48. OpenQA Selenium Strengths Granual toolset Large, dedicated team Steady releases Active community Weaknesses Complex setup Superficial suites Choppy docs Perpetual beta
  • 49. OpenQA Selenium Bottom Line Use to create acceptance tests Complements unit tests jsUnit, YUI Test, qUnit
  • 50. Hudson Continuous build process framework Runs as a Java web application BYO Container or standalone mode https://hudson.dev.java.net/
  • 51.  
  • 52.  
  • 55.  
  • 56. Hudson – Key Features RSS/E-mail/IM Integration JUnit/TestNG test reporting Permanent links Change set support After-the-fact tagging History trend, Distributed builds, File fingerprinting, Plugins.
  • 57. Hudson – Key Features Quick Install, Free style setup – Runs standalone, instant project checkout, automatic build configuration. Visual Configuration – No XML required. Friendly Dashboard - Project status at a glance.
  • 58. Hudson – Key Features Regular releases (daily/weekly milestones) License -- MIT / Creative Community
  • 59. Hudson Strengths Simple setup Slick UI Well documented Regular releases Active community Weaknesses Java container Committers?
  • 62. Ajax Testing Tool Review During the session, we covered when, what, and how to test Ajax applications creating automatic tests with various tools testing with IDEs and continuous Integration systems