tgt#13 - ui tests automation framework in evolve edm – case study - mateusz radkiewicz

26
Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent. UI Tests Automation Framework In Evolve EDM Mateusz Radkiewicz 12.2016

Upload: trojmiejska-grupa-testerska

Post on 18-Jan-2017

42 views

Category:

Software


0 download

TRANSCRIPT

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

Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent.  

UI Tests Automation FrameworkIn Evolve EDMMateusz Radkiewicz12.2016

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

Electronic Medical Records• Electronic Documents Management• Evolve for IPad

Integrated Care Platform•Unified Healthcare Interface

Healthcare Applications• iOS and Web

Kainos Evolve

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

Electronic Medical Records

Test Automation in Evolve

Integrated Care Platform

Apps

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

Evolve Electronic Documents Management

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

Evolve EDM Testing ProcessSprint

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

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

Jenkins

Tools and Tech Stack

•Build ServerTestRail• Test Case Management• Suites / Runs

Jira•Bugtracker• SCRUM/Kanban boards

C#, NUnit, GitHub, Visual Studio

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

1. Build and install Evolve2. Setup environment and data for tests3. Execute Pretests4. Execute Sanity tests, send results to TestRail5. Send summary e-mail to the team6. Execute Quarantined tests, send results to TestRail

Nightly Build Pipeline

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

Test Results Analysis – Summary E-mails

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

Test Results Analysis – TestRail

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

Test Results Analysis – JenkinsParsed Console Output, Test Results Analyzer

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

•Rerun failed test on Jenkins•Reproduce failure manually•Rerun failed test locally from IDE

Test Failures Debugging

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

UI Tests Framework Structure

Test

Delegate

Flow

Page

Component UI Framework

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

•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

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

•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

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

•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

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

•Complex reusable web element e.g.•DashboardPanel• Table•DropDown• Checkbox

•Root property• IsLoaded() method

Component Class

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

•Common workflow which is used in many delegates• Interacts with many pages and flows

Flow Class

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

•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

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

„Upgraded” methods

Dynamic waits

WebElement reinitialization

Tests Stability – Selenium Wrappers (UiElement, UiDriver etc.)

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

• 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

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

Library used: https://testapi.codeplex.comSmart Visual Verification for specific cases (e.g. Atala viewer)

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

Smart Visual Verification for specific cases (e.g. Atala viewer)

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

Firefox:

Internet Explorer:

Seamless BrowserSwitching WithinOne Test

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

AutoIT for Handling OS Windows

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

DEMO

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

Issued commercial in confidence © Kainos Evolve Limited 2016 – no reproduction without prior consent.  

Thank you

Mateusz Radkiewicz