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
770
Unity energy usage
mattak
0
860
Unidux 0.3.1
mattak
1
370
Other Decks in Programming
See All in Programming
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
720
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
310
From Translations to Multi Dimension Entities
alexanderschranz
2
130
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
testcontainers のススメ
sgash708
1
120
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
php-conference-japan-2024
tasuku43
0
230
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
170
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
250
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
540
Featured
See All Featured
The Invisible Side of Design
smashingmag
298
50k
How to train your dragon (web standard)
notwaldorf
88
5.7k
It's Worth the Effort
3n
183
28k
Being A Developer After 40
akosma
87
590k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Code Review Best Practice
trishagee
65
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Faster Mobile Websites
deanohume
305
30k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
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ָ㢳ְؿ؋؎ٕכغַؚ֮
⟃♳ד׃կ זחַ罋חזל 劤顠ֲהְְה䙼ְתׅ