SlideShare a Scribd company logo
Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent.
UI Tests Automation
Framework
In Evolve EDM
Mateusz Radkiewicz
12.2016
Electronic Medical Records
• Electronic Documents Management
• Evolve for IPad
Integrated Care Platform
• Unified Healthcare Interface
Healthcare Applications
• iOS and Web
Kainos Evolve
Electronic Medical
Records
Test Automation in Evolve
Integrated Care
Platform
Apps
Evolve Electronic Documents Management
Evolve EDM Testing Process
Sprint 1
System Tests
Cycle 1
Sprint 2 Sprint 3 Sprint ...
• In Sprint Manual Tests
• Daily Automated
Sanity
• Automated Sanity
• Manual Regression
• New Features Manual
Tests
• Performance Tests
System Tests
Cycle 2
System Tests
Cycle ...
Release
Jenkins
Tools and Tech Stack
• Build Server
TestRail
• Test Case
Management
• Suites / Runs
Jira
• Bugtracker
• SCRUM/Kanban
boards
C#, NUnit, GitHub, Visual Studio
1. Build and install Evolve
2. Setup environment and data for tests
3. Execute Pretests
4. Execute Sanity tests, send results to TestRail
5. Send summary e-mail to the team
6. Execute Quarantined tests, send results to TestRail
Nightly Build Pipeline
Test Results Analysis – Summary E-mails
Test Results Analysis – TestRail
Test Results Analysis – Jenkins
Parsed Console Output, Test Results Analyzer
• Rerun failed test on Jenkins
• Reproduce failure manually
• Rerun failed test locally from IDE
Test Failures Debugging
UI Tests Framework Structure
Test
Delegate
Flow
Page
Component
UI Framework
• Counterpart for
manual test case
• Clear, contains
descriptive names
and not store any
test data
• Chained methods
represent related
test steps from
TestRail
Test Class
• Contains test data and
test logic
• Delegate to Test ratio is
1:1
• Is calling several Page
Objects and Flows
• Contains assertions
• On() method for pages
syncronization
Delegate Class
• Representation of a
web page/view
• Methods are operating
on web page elements
• Can use components -
complex elements
reusable on several
pages
• No assertions
• IsLoaded() method
Page Class
• Complex reusable web element
e.g.
• DashboardPanel
• Table
• DropDown
• Checkbox
• Root property
• IsLoaded() method
Component Class
• Common workflow
which is used in many
delegates
• Interacts with many
pages and flows
Flow Class
• Design patterns: Page Objects, Loadable Components
• Self-contained tests, no tests dependencies
• Each test starts at known application state
• Test data cleanup, unique tests data generation
• Possibility to rerun tests several times on the same DB
• Rerun failed test within the same test run
• Quarantine tests category
• Constant maintenance (fixes and enhancements)
Tests Stability
„Upgraded” methods
Dynamic waits
WebElement
reinitialization
Tests Stability – Selenium Wrappers (UiElement,
UiDriver etc.)
• Flexible Jenkins builds (single, categories, environments,
projects)
• TestRail integration
• Screenshots and HTML source capturing on failure
• Automatic failure reruns
• Automatic notification e-mails
• Backend features (HL7, EDC, DB)
• Environments details service
• Multiple applications (Evolve, Admin, Meridio, Iguana, QMS)
Noteworthy Framework Features
Library used: https://testapi.codeplex.com
Smart Visual Verification for specific cases (e.g. Atala
viewer)
Smart Visual Verification for specific cases (e.g. Atala
viewer)
Firefox:
Internet Explorer:
Seamless
Browser
Switching Within
One Test
AutoIT for Handling OS Windows
DEMO
Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent.
Thank you
Mateusz Radkiewicz

More Related Content

What's hot

#2 integration + ui tests
#2 integration + ui tests#2 integration + ui tests
#2 integration + ui tests
eleksdev
 
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
Applitools
 

What's hot (20)

Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)
 
UI Testing Automation - Alex Kalinovsky - CreamTec LLC
UI Testing Automation - Alex Kalinovsky - CreamTec LLCUI Testing Automation - Alex Kalinovsky - CreamTec LLC
UI Testing Automation - Alex Kalinovsky - CreamTec LLC
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScript
 
Protractor Tutorial Quality in Agile 2015
Protractor Tutorial Quality in Agile 2015Protractor Tutorial Quality in Agile 2015
Protractor Tutorial Quality in Agile 2015
 
Protractor: Tips & Tricks
Protractor: Tips & TricksProtractor: Tips & Tricks
Protractor: Tips & Tricks
 
TestingAR XX - Protractor e2e Test Framework - Introduction what we have lear...
TestingAR XX - Protractor e2e Test Framework - Introduction what we have lear...TestingAR XX - Protractor e2e Test Framework - Introduction what we have lear...
TestingAR XX - Protractor e2e Test Framework - Introduction what we have lear...
 
#2 integration + ui tests
#2 integration + ui tests#2 integration + ui tests
#2 integration + ui tests
 
AngularJS and Protractor
AngularJS and ProtractorAngularJS and Protractor
AngularJS and Protractor
 
Protractor for angularJS
Protractor for angularJSProtractor for angularJS
Protractor for angularJS
 
Protractor overview
Protractor overviewProtractor overview
Protractor overview
 
Angular UI Testing with Protractor
Angular UI Testing with ProtractorAngular UI Testing with Protractor
Angular UI Testing with Protractor
 
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to Protractor
 
Protractor survival guide
Protractor survival guideProtractor survival guide
Protractor survival guide
 
An Introduction to AngularJS End to End Testing using Protractor
An Introduction to AngularJS End to End Testing using ProtractorAn Introduction to AngularJS End to End Testing using Protractor
An Introduction to AngularJS End to End Testing using Protractor
 
Selenium Architecture
Selenium ArchitectureSelenium Architecture
Selenium Architecture
 
Automation Frame works Instruction Sheet
Automation Frame works Instruction SheetAutomation Frame works Instruction Sheet
Automation Frame works Instruction Sheet
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
 
Automated Smoke Tests with Protractor
Automated Smoke Tests with ProtractorAutomated Smoke Tests with Protractor
Automated Smoke Tests with Protractor
 
Automated UI testing with Selenium
Automated UI testing with SeleniumAutomated UI testing with Selenium
Automated UI testing with Selenium
 

Viewers also liked

Viewers also liked (7)

Olga Żądło - Robot Framework
Olga Żądło - Robot FrameworkOlga Żądło - Robot Framework
Olga Żądło - Robot Framework
 
TGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon Rękawek
TGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon RękawekTGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon Rękawek
TGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon Rękawek
 
TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...
TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...
TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...
 
Jak POPRAWNIE zgłaszać błędy
Jak POPRAWNIE zgłaszać błędyJak POPRAWNIE zgłaszać błędy
Jak POPRAWNIE zgłaszać błędy
 
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
 
The Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The FutureThe Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The Future
 
Creative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsCreative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage Startups
 

Similar to TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz Radkiewicz

Aravind Java Selenium Automation- US
Aravind Java Selenium Automation- US Aravind Java Selenium Automation- US
Aravind Java Selenium Automation- US
gbaravindkumar
 
Visual Studio 2010 for testers
Visual Studio 2010 for testersVisual Studio 2010 for testers
Visual Studio 2010 for testers
Arpit Dubey
 
Srinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_ResumeSrinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_Resume
Srinivasa Pavan
 

Similar to TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz Radkiewicz (20)

Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Aravind Java Selenium Automation- US
Aravind Java Selenium Automation- US Aravind Java Selenium Automation- US
Aravind Java Selenium Automation- US
 
33rd degree
33rd degree33rd degree
33rd degree
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
 
Selva_Selenium
Selva_SeleniumSelva_Selenium
Selva_Selenium
 
Visual Studio 2010 for testers
Visual Studio 2010 for testersVisual Studio 2010 for testers
Visual Studio 2010 for testers
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
 
QualiSystems-Brief TestShell
QualiSystems-Brief TestShellQualiSystems-Brief TestShell
QualiSystems-Brief TestShell
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
 
Srinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_ResumeSrinivasa_Jonnalagadda_Resume
Srinivasa_Jonnalagadda_Resume
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
 
Presentation application server diagnostics
Presentation   application server diagnosticsPresentation   application server diagnostics
Presentation application server diagnostics
 
Khushboo_Resume
Khushboo_ResumeKhushboo_Resume
Khushboo_Resume
 
Performance Testing Overview
Performance Testing OverviewPerformance Testing Overview
Performance Testing Overview
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 

More from Trójmiejska Grupa Testerska

More from Trójmiejska Grupa Testerska (20)

Rafal prezentacja testowanie ai
Rafal prezentacja testowanie aiRafal prezentacja testowanie ai
Rafal prezentacja testowanie ai
 
Tgt 23 przemyslaw_pradzynski
Tgt 23 przemyslaw_pradzynskiTgt 23 przemyslaw_pradzynski
Tgt 23 przemyslaw_pradzynski
 
TGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław Smilgin
TGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław SmilginTGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław Smilgin
TGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław Smilgin
 
TGT#19 - Wszyscy jestesmy testerami - Michal Rabczuk
TGT#19 - Wszyscy jestesmy testerami - Michal RabczukTGT#19 - Wszyscy jestesmy testerami - Michal Rabczuk
TGT#19 - Wszyscy jestesmy testerami - Michal Rabczuk
 
TGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert CharewiczTGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert Charewicz
 
TGT#20 - Automated Tests Only For Testers - Kasper Kulikowski
TGT#20 - Automated Tests Only For Testers - Kasper KulikowskiTGT#20 - Automated Tests Only For Testers - Kasper Kulikowski
TGT#20 - Automated Tests Only For Testers - Kasper Kulikowski
 
TGT#20 - TGT in Numbers - Mateusz Radkiewicz
TGT#20 - TGT in Numbers - Mateusz RadkiewiczTGT#20 - TGT in Numbers - Mateusz Radkiewicz
TGT#20 - TGT in Numbers - Mateusz Radkiewicz
 
TGT#19 - 3 seconds or less - Piotr Liss
TGT#19 - 3 seconds or less - Piotr LissTGT#19 - 3 seconds or less - Piotr Liss
TGT#19 - 3 seconds or less - Piotr Liss
 
TGT#18 - End-to-end testing using Protractor - Jakub Raniszewski
TGT#18 - End-to-end testing using Protractor - Jakub RaniszewskiTGT#18 - End-to-end testing using Protractor - Jakub Raniszewski
TGT#18 - End-to-end testing using Protractor - Jakub Raniszewski
 
TGT#18 - BDD with The Three Amigos in API Testing - Julia Szarlej
TGT#18 - BDD with The Three Amigos in API Testing - Julia SzarlejTGT#18 - BDD with The Three Amigos in API Testing - Julia Szarlej
TGT#18 - BDD with The Three Amigos in API Testing - Julia Szarlej
 
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin KubeckiTGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
 
TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...
TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...
TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...
 
TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...
TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...
TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...
 
TGT#16 - Rozmowa techniczna (short talk) - Waldemar Mozoła
TGT#16 - Rozmowa techniczna (short talk) - Waldemar MozołaTGT#16 - Rozmowa techniczna (short talk) - Waldemar Mozoła
TGT#16 - Rozmowa techniczna (short talk) - Waldemar Mozoła
 
TGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
TGT#16 - Sztuka projektowania testów - Agnieszka GarwolińskaTGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
TGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
 
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
 
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
 
TGT#14 - Case Study: Współpraca Testera i Product Ownera w zespole scrumowym ...
TGT#14 - Case Study: Współpraca Testera i Product Ownera w zespole scrumowym ...TGT#14 - Case Study: Współpraca Testera i Product Ownera w zespole scrumowym ...
TGT#14 - Case Study: Współpraca Testera i Product Ownera w zespole scrumowym ...
 
TGT#12 - Testowanie gier – praca czy zabawa? - Piotr Januszko
TGT#12 - Testowanie gier – praca czy zabawa? - Piotr JanuszkoTGT#12 - Testowanie gier – praca czy zabawa? - Piotr Januszko
TGT#12 - Testowanie gier – praca czy zabawa? - Piotr Januszko
 
TGT#11 - Zostały Ci jeszcze jakieś włosy? (Testowanie programów równoległych)...
TGT#11 - Zostały Ci jeszcze jakieś włosy? (Testowanie programów równoległych)...TGT#11 - Zostały Ci jeszcze jakieś włosy? (Testowanie programów równoległych)...
TGT#11 - Zostały Ci jeszcze jakieś włosy? (Testowanie programów równoległych)...
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 

TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz Radkiewicz

  • 1. Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent. UI Tests Automation Framework In Evolve EDM Mateusz Radkiewicz 12.2016
  • 2. Electronic Medical Records • Electronic Documents Management • Evolve for IPad Integrated Care Platform • Unified Healthcare Interface Healthcare Applications • iOS and Web Kainos Evolve
  • 3. Electronic Medical Records Test Automation in Evolve Integrated Care Platform Apps
  • 5. Evolve EDM Testing Process Sprint 1 System Tests Cycle 1 Sprint 2 Sprint 3 Sprint ... • In Sprint Manual Tests • Daily Automated Sanity • Automated Sanity • Manual Regression • New Features Manual Tests • Performance Tests System Tests Cycle 2 System Tests Cycle ... Release
  • 6. Jenkins Tools and Tech Stack • Build Server TestRail • Test Case Management • Suites / Runs Jira • Bugtracker • SCRUM/Kanban boards C#, NUnit, GitHub, Visual Studio
  • 7. 1. Build and install Evolve 2. Setup environment and data for tests 3. Execute Pretests 4. Execute Sanity tests, send results to TestRail 5. Send summary e-mail to the team 6. Execute Quarantined tests, send results to TestRail Nightly Build Pipeline
  • 8. Test Results Analysis – Summary E-mails
  • 9. Test Results Analysis – TestRail
  • 10. Test Results Analysis – Jenkins Parsed Console Output, Test Results Analyzer
  • 11. • Rerun failed test on Jenkins • Reproduce failure manually • Rerun failed test locally from IDE Test Failures Debugging
  • 12. UI Tests Framework Structure Test Delegate Flow Page Component UI Framework
  • 13. • Counterpart for manual test case • Clear, contains descriptive names and not store any test data • Chained methods represent related test steps from TestRail Test Class
  • 14. • Contains test data and test logic • Delegate to Test ratio is 1:1 • Is calling several Page Objects and Flows • Contains assertions • On() method for pages syncronization Delegate Class
  • 15. • Representation of a web page/view • Methods are operating on web page elements • Can use components - complex elements reusable on several pages • No assertions • IsLoaded() method Page Class
  • 16. • Complex reusable web element e.g. • DashboardPanel • Table • DropDown • Checkbox • Root property • IsLoaded() method Component Class
  • 17. • Common workflow which is used in many delegates • Interacts with many pages and flows Flow Class
  • 18. • Design patterns: Page Objects, Loadable Components • Self-contained tests, no tests dependencies • Each test starts at known application state • Test data cleanup, unique tests data generation • Possibility to rerun tests several times on the same DB • Rerun failed test within the same test run • Quarantine tests category • Constant maintenance (fixes and enhancements) Tests Stability
  • 19. „Upgraded” methods Dynamic waits WebElement reinitialization Tests Stability – Selenium Wrappers (UiElement, UiDriver etc.)
  • 20. • Flexible Jenkins builds (single, categories, environments, projects) • TestRail integration • Screenshots and HTML source capturing on failure • Automatic failure reruns • Automatic notification e-mails • Backend features (HL7, EDC, DB) • Environments details service • Multiple applications (Evolve, Admin, Meridio, Iguana, QMS) Noteworthy Framework Features
  • 21. Library used: https://testapi.codeplex.com Smart Visual Verification for specific cases (e.g. Atala viewer)
  • 22. Smart Visual Verification for specific cases (e.g. Atala viewer)
  • 24. AutoIT for Handling OS Windows
  • 25. DEMO
  • 26. Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent. Thank you Mateusz Radkiewicz