SlideShare une entreprise Scribd logo
1  sur  20
Using Selenium & Cucumber toTest an HIS Andy Tinkham Selenium Conference, San Francisco April 2011
Background Information Healthland Web-based HIS (Clinicals, Financials) Geared to rural hospitals (<50 beds) .NET-based backend UI is native HTML/CSS/JavaScript in browser (no Flash or non-standard elements) Me 16 years of testing experience (almost all automated) Started using Selenium in 2007
Goals of Current Automation Effort Run on all our supported platforms & browsers Rapid deployment in new environment Keep up with developers Avoid vendor & script lock-in Maintain test clarity
Platform & Browser Support Use Selenium 2 Develop tests on multiple platforms & browsers from start
Rapid deployment Minimize locations of change from version to version No hard-coded data in scripts Robust locators
Keep up with developers Plan test scenarios as part of feature planning Minimize change locations Business-focused tests & code Use Cucumber so that more people can create tests
Avoid Vendor lock-in Open source testing tools Encapsulate tool interface to facilitate swapping in other tools as needed
Avoid Script lock-in Use random data Future behavior manager Future long-scale random test driver
Maintain clarity Cucumber tests defined in plain text Tests specify only relevant details Test specifies verifications that are relevant to the point of the test Future potential tie-in to test case manager
Architecture
Test Cases Cucumber features Created jointly with QA, Dev, BAs, and Product Managers Created as part of initial story creation Just enough source code to translate plain text into calls into Conceptual Layer Specifies only required tasks and data Random test driver
Example Cucumber test Feature: Allergy Notification     In order to avoid causing an allergic reaction in a patient while providing treatment     As a patient care provider     I want to be notified of a patient's allergic status Scenario: No allergy on file     Given I have a patient with no allergy information     When I visit a page with the allergy warning     Then I should see that the patient has no allergy information on file
Conceptual Layer Provides methods that correspond to actual user tasks and goals Ignores actual implementation Gets additional required data not provided by test case
Implementation-Focused Layer Contains all interactions with actual web pages Contains all calls to tool interface Uses Page Objects and Control Objects Uses ruby modules to handle repeated components bigger than a control
Page Objects Each page of the application is encapsulated by a single class The class provides public methods that correspond to the things a user can do on that page No details of page implementation available outside of class
Control Objects Each control type is wrapped in its own class Allows for verification at control level Removes need to remember how to interact with controls
Support Layer Contains code that is not specific to any user action Data classes (Patient, Allergy) Builders (create new patients, get existing patients)
Challenges so far Ramp up of staff unfamiliar with tools Cross-platform database access Using non-ASCII characters in test data Firefox/Selenium/FortiClient interaction
Future Directions Behavior manager Adding basic performance tests Basic fuzz testing Automated usability testing Tab order Keyboard navigation Text rendering On-site deployment tests Random test runner/High volume automation Parallel execution
Questions? Andy Tinkham andy.tinkham@healthland.com andytinkham in IRC #selenium  and #ruby.mn channel

Contenu connexe

En vedette

Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberBrandon Keepers
 
Health Information Technology
Health Information TechnologyHealth Information Technology
Health Information TechnologyDillan Brewer
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentMax Klymyshyn
 
How To Dice And Saute An Onion
How To Dice And Saute An OnionHow To Dice And Saute An Onion
How To Dice And Saute An Onions3232334
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver SelendroidDominik Dary
 
Automated Testing with Ruby
Automated Testing with RubyAutomated Testing with Ruby
Automated Testing with RubyKeith Pitty
 
New Technologies in Agricultural Production
New Technologies in Agricultural ProductionNew Technologies in Agricultural Production
New Technologies in Agricultural ProductionTandarayen Kevin
 
Onions cultivation project - Project management
Onions cultivation project - Project managementOnions cultivation project - Project management
Onions cultivation project - Project managementJulius Noble Ssekazinga
 
Cucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de PruebasCucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de PruebasTestingBaires
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testingdversaci
 
Introduction to Selenium and Ruby
Introduction to Selenium and RubyIntroduction to Selenium and Ruby
Introduction to Selenium and RubyYnon Perek
 
Robot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs IntegrationRobot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs IntegrationSauce Labs
 

En vedette (20)

Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Health Information Technology
Health Information TechnologyHealth Information Technology
Health Information Technology
 
Workshop Calabash Appium
Workshop Calabash AppiumWorkshop Calabash Appium
Workshop Calabash Appium
 
Tests de aceptación con cucumber
Tests de aceptación con cucumberTests de aceptación con cucumber
Tests de aceptación con cucumber
 
Cucumber
CucumberCucumber
Cucumber
 
The Onion
The OnionThe Onion
The Onion
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
How To Dice And Saute An Onion
How To Dice And Saute An OnionHow To Dice And Saute An Onion
How To Dice And Saute An Onion
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver Selendroid
 
Automated Testing with Ruby
Automated Testing with RubyAutomated Testing with Ruby
Automated Testing with Ruby
 
New Technologies in Agricultural Production
New Technologies in Agricultural ProductionNew Technologies in Agricultural Production
New Technologies in Agricultural Production
 
Onions cultivation project - Project management
Onions cultivation project - Project managementOnions cultivation project - Project management
Onions cultivation project - Project management
 
Cucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de PruebasCucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de Pruebas
 
Red onion
Red onionRed onion
Red onion
 
Onion
OnionOnion
Onion
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
 
Onion
OnionOnion
Onion
 
Onion
OnionOnion
Onion
 
Introduction to Selenium and Ruby
Introduction to Selenium and RubyIntroduction to Selenium and Ruby
Introduction to Selenium and Ruby
 
Robot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs IntegrationRobot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs Integration
 

Similaire à Using Selenium and Cucumber to test a Healthcare Information System

[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...
[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...
[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...DevDay.org
 
Selenium Testing: A Comprehensive Guide to Automated Web Testing
Selenium Testing: A Comprehensive Guide to Automated Web TestingSelenium Testing: A Comprehensive Guide to Automated Web Testing
Selenium Testing: A Comprehensive Guide to Automated Web TestingpCloudy
 
Leveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleLeveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleTechWell
 
What is Selenium Testing.pdf
What is Selenium Testing.pdfWhat is Selenium Testing.pdf
What is Selenium Testing.pdfAnanthReddy38
 
Top 30 Selenium Interview Questions.pptx
Top 30 Selenium Interview Questions.pptxTop 30 Selenium Interview Questions.pptx
Top 30 Selenium Interview Questions.pptxSyntax Technologies
 
Making Sense of Selenium
Making Sense of SeleniumMaking Sense of Selenium
Making Sense of SeleniumSmartBear
 
Unit testing php-unit - phing - selenium_v2
Unit testing   php-unit - phing - selenium_v2Unit testing   php-unit - phing - selenium_v2
Unit testing php-unit - phing - selenium_v2Tricode (part of Dept)
 
Leveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleLeveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleTechWell
 
Selenium interview-questions-freshers
Selenium interview-questions-freshersSelenium interview-questions-freshers
Selenium interview-questions-freshersNaga Mani
 
Tosca vs Selenium.pdf
Tosca vs Selenium.pdfTosca vs Selenium.pdf
Tosca vs Selenium.pdfAnanthReddy38
 
Automated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS SitesAutomated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS Sitesjoelabrahamsson
 
Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...
Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...
Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...Simplilearn
 
Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Kevin Schultz
 
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!Puneet Kala
 
Best Selenium Framework for Testing Web Application - A Mindtree Article
Best Selenium Framework for Testing Web Application - A Mindtree ArticleBest Selenium Framework for Testing Web Application - A Mindtree Article
Best Selenium Framework for Testing Web Application - A Mindtree Articledevraajsingh
 

Similaire à Using Selenium and Cucumber to test a Healthcare Information System (20)

Chapter 7)
Chapter 7)Chapter 7)
Chapter 7)
 
[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...
[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...
[DevDay 2017] Automation Testing - Speaker: Nghia Khuong - Project Manager at...
 
Selenium Testing: A Comprehensive Guide to Automated Web Testing
Selenium Testing: A Comprehensive Guide to Automated Web TestingSelenium Testing: A Comprehensive Guide to Automated Web Testing
Selenium Testing: A Comprehensive Guide to Automated Web Testing
 
Leveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleLeveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver Example
 
What is Selenium Testing.pdf
What is Selenium Testing.pdfWhat is Selenium Testing.pdf
What is Selenium Testing.pdf
 
Top 30 Selenium Interview Questions.pptx
Top 30 Selenium Interview Questions.pptxTop 30 Selenium Interview Questions.pptx
Top 30 Selenium Interview Questions.pptx
 
Making Sense of Selenium
Making Sense of SeleniumMaking Sense of Selenium
Making Sense of Selenium
 
Unit testing php-unit - phing - selenium_v2
Unit testing   php-unit - phing - selenium_v2Unit testing   php-unit - phing - selenium_v2
Unit testing php-unit - phing - selenium_v2
 
Leveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleLeveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver Example
 
Selenium interview-questions-freshers
Selenium interview-questions-freshersSelenium interview-questions-freshers
Selenium interview-questions-freshers
 
A Case Study of Using Selenium IDE and WebDriver_Word Doc
A Case Study of Using Selenium IDE and WebDriver_Word DocA Case Study of Using Selenium IDE and WebDriver_Word Doc
A Case Study of Using Selenium IDE and WebDriver_Word Doc
 
Tosca vs Selenium.pdf
Tosca vs Selenium.pdfTosca vs Selenium.pdf
Tosca vs Selenium.pdf
 
Heuristics of performance testing
Heuristics of performance testingHeuristics of performance testing
Heuristics of performance testing
 
Selenium
SeleniumSelenium
Selenium
 
Automated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS SitesAutomated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS Sites
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...
Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...
Selenium Interview Questions And Answers | Selenium Interview Questions | Sel...
 
Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)
 
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
 
Best Selenium Framework for Testing Web Application - A Mindtree Article
Best Selenium Framework for Testing Web Application - A Mindtree ArticleBest Selenium Framework for Testing Web Application - A Mindtree Article
Best Selenium Framework for Testing Web Application - A Mindtree Article
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Using Selenium and Cucumber to test a Healthcare Information System

  • 1. Using Selenium & Cucumber toTest an HIS Andy Tinkham Selenium Conference, San Francisco April 2011
  • 2. Background Information Healthland Web-based HIS (Clinicals, Financials) Geared to rural hospitals (<50 beds) .NET-based backend UI is native HTML/CSS/JavaScript in browser (no Flash or non-standard elements) Me 16 years of testing experience (almost all automated) Started using Selenium in 2007
  • 3. Goals of Current Automation Effort Run on all our supported platforms & browsers Rapid deployment in new environment Keep up with developers Avoid vendor & script lock-in Maintain test clarity
  • 4. Platform & Browser Support Use Selenium 2 Develop tests on multiple platforms & browsers from start
  • 5. Rapid deployment Minimize locations of change from version to version No hard-coded data in scripts Robust locators
  • 6. Keep up with developers Plan test scenarios as part of feature planning Minimize change locations Business-focused tests & code Use Cucumber so that more people can create tests
  • 7. Avoid Vendor lock-in Open source testing tools Encapsulate tool interface to facilitate swapping in other tools as needed
  • 8. Avoid Script lock-in Use random data Future behavior manager Future long-scale random test driver
  • 9. Maintain clarity Cucumber tests defined in plain text Tests specify only relevant details Test specifies verifications that are relevant to the point of the test Future potential tie-in to test case manager
  • 11. Test Cases Cucumber features Created jointly with QA, Dev, BAs, and Product Managers Created as part of initial story creation Just enough source code to translate plain text into calls into Conceptual Layer Specifies only required tasks and data Random test driver
  • 12. Example Cucumber test Feature: Allergy Notification In order to avoid causing an allergic reaction in a patient while providing treatment As a patient care provider I want to be notified of a patient's allergic status Scenario: No allergy on file Given I have a patient with no allergy information When I visit a page with the allergy warning Then I should see that the patient has no allergy information on file
  • 13. Conceptual Layer Provides methods that correspond to actual user tasks and goals Ignores actual implementation Gets additional required data not provided by test case
  • 14. Implementation-Focused Layer Contains all interactions with actual web pages Contains all calls to tool interface Uses Page Objects and Control Objects Uses ruby modules to handle repeated components bigger than a control
  • 15. Page Objects Each page of the application is encapsulated by a single class The class provides public methods that correspond to the things a user can do on that page No details of page implementation available outside of class
  • 16. Control Objects Each control type is wrapped in its own class Allows for verification at control level Removes need to remember how to interact with controls
  • 17. Support Layer Contains code that is not specific to any user action Data classes (Patient, Allergy) Builders (create new patients, get existing patients)
  • 18. Challenges so far Ramp up of staff unfamiliar with tools Cross-platform database access Using non-ASCII characters in test data Firefox/Selenium/FortiClient interaction
  • 19. Future Directions Behavior manager Adding basic performance tests Basic fuzz testing Automated usability testing Tab order Keyboard navigation Text rendering On-site deployment tests Random test runner/High volume automation Parallel execution
  • 20. Questions? Andy Tinkham andy.tinkham@healthland.com andytinkham in IRC #selenium and #ruby.mn channel