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
自動テストの信頼性を高めるミューテーションテストの活用に向けて
Search
tarappo
October 18, 2024
Technology
3
360
自動テストの信頼性を高めるミューテーションテストの活用に向けて
2024/10/18 iOS Test Night #13の登壇資料
tarappo
October 18, 2024
Tweet
Share
More Decks by tarappo
See All by tarappo
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
6
1.7k
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
1.9k
チーム単位で保守性を高める:独自指標と向上にむけた実践
tarappo
0
1.2k
DartでMutation testingを してみよう
tarappo
1
800
組織の立ち上げと体制変更の1年
tarappo
2
1.9k
全員品質を目指して ドラゴン探し
tarappo
1
840
Xcode10から最新までのTestingをふりかえる
tarappo
0
4k
1人目SETとして入社して2ヶ月の間におこなったこと
tarappo
4
4.8k
治安維持のためにCI/CDサービスを活用しておこなったこと
tarappo
1
7.3k
Other Decks in Technology
See All in Technology
Claude Codeから我々が学ぶべきこと
s4yuba
6
1.7k
生成AI導入の効果を最大化する データ活用戦略
ham0215
0
110
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
170
モバイルゲームの開発を支える基盤の歩み ~再現性のある開発ラインを量産する秘訣~
qualiarts
0
1.1k
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
290
ビジネス文書に特化した基盤モデル開発 / SaaSxML_Session_2
sansan_randd
0
250
Unson OS|48時間で「売れるか」を判定する AI 市場検証プラットフォーム
unson
0
170
データ基盤の管理者からGoogle Cloud全体の管理者になっていた話
zozotech
PRO
0
320
【OptimizationNight】数理最適化のラストワンマイルとしてのUIUX
brainpadpr
0
130
Nx × AI によるモノレポ活用 〜コードジェネレーター編〜
puku0x
0
330
VLMサービスを用いた請求書データ化検証 / SaaSxML_Session_1
sansan_randd
0
210
20250807_Kiroと私の反省会
riz3f7
0
120
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Embracing the Ebb and Flow
colly
86
4.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Practical Orchestrator
shlominoach
190
11k
GitHub's CSS Performance
jonrohan
1031
460k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Faster Mobile Websites
deanohume
308
31k
Done Done
chrislema
185
16k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
Optimizing for Happiness
mojombo
379
70k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Transcript
UBSBQQP ࣗಈςετͷ৴པੑΛߴΊΔ ϛϡʔςʔγϣϯςετͷ׆༻ʹ͚ͯ J045FTU/JHIU
ࣗݾհ ฏాහ೭ʢUBSBQQPʣ ͔ΜͨΜͳܦྺ w %F/"48&5ˠ9ˠ4NBSU)3 ୲ྖҬ ɾʮ։ൃੜ࢈ੑͷ্ʯʮ࣭ͷ୲อʯΛϛογϣϯ
͡Ίʹ ͜ΕͰɺࣗಈςετΛͬͱ࣮Ͱ͖ΔΑ͏ʹͳΓ·͢Ͷ w Έͳ͞Μɺࣗಈςετ࣮͍ͯ͠·͔͢ʁ w ͜͜ͰϞόΠϧք۾ʹ͓͍ͯࣗಈςετΛ࣮͢Δػձ૿͖͍͑ͯͯΔ͔ ͱࢥ͍·͢ ͞Βʹ w 9DPEF͔Βͷʮ4XJGU5FTUJOHʯ͕ར༻Ͱ͖ΔΑ͏ʹͳΓ·ͨ͠
͡Ίʹ ͦ͜ͰϛϡʔςʔγϣϯςετΛࢼͯ͠Έ·͠ΐ͏ ͦ͜Ͱ࣭Ͱ͢ w ࣗಈςετͪΌΜͱඞཁͳςετέʔεΛߟ͑ͯ࡞͍ͬͯ·͔͢ʁ w ࠓ͋ΔࣗಈςετͰ w ͳʹ͔͋ͬͨͱ͖ʹΛݟ͚ͭΒΕΔࣗ৴͕͋Γ·͔͢ʁ w
ίʔυΧόϨοδͷͰͳ͍ͱஅͨ͠Γ͍ͯ͠·ͤΜ͔ʁ
ϛϡʔςʔγϣϯςετͱʁ w ςετίʔυͷे͞Λଌఆ͢ΔͨΊͷख๏ w ϓϩμΫτίʔυʹมҟΛೖΕͨͱ͖ʹͦΕΛςετίʔυͰݕͰ͖Δ͔Ͳ͏͔ w มҟʹϛϡʔλϯτ w มҟΛೖΕΔͱʁ Λʹมߋ
͜ͷΑ͏ʹมߋ͞Εͨͱ͖ʹʮςετίʔυʯͰݕͰ͖·͔͢ʁ
ϛϡʔςʔγϣϯςετͱʁ w มҟΛೖΕͨίʔυʹରͯ͠ςετ࣮ߦ w ςετ͕མͪΔʢʹ,JMMFEʣ w ςετ͕མͪͳ͍ʢʹ4VSWJWFEʣ w 4VSWJWFEͷ͕ଟ͍΄Ͳ՝͕͋Δͱ͍͑Δ w
,JMMFEͱ4VSWJWFEͷׂ߹ΛΈͯ.VUBUJPO4DPSF͕ܾ·Δ w ,JMMFEͨ͠มҟΛೖΕͨ.VUBUJPO4DPSF
ϛϡʔςʔγϣϯςετʹ͓͚Δมҟͷύλʔϯ w ύλʔϯྫ w "03ɿBSJUINFUJDPQFSBUPSSFQMBDFNFOU w ࢉज़ԋࢉࢠஔ͖͑ w B CˠBCɺBCͳͲʹม
w -$3ɿMPHJDBMDPOOFDUPSSFQMBDFNFOU w ཧ݁߹ࢠஔ͖͑ w BCˠBccCͳͲʹม w 303ɿSFMBUJPOBMPQFSBUPSSFQMBDFNFOU w ؔԋࢉࢠஔ͖͑ w BCˠBCɺBCͳͲʹม
ϛϡʔςʔγϣϯςετͷͨΊͷϥΠϒϥϦ w 4USZLFSʢIUUQTTUSZLFSNVUBUPSJPʣ w +BWB4DSJQUɺ$ɺ4DBMB w 1*5FTUʢIUUQTQJUFTUPSHʣ w +BWBBOE+7. w
.VMMʢIUUQTHJUIVCDPNNVMMQSPKFDUNVMMʣ w $ɺ$ w NVUBUJPO@UFTUʢIUUQTQVCEFWQBDLBHFTNVUBUJPO@UFTUʣ w %BSU
J04ʹ͓͚Δϛϡʔςʔγϣϯςετ w ϥΠϒϥϦ w IUUQTHJUIVCDPNNVUFSNVUBUJPOUFTUJOHNVUFS w ηοτΞοϓͱ࣮ߦ·ͰͷྲྀΕ w Πϯετʔϧ w
ઃఆϑΝΠϧͷ༻ҙʢNVUFSDPOGZNMʣ w ࣮ߦίϚϯυͷࢦఆ w ର֎ϑΝΠϧͷࢦఆ w ࣮ߦ w NVUFSGPSNBUIUNMPVUQVUSFTVMUIUNM
αϯϓϧίʔυ w ݱ࣌Ͱͷ༷ w ԁͰϙΠϯτ͕खʹೖΔ w ϙΠϯτ্ݶϙΠϯτ w ԁΛ͑͜ΔߪೖऀϙΠϯτ w
࣍ͷ͍ͣΕ͔ͷ݅ΛຬͨͤϙΠϯτഒ w ྸ͕ࡀҎ্ w ϥϯΫ͕Λ͍͑ͯΔ
ςετΛߟ͑ͯΈΑ͏ w ʮ୯७ʹʯΧόϨοδʹͯ͠ΈΔ w DBTFʣԁͷͱ͖ϙΠϯτ w DBTFʣࡀҎ্ͷͱ͖͔ϥϯΫ͕Ҏ্ͷͱ͖ʹϙΠϯτ ഒ w DBTFʣԁΛ͑͜Δͱ͖ϙΠϯτ
w DBTFʣԁҎ্ͰԁҎԼͷߪೖֹۚϙΠϯτ DBTF DBTF DBTF DBTF DBTF DBTF DBTF DBTF
ςετͷ࣮ߦ݁Ռ DBTF DBTF DBTF DBTF ςετͷ࣮ߦ݁Ռ ΧόϨοδ݁Ռʢˋʣ ͜ΕͰςετέʔεΓ͍ͯ·͔͢ʁ
ςετέʔεΓͯ·͔͢ʁ w DBTFʣԁͷͱ͖ϙΠϯτ w DBTFʣࡀҎ্ͷͱ͖͔ϥϯΫ͕Ҏ্ͷͱ͖ʹϙΠϯτ ഒ w DBTFʣԁΛ͑͜Δͱ͖ϙΠϯτ w DBTFʣԁҎ্ͰԁҎԼͷߪೖֹۚϙΠϯτ
DBTF DBTF DBTF DBTF ͜͜Ͱ ϛϡʔςʔγϣϯςετΛͬͯΈ·͠ΐ͏
NVUFSͷ࣮ߦ݁ՌʢϨϙʔτʣ w ࣍ͷมҟΛೖΕͨࡍʹςετ͕ࣦഊ͍ͯ͠ ͳ͍ w VTFSBHFʹม͑ͨͱ͖ w VTFSSBOLʹม͑ͨͱ͖
ςετίʔυΛݟͯ͠ΈΑ͏ w ࣍ͷมҟΛೖΕͨࡍʹςετ͕ࣦഊ͍ͯ͠ ͳ͍ w DBTFɿVTFSBHFʹม͑ͨͱ͖ w DBTFɿVTFSSBOLʹม͑ͨͱ͖ w ྸͷڥքΛݟ͍ͯΔΑ͏Ͱݟ͍ͯͳ͍
w ࡀͱࡀΛ͍ͬͯΔ͕ยํ্ֹۚݶΛݟ͍ͯΔ͚ͩ w ϥϯΫʹ͍ͭͯಛʹͳʹݟ͍ͯͳ͍ w SBOLΛ͑͜Δςετέʔε͕ͭͳ͍
ςετίʔυͷՃ w ࣍ͷมҟΛೖΕͨࡍʹςετ͕ࣦഊ͍ͯ͠ ͳ͍ w DBTFɿVTFSBHFʹม͑ͨͱ͖ w DBTFɿVTFSSBOLʹม͑ͨͱ͖ w ϙΠϯτ্ݶΛݟΔςετέʔεͱ্ݶΛݟͳ͍
έʔεͰςετΛΘ͚ͯՃ w ϥϯΫʹ͍ͭͯͷςετέʔεՃ
ʢ࠶ʣNVUFSͷ࣮ߦ݁ՌʢϨϙʔτʣ
NVUFSʹ͓͚Δมҟύλʔϯ w NVUFSͰ࣍ͷύλʔϯΛ༻ҙ͍ͯ͠·͢ʢҰ෦ͷΈهࡌʣ w ࢀߟɿIUUQTHJUIVCDPNNVUFSNVUBUJPOUFTUJOHNVUFSCMPCNBTUFS%PDTNVUBUJPO@PQFSBUPSTNE w /FHBUF$POEJUJPOBMT w $IBOHF-PHJDBM$POOFDUPS
ϛϡʔςʔγϣϯςετʹ͓͚Δ՝ʢͷҰͭʣ w ϛϡʔςʔγϣϯςετࣗମͷߟ͑ྺ࢙͕ઙ͍Θ͚Ͱͳ͍ ͳͥɺͦ͜·Ͱར༻͞Εͯͳ͔ͬͨͷ͔ w ʮมҟʯΛϓϩμΫτίʔυʹೖΕͯɺςετίʔυΛ࣮ߦ͢Δ w ˠมҟΛೖΕ͚࣮ͨͩߦ࣌ؒ૿͍͑ͯ͘ w ˠ͓͜ͳ͏ͷʹʮ࣮ߦ࣌ؒʯ͕՝ʹͳΔέʔε͕ଟ͍
͔͠͠ w ࡢࠓͷʮϚγϯύϫʔʯʢͳͲʣʹΑΓ࣮ݱՄೳʹͳ͖͍ͬͯͯΔʢͱ͍͑Δʣ J04ͷςετͰͲ͏ͳͷ͔ʁ
J04ͷࣗಈςετͷ՝ w ࣗಈςετͷ࣮ߦͷྲྀΕ w ୯७ʹʮมҟʯΛೖΕͨ߹ͷྲྀΕ ʮมҟʯ͕छྨͰ࣮ߦ࣌ؒͷ૿Ճ͕ܹ͍͠ Ͳ͏͢ΔͱΑ͍ͷ͔ʁ
࣮ߦ࣌ؒʹର͢ΔΞϓϩʔν w ՝ w ຖճɺมҟΛೖΕͯςετͷ࣮ߦΛ͍͕͔͔ͯͯ࣌ؒ͠Γ͗ͯ͢͠·͏ w NVUFSͰͲͷΑ͏ͳ͜ͱΛ͓͜ͳ࣮ͬͯߦ࣌ؒͷॖΛ͓͜ͳ͍ͬͯΔͷ͔ w ɹϏϧυͱςετ࣮ߦͷ
w ɹىಈ࣌ڥมͷར༻
࣮ߦ࣌ؒʹର͢ΔΞϓϩʔν w Ϗϧυͱςετ࣮ߦͷʢ9DPEF͔Βʣ w CVJMEGPSUFTUJOHɿϏϧυ w UFTUXJUIPVUCVJMEJOHɿϏϧυ͞ΕͨͷΛςετ࣮ߦ ɹϏϧυͱςετ࣮ߦͷ
࣮ߦ࣌ؒʹର͢ΔΞϓϩʔν w มҟΛ࠷ॳʹ༻ҙ w ىಈ࣌ڥมͰ࣮ߦ͢ΔίʔυΛذ w ʢ" ɺʢ#ʣͷͱ͜Ζ ɹىಈ࣌ڥมͷར༻
࣮ߦ࣌ؒʹର͢ΔΞϓϩʔν w NVUFSͷมҟͷೖΕํ w ϓϩμΫτίʔυʹશͯͷมҟΛೖΕΔ w ىಈ࣌ڥมͰݺͼग़͢ίʔυΛ੍ޚ͢Δ ɹىಈ࣌ڥมͷར༻ มҟΛೖΕͨ͋ͱͷϓϩμΫτίʔυ
YDUFTUSVOϑΝΠϧ ىಈ࣌ڥม
࣮ߦ࣌ؒʹର͢ΔΞϓϩʔν w มҟʹରԠ͢Δʮىಈ࣌ڥมʯ͕ࢦఆ͞ΕΔ w ࣮ߦέʔε̍ɿʢ"ʣʹରԠ͢Δىಈ࣌ڥมΛYDUFTUSVOʹઃఆ w ࣮ߦέʔε̎ɿʢ#ʣʹରԠ͢Δىಈ࣌ڥมΛYDUFTUSVOʹઃఆ ɹىಈ࣌ڥมͷར༻
࣮ߦ࣌ؒͷॖޮՌ ॖ࣌ؒ ͜͜ΛฒྻԽͰ͖Ε͞ΒʹॖՄೳ
ϛϡʔςʔγϣϯςετͷޮՌ w ϝϦοτ w ςετ࿙Εʹؾ͚ͮΔ͜ͱ͕͋Δ w ςετઃܭ͕ʮෆेʯʮۤखʯͳͱ͖ʹޮՌେ w ίʔυΧόϨοδͱҧͬͨࣗಈςετͷ'# w
˞ίʔυΧόϨοδͱซͤͯ͏ͱྑ͍
ϛϡʔςʔγϣϯςετͰͷҙ w ѻ͏ࡍͷҙ w ࣗಈςετ͕Ұఆ͋Δ͜ͱ͕લఏ w ΧόϨοδͱซͤͯར༻͢Δͱྑ͍ w Ͳ͏͍ͬͨมҟύλʔϯ͕͋Δ͔ϥΠϒϥϦͷ࣮࣍ୈ w
ϛϡʔςʔγϣϯείΞ͕ˋͰ͋Εͳ͍ͱ͍͏Θ͚Ͱͳ͍ w ࣮ߦ࣌ؒͷ͞ w ࣮ߦରߜΔඞཁ͕͋Δ w ݕͨ͠ͷ͕શ͖ͯ͢ରͱݶΒͳ͍ʹνΣοΫ͢Δίετ͕͔͔Δ w Ձϛϡʔλϯτͷέʔε͋Δ
ϛϡʔςʔγϣϯςετͰͷҙ NVUFSଆͰͷରԠ͋ͬͯͲ͏࣮ͯ͠ߦ͔͔࣌ؒΓ·͢ w ࣮ߦ࣌ؒɿʢ̍ʣ࣮ߦରͷϑΝΠϧʷʢ̎ʣมҟύλʔϯʷʢ̏ʣςετ έʔε w ʢ̍ʣʹରͯ͠ͷΞΫγϣϯ w ࣮ߦର֎ͷϑΝΠϧΛઃఆ w
NVUFSͰઃఆϑΝΠϧͰࢦఆ w ࣮ߦ͢ΔରϑΝΠϧΛࢦఆ w pMFTUPNVUBUFΦϓγϣϯͰࢦఆ w ʢ̎ʣʹରͯ͠ͷΞΫγϣϯ w มҟύλʔϯΛߜΔ w PQFSBUPSTͰࢦఆ ࣮ߦ࣌ؒͷ ࣮ߦରΛߜͬͯ$*Ͱͷ࣮ߦ࣌ؒҰఆ͔͔Δ ʮ͍ͭʯʮͲ͜Ͱʯ࣮ߦ͢Δ͖͔ߟ͑Δඞཁ͕͋Δ
ϛϡʔςʔγϣϯςετͰͷҙ w ʮ4VSWJWFEʯʹͳ͍ͬͯΔέʔε͕ςετίʔυΛՃ͢Δ͖ͷ͔ΛௐΔඞ ཁ͕͋Δ w ରԠΛͯ͠ˋʹͳΒͳ͍έʔεҰఆ͋Δ w ྫʣՁϛϡʔςʔγϣϯɿมҟͤͯ݁͞Ռ͕มΘΒͳ͍έʔε͋Δ ݕͨ͠ͷ͕ʮՁʯ͕͋Δ͔ͷ֬ೝ ͜ΕΛՃຯ্ͨ͠ͰͲ͏͍ͬͨ;͏ʹར༻͢Δ͔Λߟ͑Δඞཁ͕͋Δ
͓ΘΓʹ w ࣗಈςετ͋ͨΓ·͑ͷ࣌ʹͳΓͭͭ͋Γ·͢ w ࠓ·ͰҎ্ʹʮςετઃܭʯॏཁͰ͋Γʮςετٕ๏ʯॏཁͰ͢ w ϛϡʔςʔγϣϯςετͬͯࣗಈςετΛͬͱ׆༻͍͖ͯ͠·͠ΐ͏