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
Re-thinking Regression Testing
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Mario Gonzalez Macedo
March 21, 2014
Research
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Re-thinking Regression Testing
Talk I gave at Mountain West Ruby Conf 2014 about mutation testing
Mario Gonzalez Macedo
March 21, 2014
Other Decks in Research
See All in Research
IA for theory
gpeyre
1
410
超効率化への挑戦:1bit LLMの現状と展望
yumaichikawa
0
700
敵対生成プロンプト同時探索による内省型プロンプト最適化
kinoue_smarthr
0
410
typst の使い方:言語学を研究する学生のために
gitomochang
0
580
大規模言語モデルは誰を覚えているか / Who Do Large Language Models Memorize?
upura
0
170
RS-Agent: Automating Remote Sensing Tasks through Intelligent Agent
satai
3
540
研究室単位での自律的 IPv6接続性確立に向けたAS共同運用モデルの提案と実証
reokashiwa
PRO
0
210
量子サマースクール2026「量子計算機アーキテクチャ分野の概観」
youten622
1
870
重要だけど測れていないもの:高齢者ケアの見えない課題
theoriatec2024
0
520
Ghost in the 7‑Zip: The Shadow of Residential Proxies Creeping into Your Life
nttcom
0
2.1k
適応的スパムフィルタのための軽量な類似メッセージカウンタ / jsai2026-adaptive-spam-filter
monochromegane
0
5.4k
SoftMatcha 2: 1兆語規模コーパスの超高速かつ柔らかい検索
e869120_sub
7
3.8k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
530
Fireside Chat
paigeccino
43
4k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
Prompt Engineering for Job Search
mfonobong
0
450
A designer walks into a library…
pauljervisheath
211
25k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Designing for humans not robots
tammielis
254
26k
Transcript
Re-thinking regression testing Mario González Macedo @maramono ortask.com
http://www.softwaretestpro.com/Item/5020/Minor-Risk-Patches/Cartoon
regression code coverage test redundancy ortask.com
ortask.com
regression code coverage test redundancy ortask.com
mutation testing
…vs code coverage
ortask.com
ortask.com
ortask.com
ortask.com
http://www.softwaretestpro.com/Item/5020/Minor-Risk-Patches/Cartoon
ortask.com
ortask.com
mutation score
(0, 1) worst mutation-adequate
ok… but what?
a type of fault injection
no extra code
change the code
mutate existing source code changes to tests: none
None
None
score… how?
mutants total killed mutants score =
zombies total killed zombies score =
ninjas total killed ninjas score =
how many mutations?
one mutation?
two mutations?
100 mutations?
k = mutation qty
assumption
assumption (a valid hypothesis)
competent programmer hypothesis
competent programmer hypothesis Some software bugs are caused by syntactically
small errors
competent programmer hypothesis k = mutation qty
competent programmer hypothesis k = 1
k
if k == 1 then first-order
if k == 2 then second-order
k-order mutant k mutations
k-order for simplicity easy to communicate
if k == 1 then low-order or simply first-order
if k > 1 then high-order
high-order… but why?
competent programmer hypothesis
competent programmer hypothesis coupling effect
coupling effect Other software bugs are caused by interactions of
small errors
coupling effect 1 < k < 6
why it works
for regression analysis one developer on fixes and features competent
programmer hypothesis
for regression analysis many contributors on fixes and features competent
programmer hypothesis coupling effect
so… why better?
test redundancy mutation score correlation: code coverage & test redundancy
ortask.com
ortask.com
mutation score test redundancy mutation score correlation: code coverage &
ortask.com
code coverage correlation: likelihood of bugs & test redundancy ortask.com
http://www.sustainablebabysteps.com/inflating-tires.html
http://willyoubemyyokoono.blogspot.com/2012_09_01_archive.html
correlation: mutation score & test redundancy code coverage ortask.com
how to apply it in practice
heckle mutant muJava Jester NinjaTurtles
heckle: obsolete as of Ruby 1.9 mutant: did not use
(rc) muJava Jester NinjaTurtles
https://github.com/ortask/mutator research-strength fast cross-language
painless mutation analysis a few guidelines
guideline 1: passing tests http://vector-magz.com/logo/quality-control-logo-item-4/
guideline 2: mutants 50 low-order experiment with high-order
guideline 3: cycle mutate score improve test
guideline 4: coupling low coupling high coupling detection
Thank you! Mario González Macedo @maramono ortask.com
Other mutation testing sources http://slid.es/markusschirp/mutation-testing https://github.com/mbj/mutant/tree/master/l ib/mutant/mutator/node https://github.com/seattlerb/heckle http://vimeo.com/10863662
Other sources http://vimeo.com/1683910