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
Re-thinking Regression Testing
Search
Mario Gonzalez Macedo
March 21, 2014
Research
1
130
Re-thinking Regression Testing
Talk I gave at Mountain West Ruby Conf 2014 about mutation testing
Mario Gonzalez Macedo
March 21, 2014
Tweet
Share
Other Decks in Research
See All in Research
ストレス計測方法の確立に向けたマルチモーダルデータの活用
yurikomium
0
600
Google Agent Development Kit (ADK) 入門 🚀
mickey_kubo
2
1k
心理言語学の視点から再考する言語モデルの学習過程
chemical_tree
2
370
Collaborative Development of Foundation Models at Japanese Academia
odashi
2
560
Mechanistic Interpretability:解釈可能性研究の新たな潮流
koshiro_aoki
1
300
2025年度 生成AIの使い方/接し方
hkefka385
1
700
EOGS: Gaussian Splatting for Efficient Satellite Image Photogrammetry
satai
4
260
線形判別分析のPU学習による朝日歌壇短歌の分析
masakat0
0
130
3D Gaussian Splattingによる高効率な新規視点合成技術とその応用
muskie82
5
2.6k
EarthMarker: A Visual Prompting Multimodal Large Language Model for Remote Sensing
satai
3
340
数理最適化と機械学習の融合
mickey_kubo
15
8.8k
Streamlit 総合解説 ~ PythonistaのためのWebアプリ開発 ~
mickey_kubo
1
910
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
A Tale of Four Properties
chriscoyier
160
23k
Balancing Empowerment & Direction
lara
1
380
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
RailsConf 2023
tenderlove
30
1.1k
4 Signs Your Business is Dying
shpigford
184
22k
Writing Fast Ruby
sferik
628
62k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Designing for Performance
lara
609
69k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
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