Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOS testing from top to bottom
Search
Kamil Pyć
October 10, 2017
Programming
63
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOS testing from top to bottom
Presentation from AADays 2017
Kamil Pyć
October 10, 2017
Other Decks in Programming
See All in Programming
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
0
140
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Jetpack Compose Mechanisms
skydoves
3
820
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
JIS keyboard support in Omarchy
lef237
0
120
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.1k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
540
Paper Plane
katiecoart
PRO
5
54k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
780
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
GitHub's CSS Performance
jonrohan
1033
470k
Believing is Seeing
oripsolob
1
240
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Transcript
iOS testing from top to bottom Agile & Automation Days
Kraków, 2017
2 Ewa Ludwiczak Senior Software Tester
[email protected]
@ewabielskapoz Kamil Pyć
Senior iOS Developer
[email protected]
@KamilPyc
3 “Ogres are like onions”
4 Tests are like onions
5 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
6 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
7 Problem 1:
8 Problem 1:
9 Problem 1: Crash on production caused by force unwrapping
10 Problem 1: Crash on production caused by force unwrapping
Solution: SwiftLint
11 1. enforce Swift style and conventions 2. detect code
smells 3. apply custom rules https://github.com/realm/SwiftLint Problem 1: Crash on production caused by force unwrapping Solution: SwiftLint
12 Problem 1: Crash on production caused by force unwrapping
Solution: SwiftLint
13
14 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
15 Problem 2:
16 Problem 2: Evergreen unit tests
17 Problem 2: Evergreen unit tests Solution: Mutation testing
18 1. modify your source code 2. run tests 3.
check if tests failed Problem 2: Evergreen unit tests Solution: Mutation testing
19
20 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
self.baseURL = “https://test.allegro.pl” 21 Problem 3: Simple mistakes
22 Problem 3: Simple mistakes
23 Problem 3: Simple mistakes Solution: Code review
24 Problem 3: Simple mistakes Solution: Snapshot tests in code
review
25 Problem 3: Simple mistakes Solution: Snapshot tests in code
review
26 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
27 Problem 4: Predicting consequences of change
28 Problem 4: Predicting consequences of change Solution: Functional tests
1. functional UI tests 2. separate target 3. monitoring change
29
30 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
31 Problem 5: Late feedback
32 Problem 5: Late feedback Solution: Continuous integration https://fastlane.tools/
33 Problem 5: Late feedback
34 Problem 5: Late feedback TabControl TabBar
35 Problem 5: Late feedback Solution: Continuous delivery
36 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
37 Problem 6: Testing in laboratory condition XXX
38 Problem 6: Testing in laboratory condition Solution: Phased release
39 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
40 Problem 7: Testing effectiveness
41 Problem 7: Testing effectiveness Solution: AB Tests
42 Problem 7: Testing effectiveness Solution: AB Tests
43 Problem 7: Testing effectiveness Solution: AB Tests
44
45 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
We released app update to AppStore We didn’t see any
significant crashes in Crashlytics 46 https://fabric.io/kits/ios/crashlytics Problem 8:
We released app update to AppStore We didn’t see any
significant crashes in Crashlytics Then we saw this comment on AppStore... 47 Problem 8:
48 Problem 8: XXX
49 Problem 8: Decision making XXX
50 Problem 8: Decision making Solution: Make use of app
analytical data
51 1. data-based decisions 2. priority and severity of bug
3. access to analytical data to team members Problem 8: Decision making Solution: Make use of app analytical data
52 Problem 8: Decision making Solution: Make use of app
analytical data
53 Problem 8: Decision making Solution: Make use of app
analytical data
54 1. Static analysis 2. Mutation testing 3. Snapshot tests
4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
55 Summary
56 Thank you for your attention
57 Thank you for your attention See you at the
panel discussion “Assuring quality in mobile app development” 14:15-15:30
58 Ewa Ludwiczak Senior Software Tester
[email protected]
@ewabielskapoz Kamil Pyć
Senior iOS Developer
[email protected]
@KamilPyc