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
Have you ever tested your tests?
Search
Rafael Machado
November 09, 2019
Programming
110
2
Share
Have you ever tested your tests?
Rafael Machado
November 09, 2019
More Decks by Rafael Machado
See All by Rafael Machado
Evolução da arquitetura do Magalu e os desafios da modularização
rakaramos
0
75
Contratos fortes com programação funcional
rakaramos
1
28
Other Decks in Programming
See All in Programming
t *testing.T は どこからやってくるの?
otakakot
0
520
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
190
PDI: Como Alavancar Sua Carreira e Seu Negócio
marcelgsantos
0
120
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
170
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
170
飯MCP
yusukebe
0
510
tRPCの概要と少しだけパフォーマンス
misoton665
2
180
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
170
JOAI2026 1st solution - heron0519 -
heron0519
0
130
「速くなった気がする」をデータで疑う
senleaf24
0
170
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
920
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.5k
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
170
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
A designer walks into a library…
pauljervisheath
211
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Music & Morning Musume
bryan
47
7.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
710
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The agentic SEO stack - context over prompts
schlessera
0
740
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
200
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
200
Producing Creativity
orderedlist
PRO
348
40k
Transcript
HAVE YOU EVER TESTED YOUR TESTS?
Henrique Morbin iOS @ Consumer
Rafael Machado iOS @ Driver
AGENDA 1. SOFTWARE QUALITY & METRICS 2. CODE COVERAGE 3.
MUTATION TESTING 4.MUTER: AUTOMATED MUTATION TESTING FOR SWIFT
SOFTWARE QUALITY & METRICS
CODE COVERAGE
None
class Tests: XCTestCase { func test_view() { let sut =
ViewController(presenter: .dummy) XCTAssertNotNil(sut.view) } }
55% VALIDATION
COVERAGE ISN’T EVERYTHING
?
MUTATION TESTING
HOW DOES IT WORK?
None
None
None
MUTATION SCORE = Mutants killed Total of mutants
MUTATION OPERATORS
None
C# JAVASCRIPT JAVA PYTHON SWIFT C/C++ OBJECTIVE-C
Muter Automated mutation testing for Swift
DISCOVERY TESTS REPORT
None
$ muter init
!// muter.conf.json { "executable": “/usr/bin/xcodebuild", "arguments": [ "-project", "ExampleApp.xcodeproj", "-scheme",
"ExampleApp", "-sdk", "iphonesimulator", "-destination", "platform=iOS Simulator,name=iPhone 8", "test" ], "exclude": ["AppDelegate.swift"] }
$ muter
$ muter —output-xcode
None
$ muter —files-to-mutate "/Sources/**/*.swift"
$ muter —files-to-mutate \ $(echo \"$(git diff "--name-only HEAD HEAD~1
| tr '\n' ‘,')\")
RECAP COVERAGE ISN’T EVERYTHING PAPERS HIGH COST MUTATION SCORE FEW
OPERATORS ARE ENOUGH
THANK YOU
#VemProiFood