SlideShare a Scribd company logo
1 of 9
Testing Dynamic Web Sites V. Narayan Raman Tyto Software
Xpath does not query by text well     <div>This is <b>Bold</b></div> //div[text()=‘This is Bold’] ? _div(“This is Bold”) Waits are needed at each step Explicit waits: Have to code for worst case scenario Implicit waits: Recover and retry Tester is forced to understand HTML structures and Javascript nuances.  Common Problems
Proxy based approach Injects Javascript into browser Any Javascript enabled browser, any OS Drives a real browser Identifies elements smartly Implicitly waits for AJAX, page loads and timeouts Sahi – Web Test Automation Tool
//table[@id='listing']/tbody/tr[2]/td[4]/input //table[@id='listing']/tbody/tr[3]/td[4]/input Or  _textbox(“q”, _near(_cell("Core Java"))) _textbox(“q”, _near(_cell("Ruby for Rails"))) XPathvs Sahi APIs
Visible properties take precedence Tests should reflect what the tester sees Not what the developer wrote Frames, iframes, layouts are all developer aids to partition information. They need not be visible in tests, though they should be assertable. Waits are inherent in a web application and should be automatically handled Sahi Philosophy
Use various visible attributes first Text, Value, Alt, Title etc. Allow identification in a context _checkbox(“x”, _near(_cell(“name”))) Allow Regular Expression and fuzzy matches Normalize white spaces across browsers Automatically look through frames and iframes. Sahi Identification Strategy
The simplest possible thing What is not allowed by the Browser Sandbox, delegate to proxy File Uploads 401 Authentication File downloads Browsers may change Javascript and Proxies are here to stay Proxy based approach
Allows recording, debugging and object identification on any browser via injected Javascript Can add automation on the fly Even wrap flash/applets etc. when needed Moving between domains, even accessing multi domains in frames/iframes are possible. Proxy based approach
Allows powerful Sahi APIs, normalized across browsers Allows monitoring of AJAX requests and Frame loads to automatically wait till no activity Javascript events do not require focus, allowing parallel playback Injected Javascript

More Related Content

Similar to GTAC 2010 -

Test strategy for web development
Test strategy for web developmentTest strategy for web development
Test strategy for web development
alice yang
 
Single Page WebApp Architecture
Single Page WebApp ArchitectureSingle Page WebApp Architecture
Single Page WebApp Architecture
Morgan Cheng
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)
Samnang Chhun
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
Carles Farré
 

Similar to GTAC 2010 - (20)

Web performance testing
Web performance testingWeb performance testing
Web performance testing
 
Automated Frontend Testing
Automated Frontend TestingAutomated Frontend Testing
Automated Frontend Testing
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
 
Jsp
JspJsp
Jsp
 
Ajax
AjaxAjax
Ajax
 
JSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTLJSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTL
 
Test strategy for web development
Test strategy for web developmentTest strategy for web development
Test strategy for web development
 
GWT
GWTGWT
GWT
 
Single Page WebApp Architecture
Single Page WebApp ArchitectureSingle Page WebApp Architecture
Single Page WebApp Architecture
 
Top 10 Web Security Vulnerabilities
Top 10 Web Security VulnerabilitiesTop 10 Web Security Vulnerabilities
Top 10 Web Security Vulnerabilities
 
Developing PHP Web Applications with the Raxan Framework
Developing PHP Web Applications with the Raxan FrameworkDeveloping PHP Web Applications with the Raxan Framework
Developing PHP Web Applications with the Raxan Framework
 
Dhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran 2008-2009 Quick Test Pro PresentationDhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran 2008-2009 Quick Test Pro Presentation
 
First QTP Tutorial
First QTP TutorialFirst QTP Tutorial
First QTP Tutorial
 
QTP Tutorial Slides Presentation.
QTP Tutorial Slides Presentation.QTP Tutorial Slides Presentation.
QTP Tutorial Slides Presentation.
 
Understanding Web Applications and Web Testing Tools - QAConf
Understanding Web Applications and Web Testing Tools - QAConfUnderstanding Web Applications and Web Testing Tools - QAConf
Understanding Web Applications and Web Testing Tools - QAConf
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

GTAC 2010 -

  • 1. Testing Dynamic Web Sites V. Narayan Raman Tyto Software
  • 2. Xpath does not query by text well <div>This is <b>Bold</b></div> //div[text()=‘This is Bold’] ? _div(“This is Bold”) Waits are needed at each step Explicit waits: Have to code for worst case scenario Implicit waits: Recover and retry Tester is forced to understand HTML structures and Javascript nuances. Common Problems
  • 3. Proxy based approach Injects Javascript into browser Any Javascript enabled browser, any OS Drives a real browser Identifies elements smartly Implicitly waits for AJAX, page loads and timeouts Sahi – Web Test Automation Tool
  • 4. //table[@id='listing']/tbody/tr[2]/td[4]/input //table[@id='listing']/tbody/tr[3]/td[4]/input Or _textbox(“q”, _near(_cell("Core Java"))) _textbox(“q”, _near(_cell("Ruby for Rails"))) XPathvs Sahi APIs
  • 5. Visible properties take precedence Tests should reflect what the tester sees Not what the developer wrote Frames, iframes, layouts are all developer aids to partition information. They need not be visible in tests, though they should be assertable. Waits are inherent in a web application and should be automatically handled Sahi Philosophy
  • 6. Use various visible attributes first Text, Value, Alt, Title etc. Allow identification in a context _checkbox(“x”, _near(_cell(“name”))) Allow Regular Expression and fuzzy matches Normalize white spaces across browsers Automatically look through frames and iframes. Sahi Identification Strategy
  • 7. The simplest possible thing What is not allowed by the Browser Sandbox, delegate to proxy File Uploads 401 Authentication File downloads Browsers may change Javascript and Proxies are here to stay Proxy based approach
  • 8. Allows recording, debugging and object identification on any browser via injected Javascript Can add automation on the fly Even wrap flash/applets etc. when needed Moving between domains, even accessing multi domains in frames/iframes are possible. Proxy based approach
  • 9. Allows powerful Sahi APIs, normalized across browsers Allows monitoring of AJAX requests and Frame loads to automatically wait till no activity Javascript events do not require focus, allowing parallel playback Injected Javascript