Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Architecture for test frameworks
Search
Sven Kroell
December 05, 2017
Programming
0
45
Architecture for test frameworks
Sven Kroell
December 05, 2017
Tweet
Share
More Decks by Sven Kroell
See All by Sven Kroell
QA/Developer Collaboration
thywen
0
37
Code quality for testing frameworks
thywen
0
39
Other Decks in Programming
See All in Programming
PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
tshinowpub
1
220
TCAの Shared Stateって どういう仕組みになってんの?
yimajo
0
330
BuefyのMaintainerを引き継いだ件
kikuomax
0
510
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
27
18k
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
7
1.9k
ファイル先頭の use の意味、説明できますか? 〜PHP の namespace と autoloading の関係を正しく理解しよう〜 / namespace and autoloading in php
okashoi
2
470
LPIXEL×CADDi_kaerururu
kaerururu
3
300
イベントストーミングによるオブジェクトモデリング・オブジェクト指向プログラミングの適用・開発プロセスの変遷・アーキテクチャの変革 / Object modeling with Event Storming.
nrslib
12
2.5k
DocC Tutorial と TCA におけるテスト機能の紹介
kalupas226
1
330
OpenTelemetry のサービスという概念について
azukiazusa1
1
390
Dockerで始めるAWS Lambda開発
stutkhd0709
13
2.5k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
23
1.9k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
The Cult of Friendly URLs
andyhume
72
5.6k
Docker and Python
trallard
33
2.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
Building Applications with DynamoDB
mza
88
5.6k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
67
38k
Navigating Team Friction
lara
177
13k
Done Done
chrislema
178
15k
Transcript
Architecture For test automation frameworks
Sven Kroell Testing Toolsmith 5 Years in Automation Working for
Novoda Mentoring new Testers Creating tailored solutions @craftingtester 2
End to End Integration Unit The pyramid 3
Why automate checks? Save time 4 Codebase grows Better risk
mitigation People grow tired
Record and play 5
Tape jam 6
Do it yourself 7
None
Time flows by 9 Maintenance hard Duplicated code Devs change
locators
Repairing on the fly 1 0 Checks get deactivated Hard
to understand Red builds Codebase grows
How to do it better? 1 1
Building a framework 1 2
➡ Separation of concerns ➡ Build a domain language ➡
Keeping the checks simple ➡ Reusable components Why a framework 1 3
What went wrong? 1 4 Locators Testdata Userflows Repetitions Magic
code Sleeps
None
Think in layers 1 6 Checks Framework Driver Application
➡ Orchestrate the checks ➡ No states ➡ KISS ➡
Using a DSL provided by the framework Checks (Testfiles) 1 7
Layers of the Framework 1 8 Checks Driver Repositories Workflows
Page Objects Data Generators Data Access Objects
➡ Hold the states ➡ Fetch data from api ➡
Trigger builder Repositories 1 9
How it could look like 2 0
➡ Centralised data generation ➡ Single point of change ➡
Checks don’t need to know data rules Why repositories? 2 1
➡ Simple DSL ➡ Reusable Flows ➡ Interact via page
objects Workflows 2 2
How it could look like 2 3
➡ Decouple flows from checks ➡ Checks get cleaner ➡
Using a DSL makes it easier for new joiners to get up to speed Why workflows? 2 4
➡ Holds information about one component of the page ➡
Write and Read from a certain elements Page Objects 2 5
How it could look like 2 6
➡ Hides complexity of the DOM from workflows ➡ Single
point of change for identifiers Why Page Objects? 2 7
Lets have a small demo 2 8
➡ Errors != Faults != Failures ➡ Plan your checks
➡ Work closely with your devs Remarks 2 9
➡ Creating checks is software development ➡ Clean code is
very important ➡ A good architecture helps while refactoring Final thoughts 3 0
Questions? 3 1 Thank you!