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
27
Other Decks in Programming
See All in Programming
ファインチューニングせずメインコンペを解く方法
pokutuna
0
220
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
170
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
160
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
200
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
130
PHPで TLSのプロトコルを実装してみる
higaki_program
0
600
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
Rethinking API Platform Filters
vinceamstoutz
0
4.2k
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
480
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
220
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
3.5k
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
310
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
120
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Information Architects: The Missing Link in Design Systems
soysaucechin
0
850
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
610
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
250
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
97
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
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