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

Post on 18-Jan-2017

42 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

UI Tests Automation FrameworkIn Evolve EDMMateusz Radkiewicz12.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 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

Jenkins

Tools and Tech Stack

•Build ServerTestRail• Test Case Management• Suites / Runs

Jira•Bugtracker• SCRUM/Kanban boards

C#, NUnit, GitHub, Visual Studio

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

Test Results Analysis – Summary E-mails

Test Results Analysis – TestRail

Test Results Analysis – JenkinsParsed 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.comSmart Visual Verification for specific cases (e.g. Atala viewer)

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

Firefox:

Internet Explorer:

Seamless BrowserSwitching WithinOne Test

AutoIT for Handling OS Windows

DEMO

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

Thank you

Mateusz Radkiewicz

top related