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
March 24, 2021
Programming
4
980
開発における治安指数の可視化のためにおこなったこと
iOS Test TeaTime #2(2021/03/24)で話した資料です。
https://testonline.connpass.com/event/205626/
tarappo
March 24, 2021
Tweet
Share
More Decks by tarappo
See All by tarappo
自動テストの信頼性を高めるミューテーションテストの活用に向けて
tarappo
3
270
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
1.7k
チーム単位で保守性を高める:独自指標と向上にむけた実践
tarappo
0
1.1k
DartでMutation testingを してみよう
tarappo
1
670
組織の立ち上げと体制変更の1年
tarappo
2
1.8k
全員品質を目指して ドラゴン探し
tarappo
1
800
Xcode10から最新までのTestingをふりかえる
tarappo
0
3.4k
1人目SETとして入社して2ヶ月の間におこなったこと
tarappo
4
4.6k
治安維持のためにCI/CDサービスを活用しておこなったこと
tarappo
1
7k
Other Decks in Programming
See All in Programming
[JAWS DAYS 2025] 最近の DB の競合解決の仕組みが分かった気になってみた
maroon1st
0
220
バイセルでの AI を用いた開発の取り組み ~ Devin, Cursor の活用事例・知見共有 ~
umaidashi
0
140
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
9
1.5k
もっと大きなデータを送りませんか? エラーがゴロゴロ出るようなデータです
sublimer
0
130
もう一人で悩まない! 個の知見をチームの知見にする3つの習慣と工夫 / Into team knowledge.
honyanya
3
410
オレを救った Cline を紹介する
codehex
16
15k
読もう! Android build ドキュメント
andpad
1
150
TCAを用いたAmebaのリアーキテクチャ
dazy
0
260
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
160
Scala 3 で GLSL のための c-like-for を実装してみた
exoego
1
110
運用しながらリアーキテクチャ
nealle
0
290
아직도 SOLID 를 '글'로만 알고 계신가요?
sh1mj1
0
170
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Adopting Sorbet at Scale
ufuk
75
9.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
590
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Become a Pro
speakerdeck
PRO
26
5.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Statistics for Hackers
jakevdp
797
220k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Embracing the Ebb and Flow
colly
84
4.6k
Transcript
։ൃʹ͓͚Δ࣏҆ࢦͷ ՄࢹԽͷͨΊʹ͓͜ͳͬͨ͜ͱ 8FE J045FTU5FB5JNF ฏాහ೭ UBSBQQP
ࣗݾհ ฏాහ೭ˏ%F/"48&5 4PGUXBSF&OHJOFFSJO5FTU ϛογϣϯ w %F/"αʔϏεશൠͷ্࣭ w %F/"ΤϯδχΞͷ։ൃੜ࢈ੑ্ 48&5ͷॴଐνʔϜ
wࣗಈςετʢJ04ʣ w$*$% 2
ࠓͳ͢͜ͱ w ϓϩδΣΫτʹ͓͚Δʮ։ൃੜ࢈ੑʯʮ࣭ʯ໘ͰͷՄࢹԽʹ ͍ͭͯ w ՄࢹԽͷͨΊʹ͓͜ͳͬͨ͜ͱ w ՄࢹԽͷྫ 3
ରϓϩδΣΫτ ϥΠϒίϛϡχέʔγϣϯΞϓϦ
ʢ48&5ࢹͷʣ ՝ͷൃݟͱղܾ w ࣍ͷϑΟʔυόοΫαΠΫϧΛճͯ͠վળΛ͠ଓ͚͍ͨ w ՝ͳʹ͔ʁΛݟ͚ͭΔ w ՝ʹରͯ͠Կ͔͠ΒରࡦΛ͓͜ͳ͏ w ͦͷ݁ՌΛݟۃΊΔ
ͦͷͨΊʹʮϓϩδΣΫτʯͷঢ়ଶʹ͍ͭͯ ʮܧଓతʹʯʮʯͰΘ͔Δ͜ͱ͕ॏཁ 5
ϓϩδΣΫτͷঢ়ଶͷՄࢹԽ w ͲͷΑ͏ͳใ͔ΒͳʹΛՄࢹԽ͢Δ͔ ։ൃʹ͓͚Δ࣏҆ͱ͍͑ΔՕॴΛλʔήοτʹͯ͠ՄࢹԽ ˠʮ։ൃͷ࣏҆ࢦͷՄࢹԽʯ 6 ʮ։ൃੜ࢈ੑʯʮ্࣭ʯʹؔ͢Δͱ͜Ζ
։ൃʹ͓͚Δ࣏҆ࢦͷՄࢹԽ ιϑτΣΞσϦόϦͷύϑΥʔϚϯεͷଌఆج४Λࢀߟʹͭͭ͠ಠࣗʹ· ͣ࣍ͱܾΊͨ w ࣗಈςετͷར༻ w $*$%ͷར༻ঢ়گ w όάىථͷྨ 7
ͳʹΛՄࢹԽ͢Δ͔ TUλʔήοτ
։ൃʹ͓͚Δ࣏҆ࢦͷՄࢹԽ ʢ࠷ॳʹ͋ͬͨʣར༻Ͱ͖Δใݯ w ࣗಈςετͷར༻ w ςετέʔεɿʢ̍ʣϓϩμΫτίʔυɿ(JU)VC w ࣮ߦɿʢ̎ʣ$*$%αʔϏεɿ#JUSJTF w $*$%ͷར༻ঢ়گ
w ʢ̎ʣ$*$%αʔϏεɿ#JUSJTF w όάىථͷྨ w ʢ̏ʣόάىථɿ+*3" 8
ʢ̍ʣϓϩμΫτίʔυ (JU)VC w (JU)VCʹ͋Δςετίʔυ͔ΒςετέʔεΛΧϯτ w ֤ϦϦʔεόʔδϣϯͰͷਪҠΛܭଌ ςετίʔυঃʑʹ૿͍͑ͯΔΑ͏ʹݟ͍͑ͯͨ 9
ʢ̍ʣϓϩμΫτίʔυ (JU)VC w ͔͠͠ɺ࣮ࡍ w $*$%αʔϏεͰಈ͔͍ͯ͠ͳ͍ςετίʔυ͕͋Δ w ಈ͔ͳ͍ʢࣦഊ͢Δʣςετίʔυ͕͋Δ w $*$%αʔϏεͰͷ࣮ߦ݁Ռ͕$PNNJU4UBUVTʹө͞Ε͍ͯͳ͍
ʮ͋Δ͚ͩʯͰՁΛൃش͠ͳ͍ 10 ࣮ࡍʹར༻ͨ͠ͱ͍͏ใ͕ඞཁ
ʢ̎ʣ$*$%αʔϏε #JUSJTF w ϫʔΫϑϩʔͷ࣮ߦ݁Ռ͔ΒใΛऔಘ w #JUSJTFʹ"1*͕͋ΓաڈͷใऔಘͰ͖Δ w IUUQTBQJEPDTCJUSJTFJP w
͔͠͠ɺ w ϫʔΫϑϩʔͷ࣮ߦλΠϛϯά͕গͳ͍ w ϫʔΫϑϩʔࣗମ͕͍ͬͯͳ͍ 11
ʢ̎ʣ$*$%αʔϏε #JUSJTF w ϫʔΫϑϩʔͷ࣮ߦλΠϛϯά͕গͳ͍ཧ༝ w ࣮ߦ͕͔͔࣌ؒΔͨΊ13࣌ʹಈ͔͢ͷݫ͍͠ w ࣗಈςετͩͱʙఔ͔͔͍ͬͯΔঢ়ଶʢʹ/JHIUMZ͚ͩͰಈ͔͍ͯ͠Δʣ w
13ɺNFSHF࣌ʹಛఆͷ̍ϫʔΫϑϩʔ͚ͩΛࢦఆ͍ͯ͠Δ ݁Ռͱͯ͠$*$%ͷར༻͘σʔλ͕গͳ͍ঢ়ଶ ͦͦͱͯ͠ʮϏϧυ͕Ͱ͖ͳ͍ʯʮςετ͕ࣦഊ͢Δʯʹؾͮ͘ͷ͕ޙखʹͳΔ 12
ʢ̏ʣόάىථ +*3" w શମͷΛݟΔͨΊʹ+*3"ͷμογϡϘʔυΛ༻ҙ w ใΛόʔδϣϯ୯ҐͰՄࢹԽ͠ਪҠΛݟΕΔΑ͏ʹͨ͠ w ෆ۩߹छผॏཁͳͲͰ͚ͯදࣔ 13 ͲͷΑ͏ͳىථ͕ଟ͍͔Λ֬ೝ
ʢ̏ʣόάىථ +*3" w ϑΥʔϚοτͷ w ਓʹΑͬͯىථ࣌ͷใ͕ͿΕ͍ͯΔ w ݁Ռͱͯ͠ɺෆ۩߹छผͰʮͦͷଞʯ͕ଟ͘ͳͬͨΓ͍ͯͨ͠ w τϨʔαϏϦςΟͷ
w मਖ਼ͱͯ͠ͲͷΑ͏ͳ͜ͱΛ͓͜ͳ͔ͬͨΘ͔Βͳ͍͜ͱ͕͋Δ w ৄࡉΛΔͨΊʹ(JU)VCͷ13Ұཡ͔ΒରͱͳΔ13Λ୳ͨ͠Γ͍ͯͨ͠ 14
ࠓ͋ΔใΛ ͦͷ··ར༻ͯ͠ ՄࢹԽ͢Δʹ ྔɺ༰తʹෆे
ՄࢹԽʹΉ͚ͯ w σʔλͷཧ w Կ͕͋ͬͯԿ͕׆༻Ͱ͖Δ͔Λཧ͑͠ΔΑ͏ʹͨ͠ 16 σʔλͷՄࢹԽ
ࠓͷ՝ͱରԠࡦ w ࣗಈςετͷར༻ w ίʔυͰͳ͘ʮͦΕΛ࣮ࡍʹར༻ͨ͠ʯͱ͍͏ใ͕ඞཁ w ˠ$*$%αʔϏεͰఆظతʹಈ͔͢ w $*$%ͷར༻ঢ়گ w
࣮ߦ͢ΔλΠϛϯάΛ૿͢ w όάىථͷྨ w ϑΥʔϚοτͷௐɺτϨʔαϏϦςΟͷڧԽ 17 ରԠʢ̍ʣ #JUSJTFपΓͷ ཧ ରԠʢ̎ʣ +*3"पΓͷ ཧ
#JUSJTFपΓͷཧ w ϫʔΫϑϩʔͷཧ w আɿෆඞཁͳTUFQɺෆඞཁͳϫʔΫϑϩʔ w ՃɿϏϧυΛ͢ΔϫʔΫϑϩʔ w վળɿϢʔςϦςΟϫʔΫϑϩʔʹΑΔڞ௨ԽɺςετͷՌΛอଘɺ(JU)VC$PNNJU4UBUTVʹө w
࣮ߦ࣌ؒͷݮ w ςετͷฒྻ࣮ߦʢ̐ฒྻʣ w 5SJHHFSͰಈ͘ϫʔΫϑϩʔͷมߋ w ෳϫʔΫϑϩʔ͕ಈ͘Α͏ʹଞͷϫʔΫϑϩʔΛಈ͔͢ϫʔΫϑϩʔʹมߋ 18
#JUSJTFपΓͷཧ w ࣮ߦ࣌ؒͷݮ w ࣮ߦ࣌ؒͷݮɿશମతʹఔ w ࣗಈςετͷ࣮ߦ࣌ؒɿˠ w ࣮ߦλΠϛϯάͷ૿Ճ w
13࣌ɿςετɺϏϧυ w NFSHF࣌ɿςετɺ 19 ͜ΕΒʹΑΓʮࣗಈςετͷར༻ʯʮ$*$%ͷར༻ঢ়گʯͷͨΊͷσʔλ૿Ճ ݁Ռ ࣮ߦ࣌ؒͷݮʹΑΓՄೳʹͳͬͨ
#JUSJTF͔ΒಘΒΕΔใ w ֤ϫʔΫϑϩʔͷ࣮ߦ݁Ռ w ରϫʔΫϑϩʔɿϏϧυɺࣗಈςετɺΞϓϦͷ w ࣮ߦ݁Ռͷৄࡉ w ࣮ߦ࣌ؒ w
࣮ߦ݁ՌʢޭɺࣦഊɺBCPSUʣ w ࣮ߦͨ͠ਓʢ13Ͱ͋Ε13࡞ऀʣ w ϒϥϯν໊ w ར༻ͨ͠4UBDLใ 20 (&5ɿBQQT\BQQTMVH^CVJMET
ࣗಈςετͷใ w #JUSJTFͰ࣮ߦ࣌ʹಘΒΕΔใ w ςετέʔεʢޭɺࣦഊʣ w ίʔυΧόϨοδ 21 #JUSJTF࣮ߦ࣌ʹίʔυͱ݁ͼ͚ͭΔ #JUSJTFͰ݁ՌΛग़͢Α͏ʹ͠Ռʹอଘ
ࣗಈςετͷใ w (JU)VC$PNNJU4UBUVTʹσʔλө w #JUSJTF͔Βөͤ͞Δ͜ͱ͕Ͱ͖Δ w ୭Ͱ͔ΜͨΜʹ(JU)VC͔ΒݟΔ͜ͱ͕Ͱ͖Δ w "1*ͰσʔλΛऔΔ͜ͱ͕Ͱ͖Δ 22
+*3"पΓͷཧ w όάੳ͕ΑΓͰ͖ΔΑ͏ʹԼهΛ࣮ࢪ w ʢ̍ʣϑΥʔϚοτௐ w ݱঢ়ͷىථΛશνΣοΫ͠ɺͦΕΛݩʹඞཁͳͷΛௐ w ʢ̎ʣνέοτͱमਖ਼ίʔυͷ݁ͼ͚ͭ w
%BOHFSΛར༻͠13࣌Ͱ13ͷEFTDSJQUJPOʹ͋Δ+*3"ΞυϨεʹ (JU)VCͷ13ΞυϨεΛࣗಈొ 23
+*3"पΓͷཧ ʢ̍ʣϑΥʔϚοτௐ w ݱঢ়ͷىථΛ֤όʔδϣϯ୯ҐͰશνΣοΫ w ใͷᐆດ͕͋͞Δͱ͜Ζ͕ͳ͍͔Ͳ͏͔ w ݱঢ়ͷใͰΓΔ͔Ͳ͏͔ͷݕ౼ 24 ৄࡉ·ͨผͷػձʹ
+*3"पΓͷཧ ʢ̎ʣνέοτͱमਖ਼ίʔυͷ݁ͼ͚ͭ w %BOHFSΛར༻ w 13ͷEFTDSJQUJPOʹ͋Δ+*3"ΞυϨεʹ(JU)VCͷ13ΞυϨεΛࣗಈొ 25 ࣗͷ13ΞυϨεΛهࡌʢෳొՄʣ ϥϕϧͷࣗಈ༩ʢʹ2"ରԠʣ
ՄࢹԽʹ͚ͨߏҊ Ͳ͔͜͠Β ίʔυ ใݩ ͳʹ͔͠Β ͳʹ͔͠Β ͜͜Λ Ͳ͏͢Δ͔
ՄࢹԽʹΉ͚ͯ w ʢ̍ʣूΊͨใΛͲ͜ʹอଘ͢Δ͔ʁ w কདྷతʹ#JH2VFSZΛ༧ఆ w ࠓ͔ΜͨΜʹ͢ΔͨΊʹεϓϨουγʔτΛར༻ w ʢ̎ʣอଘͨ͠ใΛԿΛͬͯՄࢹԽ͢Δ͔ʁ w
%BUB4UVEJPʢσʔλϙʔλϧʣΛͬͯՄࢹԽ w IUUQTEBUBTUVEJPHPPHMFDPN w #JH2VFSZεϓϨουγʔτͳͲෳͷσʔλιʔεΛݩʹՄࢹԽͰ͖Δ 27
ߏ 28 σʔλϙʔλϧ ใݩ อଘઌ ίʔυ औಘ อଘ ఆظ࣮ߦ
ݱࡏͷ ։ൃͷ࣏҆ࢦ w $*҆ఆੑ w ࣮ߦ࣌ؒɺ࣮ߦ݁Ռɺʢʴϒϥϯνʣ w ࣗಈςετ׆༻ w ςετέʔεʢޭɺࣦഊʣɺίʔυΧόϨοδ
w όά 29
σʔλͷՄࢹԽʢྫʣ +*3"͕ด͡ΒΕΔ·Ͱͷ࣌ؒʢฏۉதԝ (JU)VCͷ13͕ด͡ΒΕΔ·Ͱͷ࣌ؒʢฏۉதԝ ௐࠪ࣌ؒ (JU)VCͷ13͕ด͡ΒΕΔ·Ͱͷ࣌ؒ ಈ࡞֬ೝ Ћʢͪ࣌ؒʣ+*3"͕ด͡ΕΔ·Ͱͷ࣌ؒ όά͕मਖ਼͞ΕΔ·Ͱʹ͔͔Δ࣌ؒͷৄࡉΛνΣοΫ͠Ͳ͜ʹ͕͔͔͍࣌ؒͬͯΔ͔ΛՄࢹԽ͢Δ
σʔλͷՄࢹԽͱվળ׆ಈ 31 ࣗಈςετͷ࣮ߦ࣌ؒʢ13୯Ґʣ ࣗಈςετͷ݁Ռʢ̍ɿޭɺ̎ɿࣦഊɺ̏ɿ"CPSUʣ ࣄɿ࣮ߦ͕࣌ؒଟগ͔͔͍ͬͯΔ ݪҼɿ#JUSJTFͰͷTFUVQॲཧͰ͋Δఔ͔͔͍ͬͯΔ ରॲɿTFUVQॲཧͷݟ͠ʢݮʣ ࣄɿࣦഊ͍ͯ͠Δέʔε͕Ұఆ͋Δ ݪҼɿࣦ̍ഊ͢Δͱ์ஔ͞ΕΔέʔε͕͋Δ ରॲɿࣦഊ࣌ʹ͓͚Δ௨ઌͷมߋ
ˍ࠷ۙɺ#SBODIQSPUFDUJPOSVMFTΛಋೖ ʢཁվྑʣ$*$%αʔϏεͷৄࡉͳ݁Ռ͕ඞཁ
͓ΘΓʹ w ϓϩδΣΫτͷ։ൃͷ࣏҆ࢦΛՄࢹԽʹΉ͚͍ͯΖ͍Ζͱ͓͜ͳ ͍·ͨ͠ w ݱࡏͷʮใʯͰΓ͍ͯΔΘ͚Ͱͳ͘ɺใͬͱඞཁ w ࠓʮόάͷมߋࣦഊʯʮύϑΥʔϚϯεܭଌ݁ՌʯσʔλΛऔͬ ͍ͯ·͢ w
ಛఆϓϩδΣΫτ͚ͩͰͳ͘ɺଞϓϩδΣΫτͷൺֱॏཁ w ൺֱ͢Δ͜ͱͰݟ͑Δͷଟ͍ͣ 32