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
950
開発における治安指数の可視化のためにおこなったこと
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
190
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
1.6k
チーム単位で保守性を高める:独自指標と向上にむけた実践
tarappo
0
930
DartでMutation testingを してみよう
tarappo
1
570
組織の立ち上げと体制変更の1年
tarappo
2
1.8k
全員品質を目指して ドラゴン探し
tarappo
1
760
Xcode10から最新までのTestingをふりかえる
tarappo
0
3.1k
1人目SETとして入社して2ヶ月の間におこなったこと
tarappo
4
4.3k
治安維持のためにCI/CDサービスを活用しておこなったこと
tarappo
1
6.7k
Other Decks in Programming
See All in Programming
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
Jakarta EE meets AI
ivargrimstad
0
660
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
2k
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
140
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.7k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
950
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
260
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
みんなでプロポーザルを書いてみた
yuriko1211
0
280
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
99
Art, The Web, and Tiny UX
lynnandtonic
297
20k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
RailsConf 2023
tenderlove
29
900
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.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