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
How Google Tests Software
Search
mattak
July 09, 2015
Programming
1
830
How Google Tests Software
The book of How Google Tests Software.
mattak
July 09, 2015
Tweet
Share
More Decks by mattak
See All by mattak
最近やった作業環境改善施策10個
mattak
0
250
UnixTime is Simple
mattak
0
170
おっさんが停滞しないために
mattak
32
18k
tech invest
mattak
1
300
Nodux - node base redux framework
mattak
0
1.4k
what_is_technical_investment
mattak
0
120
unitypackage distribution
mattak
0
780
Unity energy usage
mattak
0
870
Unidux 0.3.1
mattak
1
370
Other Decks in Programming
See All in Programming
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
880
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
850
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
130
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
210
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1.1k
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
870
Go の GC の不得意な部分を克服したい
taiyow
3
960
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.2k
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
220
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
290
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
530
HTML/CSS超絶浅い説明
yuki0329
0
150
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
112
50k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Building an army of robots
kneath
302
44k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
850
Transcript
!NBUUBL ذأزַ鋅ִגֻ ؚ٦ؚٕךاؿزؐؑ،涪 הח'#ׅ⠓
縧ֹ (PPHMF5FTU劤ָ涯ַկ ㉏겗ָ涯ְ 䩛岀ָ涯ְ 罋ִ倯ָ涯ְ
䒷欽IUUQTNJLFCMBOEDPNJNBHFTUPUUUFTUDFSUJFEKQH ز؎ٖח 5FTU5*14ך䓸秵 UFTUJOHPOUIFUPJMFU
(PPHMFחכذأز ꅾ銲鋔ׅ俑⻉ָ֮
ך5FTU5JQT⠗ִ涪邌דׅ 荈ⴓזח鍑ꅸ׃ג铡僇ծַז铂䒦כַ֮ 鑫׃ֻכ劤顠ג铣ד
暴ח⽩韋ח婍א涪邌 ֿך濼鋅ד⡦ַך涪ךؼٝزחזל
אךֿה ㅷ颵͒ذأز ذأزٖكٕ ؎ًؙٝٔٝةٕז涪 "$$ⴓ匿
ذأزךأ؛٦ؚٔٝ غؚ✮庠
ㅷ颵͒ذأز
ㅷ颵͒ذأز ㉏겗"ָ涪欰⾱㔓כזחַ ذأز 涪 涪כ㉏겗ך⾱㔓ծذأزכ㉏겗ך✮կ ㅷ颵ָ넝ְ͒ذأزָ㢳ְ
ㅷ颵㸚 涪 涪 涪 涪⸇ִקוחغؚכ饯ֹגְֻ 䧭卓暟 䧭卓暟 䧭卓暟 䧭卓暟
ㅷ颵㸚 涪 5FTU 涪 涪ח״ㅷ颵⡚♴5FTUד㸚 䧭卓暟 䧭卓暟 䧭卓暟ˏ 䧭卓暟
ㅷ颵㸚 涪 5FTU 涪 涪הذأزך㺘穠さ $IBOHF-JTU $IBOHF-JTU $IBOHF-JTU ㅷ颵כ涪הذأزך㺘䱸ז穠さד⥂
<膴简>$IBOHF-JTU $- הכ 3FWJFX׃גֲ㢌刿ך⽃⡘ UJDLFU涸ז $-ד荈⹛ؽٕسכ㔐 3FWJFXFSכؽٕسָ姻׃ְַ
3FWJFXFSכذأزַָ֮䗳׆颵㉏ׅ
תה ㅷ颵͒5&45ָծ⚕罏כⴖגⴖז ְ 涪הذأزך㺘穠さָㅷ颵⥂䭯ח䕵甧א
ذأزٖكٕ
ذأزٖكٕ ؟؎ؤ׀החذأزٖكٕⴽֽ 4UFTU .UFTU -UFTU
4UFTU 暴䗙 6OJU5FTUָً؎ٝ 넝鸞 ֮ײ橆㞮ד㸜㹀㹋遤〳腉 ذأز眔㔲ָ杞ְծ㞮歲٥ؒٓ٦ذأزָ㺁僒
<膴简>6OJU5FTUהכ 6OJU $MBTT .FUIPE 㼎韋ה׃ذأز ⦐ղך鿇ㅷָ⥋걾דַֹذأزׅ ؝٦س⚥䗰ה׃،فٗ٦ث
荈ⴓ⟃㢩כNPDLׅ
<膴简>6OJU5FTUהכ ⢽1FSTPOؙٓأךIFMMPذأزׅ DMBTT1FSTPO\ QSJWBUF4USJOHOBNF QVCMJD1FSTPO 4USJOHOBNF \ UIJTOBNFOBNF ^ QVCMJD4USJOHIFMMP
\ SFUVSOˑ)FMMP ˒ OBNF ^ ^
<膴简>6OJU5FTUהכ DMBTT1FSTPO5FTU\ !5FTU QVCMJDWPJEIFMMP \ 1FSTPOQFSTPOOFX1FSTPO ˑKPIO˒ BTTFSU5IBU QFSTPOIFMMP
JT ˑ)FMMP KPIO˒ ^ ^ ⢽1FSTPOؙٓأךIFMMPذأزׅ
<膴简>.PDLהכ ⯋ך0CKFDUה殯ז䮶莸ְׅ0CKFDUךֿה .PDL垷鸡ㅷծ鋅ׇ䱦ֽծ⩝暟ך䠐 ذأزד⣛㶷㼎韋ך0CKFDU縧ֹ䳔ִ䩛岀ךֿה
<膴简>.PDLהכ ⢽؟٦غ٦הך鸐⥋ " # 63- UFYUIUNM )PTU 5BSHFU$MBTT
.PDL$MBTT
<膴简>.PDLהכ ⢽؟٦غ٦הך鸐⥋ # " 钠鏾鸐ׅךח醱꧟ז鏣㹀ָ䗳銲 63-
<膴简>.PDLהכ ⢽؟٦غ٦הך鸐⥋ " #ˏ 63- .PDL0CKFDU#ˏח縧ֹ䳔ִծٖأهٝأ⩝鄲
.UFTU 暴䗙 窟さذأز 㢩鿇ך؟ـءأذيך䮶莸ְ鎸鶢 ⚥鸞 垥彊涸ז涪橆㞮ד㹋遤〳腉
㢩鿇⣛㶷דꬊ寸㹀涸חזֲ
-UFTU 暴䗙 &OE5P&OEذأز ،فٔⰋ⡤ָוֲ⹛⡲ַׅ鎸鶢ׅ إحز،حفזוד儗ַַָ 넝宏彊ד㞮歲⦼ثؑحؙזוחכぢַזְ
㢩鿇⣛㶷דꬊ寸㹀涸חזֲ
ذأزٖكٕ 4UFTU .UFTU -UFTU ⴓ ⴓ ⴓ 䓼ⵖ穄✪儗 ⳿勻ꣲ넝鸞ח TFD
NTFD 儗湡垥
ذأزٖكٕ ؟؎ؤ׀החذأزٖكٕⴽֽ 4UFTU .UFTU -UFTU ءأذيח㼎ׅ荈⥋ ⴓꨄծ鸞䏝
ذأزٖكٕ ؟؎ؤ׀החذأزٖكٕⴽֽ 4UFTU .UFTU -UFTU ؝٦سךㅷ颵넝 醡ㅷךㅷ颵넝
ذأزٖكٕ ♧菙涸זفٗآؙؑزךذأز嫰桦 4UFTU .UFTU -UFTU
ذأزٖكٕ .UFTU-UFTUָ㢳ְ؛٦أ 4UFTU .UFTU -UFTU ٌآُ٦ٕ侧ָꬊ䌢ח㢳ְ 6*ָ醱꧟
ذأزٖكٕ 4UFTUָ㢳ְ؛٦أ 4UFTU .UFTU -UFTU ؎ٝؿٓ禸 ر٦ة乼⡲ָ⚥䗰
*OEFYJOH$SBXMJOH
ذأزٖكٕהٔا٦أ Ϧιʔε -UFTU .UFTU 4UFTU /FUXPSL 0 MPDBMIPTU NPDL %#
0 0 NPDL 'JMF4ZTUFN 0 0 NPDL 6*4ZTUFN 0 ඇਪ NPDL 4ZTUFN$BMM 0 ඇਪ Y .VMUJ5ISFBE 0 0 ඇਪ 4MFFQ 0 0 Y ڥม 0 0 Y
ٖكֽٕךًٔحز 鎘皾项彁⸬卓涸חꂁⴓ׃װֻׅז فٗآؙؑزך朐䡾ָ鋅װֻׅז せ➰ֽח״ذأزך俑腞钠濼׃װֻׅז
תה ذأزכٖكٕדⴓֽ 4ذأزכծ؝٦سךㅷ颵חꟼ .-ذأزכծ醡ㅷךㅷ颵חꟼ
؎ًؙٝٔٝةٕז涪
䧭卓暟ٖكٕךⴓ겲 ؕشٔ،ثٍٝطٕ 涪ثٍطٕ ٔٔ٦أחכ黝ׁזְծ毟ְך֮ؽٕس ワ劍խ傈如ךؽٕس ⵃ欽罏ؒٝآص،ծ醡ㅷ䬐䔲وط٦آٍ 涪罏ָ傈䌢ך➬✲ח⢪ֲկ♧鸬ךذأزさ呓կ ワ劍խꥫ鹈ְֻךؽٕس ⵃ欽罏ؒٝآص،
䧭卓暟ٖكٕךⴓ겲 ذأزثٍطٕ Ĕծٔٔ٦أثٍطٕ 䭯竲ذأزך䧭籐ָ殢ך剢剑넝ؽٕس ワ劍խ剢 ⵃ欽罏爡ⰻךسحؙؿ٦سِ٦ؠ 爡ⰻⵃ欽ח罣ִծㅷ颵㛇彊麦䧭׃㸜㹀晛կ爡㢩Ⱅ ワ劍խתת ⵃ欽罏♧菙ِ٦ؠ
ًٔحز 稆傍ֻ㹋꿀ծ㸜㹀ٔٔ٦أ 媮ꥡ涸ד竰竲涸ז'# 䧭卓暟כծ䖚ղחثٍطٕ傻呓ׅךד㸜䗰կ 涪㣐胐ח遤ִկ 㼭ⵟח嗚鏾ׁךדؚٖٔحءָّٝ䖤װְׅ ⡦ָ㠨ךַծ⡦ד㠨ךַ
فٖ؟ـىحزثؑحؙ ٖؽُ،٦חNBJMָ굲עח遤荈⹛ثؑحؙ ذأزثؑحؙ -JOUثؑحؙ ؖ؎سٓ؎ٝ鸐ַ $MFBOז橆㞮ד㹋遤ׁ 㹋遤穠卓כٖؽُ،٦ח♧筰ח㾈ֻ
ًٔحز ثؑحؙ怩ָ幾 ؟ـىحز걼䏝ָ♳ָ تًזהֹכٖؽُ،٦ך䩛ְְ撕ׇזְ 竰竲涸ז筮葿כծ〳铣䚍ָ넝ְ涪罏ה⥋걾דֹ
תה 䧭卓暟ךثٍطؚٔٝכ㣐胐ז㹋꿀㺁钠׃㸜 㹀ׁ〳腉חׅ فٖ؟ـىحزثؑحؙכفٗتؙذ؍ؽذ؍ ֮־
"$$ⴓ匿
"$$ⴓ匿הכ "UUSJCVUF 㾩䚍 $PNQPOFOU 鿇ㅷ $BQBCJMJUZ
堣腉 א㹀纏׃גٔأؙⴓ匿ׅ䩛岀 וֲٔأؙ겥㖈⻉׃גծ 箢ㄤַׅ罋ִח欽ְ
"UUSJCVUF 㾩䚍 1SPEVDUךؗ٦ٙ٦س♳־גְֻ ꅾ銲ז✲כזח ا٦ءٍٕ 邌植⸂ 知⽃ 黝ⴖ فٓ؎غء٦ 䞔㜠Ⱏ剣׃ְِ٦ؠח⸂♷ִ
( 鸐׃ג荈ⴓ荈魦邌植דֹ 湫䠬涸חװְֿהַָ ꟼ䗰ךֿ֮הֽ⠗ִ ِ٦ؠر٦ةכⰟ剣ׁזְ 䭁䓸䚍 ➭ך،فٔה窟さדֹ
$PNQPOFOU 鿇ㅷ ءأذي⡲♳־ךח䗳銲ז鿇ㅷ せ鑁ח湱䔲 فٗؿ؍٦ٕ ؟٦ؙٕ ➂ أزٔ٦ي 鸐濼
䫎珲 ؝ًٝز ⱖ溪
$BQBCJMJUZ 堣腉 ءأذيָ㹋遤ׅ⹛⡲ ⹛鑁ח湱䔲 فٗؿ؍٦ٕ ا٦ءٍٕ 邌植⸂ 知⽃ 䭁䓸䚍 فٓ؎غء٦
濼➂הفٗؿ؍٦ٕⰟ剣ׅ طحزדך荈ⴓ⡲䧭דֹ 䞔㜠Ⰵ⸂ծ刿倜ծ⠗麦ָ知⽃ ،ؙإأ埄֮ל䞔㜠獳隁דֹ 鏩〳׃➂חךⰕדֹ
ٔأؙ㽯䏝 .JOJNBM ׀ֻ׆ַ 4PNF ֮玎䏝 $POTJEFSBCMF ַז .BYJNBM 剑㣐ꣲ 媮ꥡך؎ٝػؙزך㽯䏝
ِ٦ؠָ孡בַזְ״ֲזؒٓ٦ ِ٦ؠ䝢תַׇ׃זְؒٓ٦ ⵃ欽ءشָٔؔ⢪ִזֻזֲؒٓ٦ ِ٦ؠָ醡ㅷ⢪זֻזؒٓ٦
ٔأؙ㽯䏝 媮ꥡך걼䏝ך㽯䏝 3BSFMZ ׀ֻת 4FMEPN ת 0DDBTJPOBMMZ 儗ղ 0GUFO 걼籕
勴⟝ָ䟝⫷דֹזְ״ֲזؒٓ٦ 䟝⫷דָֹ֮תזְגؒٓ٦ 䟝⫷דֹ״ֻ⢪堣腉ךؒٓ٦ תַג䠬ׄךؒٓ٦
ٔأؙⴓ匿 ا٦ءٍٕ 邌植⸂ 知⽃ 黝ⴖ فٓ؎غء٦ ؼ٦زوحفַٔأؙך넝ְ鿇ⴓ鋅אֽ فٗؿ؍٦ٕ أزٔ٦ي 䫎珲
0GUFO 3BSFMZ .JOJNBM .BYJNBM $POTJEFSBCMF 3BSFMZ 4FMEPN 4PNF .JOJNBM .JOJNBM .JOJNBM 4FMEPN 3BSFMZ 3BSFMZ 0GUFO .JOJNBM $POTJEFSBCMF 3BSFMZ .JOJNBM 3BSFMZ .JOJNBM $POTJEFSBCMF 0GUFO 3BSFMZ .JOJNBM 4FMEPN .JOJNBM 3BSFMZ 3BSFMZ .JOJNBM
خ٦ٕ IUUQHPPHMFUFTUJOHCMPHTQPUKQHPPHMFUFTUBOBMZUJDTOPXJOPQFOIUNM 5FTU"OBMZUJDT
ٔأؙך箢ㄤ ٔأؙ幾ׇֿהכחזְ 麊鯄כٔأؗ٦ָ遤ַזֻגכזזְ ٔأؙכ箢ㄤדֹ穗騟ָ֮ ְא遤ַֻ 䎂傈ծ㕼傈ծ劉ծ㢸˘
וֲװג遤ַֻ 鮦ծꨵ鮦ծغأծ굲遤堣
ٔأؙך箢ㄤ ٔأؙ箢ㄤׅ倯岀罋ִծ涪ח《Ⰵ ٔأؙךٖكָٕ넝ְ㹋鄲鼘ֽ 涪欰ח孡בֹװְׅ➬穈Ⰵ ꧊⚥涸ח⽃⡤ذأز剅ֻ
ذأزفٓٝ罋ִ勞俱ה呎䬿חזկ
תה فٗتؙزך䚍颵ַٔأؙ罋ִך ָ㣐✲ ٔأؙכ嶊ׇזְָ箢ㄤ⳿勻
ذأزךأ؛٦ؚٔٝ
ذأزךأ؛٦ؚٔٝ ⮚猕ז5FTUFSד侧⦐鹈ך涪鋅桦׃ַדֹזְ 㛇劤涸חأ؛٦ٕ׃זְ
ذأزךأ؛٦ؚٔٝ غؚ涪鋅侧㟓װׅחכ ꧊⚥涸ח6OJU5FTU#VH1PPMך4J[F㼭ֻׁׅ 劤殢דذأزׅ倯岀然甧ׅ *OTUSVNFOUBUJPO#FUB5FTUJOH$MPVE4PVSDJOH
(PPHMF.BQך⢽ ⮚猕זذأة٦דꣲ歲ָ֮ 荈ⴓך⡝䨽ך姻׃ָׁ然钠⳿勻ךכ⡝ד➂ֽ ⡦♰鸐ך㹋ِ٦ؠךס׃גذأزכדֹזְ
(PPHMF.BQך⢽ 1SFWJFX 3FMFBTF 爡ⰻ ِ٦ؠ ♧菙ِ٦ؠ 爡ⰻ/FU :&4 /0 爡ⰻך侧♰➂דذأز
ِ٦ؠך䮶ׅذأة٦侧⼧➂侧♰➂ך㹋ِ٦ؠ
$ISPNFך⢽ ذأزخ،٦ؙٓؐسا٦ءؚٝ ءّحؾؚٝخ،٦ 㷕欰خ،٦ 䗡㢸خ،٦ 耵➂خ،٦ 䝤ְꦄ➂خ،٦ ؕأةو؎ؤخ،٦ ءّحؾؚٝ؟؎زח،ؙإأ飑Ⰵׅ ر٦ةך箟꧊٥⸇䊨٥獳⹛׃ג
㣐ꆀةـֻ٥ꞿ儗⹛歗זו %FWFMPQFS5PPMծةأؙوط٦آٍךⵃ欽 &YUFOTJPOⵃ欽ծذ٦و㢌刿זו ٔحث؝ٝذٝخⵃ欽 ⹛歗ծXFCHMծ
ذأزخ،٦הכ ِ٦ؠך䮶莸ְ倯خ،٦ח鋅甧ג嗚鏾倯岀 ٓٝسو٦ؙخ،٦ 煁瀖䭯ג如ך湡⽩ٓٝسو٦ؙ䩛粸ג ְֻػة٦ٝ ـٓؐؠؐ؍ٝسؐ 鏣㹀
%FWFMQPFS5PPM $ISPNFךٓٝسو٦ؙ⢽
תה ذأزכأ؛٦ٕ׃חְֻ 劤殢דךذأزכ剣欽
غؚ✮庠
غؚ✮庠 㷕统 遤侧 ⣛㶷侧 䗃橆撑 堣唒㷕统窟鎘ⴓ匿ח״ⴓ겲ׅ 'JMF غؚOPUغؚ #VH5SBDLFS 暴䗙䬄⳿
Ⰵ⸂ ⳿⸂
غؚ✮庠 ⴓ겲 遤侧 ⣛㶷侧 䗃橆撑 妀挿ꨇ׃ְָ搀㹱ז؝٦س嗚⳿׃ָ 'JMF 4DPSF 暴䗙䬄⳿ Ⰵ⸂
✮庠
ءٝفٕז غؚ✮庠 $PNNJU侧 ⡦䏝⥜姻׃גְؿ؋؎ٕכ )PU4QPUחז〳腉䚍ָ넝ְ 'JMF 4DPSF 暴䗙䬄⳿ Ⰵ⸂ ✮庠
ٓ٦وٝ،ٕ؞ٔؤي 4DPSF< > O UJJ殢湡ךغؚ⥜姻DPNNJUך儗< > غָؚ饯ֹװְׅؿ؋؎ٕךأ؝،皾⳿䒭 䒷欽IUUQXXXQVCMJDLFZKQCMPHQPTU@IUNM Oغؚ⥜姻׃㔐侧
ٓ٦وٝ،ٕ؞ٔؤي 〢ְ$PNNJUכأ؝،ָ♴ָ 4DPSF UJNF 䒷欽IUUQXXXQVCMJDLFZKQCMPHQPTU@IUNM
غؚ✮庠ך⢪倯 $PEF3FWJFX5PPMךؿ؋؎ٕ♧鋮חأ؝،ָד 'JMF/BNF #VH4DPSF $PNNJUT %J⒎ pMF
pMF pMF pMF ˟䩛ז؎ً٦آ
תה 箟꧊걼䏝דغؚ䱿庠דֹ 暴חYָ㢳ְؿ؋؎ٕכغַؚ֮
⟃♳ד׃կ זחַ罋חזל 劤顠ֲהְְה䙼ְתׅ