Przyjrzyjmy się w jaki sposób automatyzowane są webowe testy UI w produkcie Evolve Electronic Document Management. Przestawię strukturę frameworka testowego opartego o Selenium i zintegrowanego z Jenkinsem oraz TestRailem. Opowiem o trosce o stabilność testów, maksymalizowanie korzyści z nich płynących oraz o nietypowych problemach i sposobach ich rozwiązywania. Prezentacja zawierać będzie również konkretne przykłady.
2. Electronic Medical Records
• Electronic Documents Management
• Evolve for IPad
Integrated Care Platform
• Unified Healthcare Interface
Healthcare Applications
• iOS and Web
Kainos Evolve
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
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