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
970
開発における治安指数の可視化のためにおこなったこと
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
260
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
1.7k
チーム単位で保守性を高める:独自指標と向上にむけた実践
tarappo
0
1.1k
DartでMutation testingを してみよう
tarappo
1
660
組織の立ち上げと体制変更の1年
tarappo
2
1.8k
全員品質を目指して ドラゴン探し
tarappo
1
800
Xcode10から最新までのTestingをふりかえる
tarappo
0
3.3k
1人目SETとして入社して2ヶ月の間におこなったこと
tarappo
4
4.5k
治安維持のためにCI/CDサービスを活用しておこなったこと
tarappo
1
7k
Other Decks in Programming
See All in Programming
CI改善もDatadogとともに
taumu
0
170
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
160
DROBEの生成AI活用事例 with AWS
ippey
0
140
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
180
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
190
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
150
WebDriver BiDiとは何なのか
yotahada3
1
150
color-scheme: light dark; を完全に理解する
uhyo
6
460
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
210
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
8
2.4k
React 19アップデートのために必要なこと
uhyo
5
730
Writing documentation can be fun with plugin system
okuramasafumi
0
120
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Six Lessons from altMBA
skipperchong
27
3.6k
Thoughts on Productivity
jonyablonski
69
4.5k
Building Adaptive Systems
keathley
40
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
BBQ
matthewcrist
87
9.5k
Docker and Python
trallard
44
3.3k
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