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
320
自動テストの信頼性を高めるミューテーションテストの活用に向けて
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.5k
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
1.8k
チーム単位で保守性を高める:独自指標と向上にむけた実践
tarappo
0
1.2k
DartでMutation testingを してみよう
tarappo
1
740
組織の立ち上げと体制変更の1年
tarappo
2
1.9k
全員品質を目指して ドラゴン探し
tarappo
1
830
Xcode10から最新までのTestingをふりかえる
tarappo
0
3.8k
1人目SETとして入社して2ヶ月の間におこなったこと
tarappo
4
4.7k
治安維持のためにCI/CDサービスを活用しておこなったこと
tarappo
1
7.2k
Other Decks in Technology
See All in Technology
大規模PaaSにおける監視基盤の構築と効率化の道のり
lycorptech_jp
PRO
0
180
金融システムをモダナイズするためのAmazon Elastic Kubernetes Service(EKS)ノウハウ大全
daitak
0
120
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.6k
Houtou.pm #1
papix
0
660
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.2k
カンファレンスのつくりかた / The Conference Code: What Makes It All Work
tomzoh
8
920
面接を通過するためにやってて良かったこと3選
sansantech
PRO
0
130
AIの電力問題を概観する
rmaruy
1
210
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
350
Cursor Meetup Tokyo
iamshunta
0
120
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.5k
libsyncrpcってなに?
uhyo
0
110
Featured
See All Featured
Balancing Empowerment & Direction
lara
1
84
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.6k
Making Projects Easy
brettharned
116
6.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
We Have a Design System, Now What?
morganepeng
52
7.6k
The Language of Interfaces
destraynor
158
25k
Adopting Sorbet at Scale
ufuk
76
9.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Gamification - CAS2011
davidbonilla
81
5.3k
Producing Creativity
orderedlist
PRO
346
40k
BBQ
matthewcrist
88
9.7k
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 ϛϡʔςʔγϣϯςετͬͯࣗಈςετΛͬͱ׆༻͍͖ͯ͠·͠ΐ͏