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
58
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
40
Code quality for testing frameworks
thywen
0
74
Other Decks in Programming
See All in Programming
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
280
旅行プランAIエージェント開発の裏側
ippo012
2
910
Deep Dive into Kotlin Flow
jmatsu
1
350
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
1.6k
はじめてのMaterial3 Expressive
ym223
2
770
チームのテスト力を鍛える
goyoki
3
310
rage against annotate_predecessor
junk0612
0
170
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
アセットのコンパイルについて
ojun9
0
130
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
130
概念モデル→論理モデルで気をつけていること
sunnyone
2
270
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
BBQ
matthewcrist
89
9.8k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Invisible Side of Design
smashingmag
301
51k
We Have a Design System, Now What?
morganepeng
53
7.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
A Tale of Four Properties
chriscoyier
160
23k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Designing Experiences People Love
moore
142
24k
How GitHub (no longer) Works
holman
315
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
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!