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
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automa...
Search
Takuto Wada
PRO
December 20, 2024
Technology
15k
37
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
2024年12月20日
ソフトウェアテストシンポジウム 2024 東海
#jassttokai24
Takuto Wada
PRO
December 20, 2024
More Decks by Takuto Wada
See All by Takuto Wada
2026年のソフトウェア開発を考える(2026/07版) / Agentic Software Engineering 2026-07 Findy Edition
twada
PRO
24
9.9k
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
27
18k
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
52
36k
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
46
45k
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
192
130k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend
twada
PRO
89
53k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
3.9k
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
15
7.9k
Other Decks in Technology
See All in Technology
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
1k
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
920
設計レビューとAIハーネスで向き合う AIが生み出した新しいボトルネックの対処法 / Design Reviews and AI Harnesses Against New Bottlenecks Created by AI
nstock
4
420
Amazon Quick 入門!
ysuzuki
2
130
VPCセキュリティ対応の最新事情
nagisa53
1
190
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
880
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
600
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
730
副作用のある Lambda でも Lambda Power Tuning は使えるのか / lambda-power-tuning-side-effects
koukihosaka
1
140
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
480
kaonavi Tech Night#1
kaonavi
0
150
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
Odyssey Design
rkendrick25
PRO
2
730
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
730
Ethics towards AI in product and experience design
skipperchong
2
330
Designing for Performance
lara
611
70k
Discover your Explorer Soul
emna__ayadi
2
1.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Transcript
৫ʹࣗಈςετΛॻ͘ จԽΛ͔ࠜͤΔઓུ ʢౙ൛ʣ 5BLVUP8"%" %FD !+B4455PLBJ !U@XBEB !UXBEB 📷🙆 🙆
!UXBEB JEUXBEB KBTTUUPLBJ rev.1
͔ΒΞοϓσʔτΛॏͶ͖ͯͨߨԋͷ࠷৽൛Ͱ͢ IUUQTTQFBLFSEFDLDPNUXBEB
ιϑτΣΞੈքΛ ҿΈࠐΜͩ 03/92
લఏ*5ࣄۀͷίΞʹͳͬͨ IUUQTXXXFWBOHFMJTNKQSFTPVSDFTCVTJOFTTXJUIJU
IUUQTOPUFDPNNJ[@LVTIJEBOOBEBD 1.#0,ୈ൛ͷେվగ༧ଌܕ͔ΒదԠܕ
ܾΊΒΕͨͷΛ ܾΊΒΕͨͱ͖·Ͱʹ ഁͳ͘࡞Δ ͩΕ͕͑Θ͔Βͳ͍ͷΛ ࡧ͠ͳ͕Β࡞Γଓ͚Δ ͔͕͑͠ࠁʑͱมΘ͍ͬͯ͘ ༧ଌܕ͔ΒదԠܕ
Θ͔Βͳ͍ͳΓʹΓΑ͏͋Δ
IUUQTXXXTMJEFTIBSFOFUBUTOBLBEBTT ܦ#1தా͞ΜͷϨϙʔτ
IUUQTXXXTMJEFTIBSFOFUBUTOBLBEBTT ମݧͨ͜͠ͱͷͳ͍αʔϏεΛ࡞Δํ๏
IUUQTXXXTMJEFTIBSFOFUBUTOBLBEBTT ϦϦʔεͨ͠ʮඞͣؒҧ͍ͬͯΔʯ
IUUQCMPHTJUNFEJBDPKQIJSBOBCFMFBOTUBSUVQJOUSPEVDUJPOJOKBQBOFTFIUNM ϦʔϯελʔτΞοϓ
IUUQTUFDICMPHUBCFMPHDPNFOUSZEFWFMPQFSQSPEVDUJWJUZJO ۀͷੜ࢈࣭ཧ͔ΒΞδϟΠϧ։ൃͷ։ൃੜ࢈ੑͷྲྀΕ
ιϑτΣΞͷ։ൃྗͱاۀͷۀʹ ҼՌ͕ؔ͋Δ͜ͱ͕ ౷ܭతʹ༗ҙͳܗͰཱূ͞Εͨ 13/92
ॻ੶ʰ-FBOͱ%FW0QTͷՊֶʱ IUUQTXXXBNB[PODPKQEQ
৫ͷύϑΥʔϚϯεͷଌఆࢦඪऩӹੑɺࢢ༗ɺੜ࢈ੑͷͭ ͜ΕΒͭաڈͷௐࠪݚڀ<8JEFOFS>ͰෳճʹΘͨΓ༗ޮੑཱ͕ূ͞Εͯ ͓Γɺࢿརӹ 30* ͱͷߴ͍૬͕ؔ͋ΓɺܠؾͷӨڹΛड͚ͳ͍ ͜͜ͷੳͰɺϋΠύϑΥʔϚʔͷύϑΥʔϚϯεͷଌఆ݁Ռ͕ϩʔύϑΥʔϚ ʔͷͦΕΛ্ճΔʹ͋Γɺ྆ࣾͷରൺҰ؏ͯ͠ഒΛ͍͑ͯΔ ͜ΕʹΑΓɺ৫ͷιϑτΣΞσϦόϦͷέΠύϏϦςΟ ೳྗɺػೳ ɺ
৫ʹڝ૪্ͷ༏ҐੑΛͨΒ͢͜ͱཱ͕ূ͞Εͨ ιϑτΣΞσϦόϦͷೳྗɺ৫ʹڝ૪্ͷ༏ҐੑΛͨΒ͢͜ͱཱ͕ূ͞Εͨ ʰ-FBOͱ%FW0QTͷՊֶʱQ IUUQTXXXBNB[PODPKQEQ
ͭͷΩʔϝτϦΫε wϦʔυλΠϜ wσϓϩΠස w.553 ฏۉम෮࣌ؒ wมߋࣦഊ IUUQTXXXBNB[PODPKQEQ
ϦʔυλΠϜͱσϓϩΠසԾઆݕূϓϩηεΛਝʹճ͢ IUUQJLFZIBUFCMPKQFOUSZ
.553.FBOUJNFUP3FDPWFSZ3FQBJS IUUQTXXXTMJEFTIBSFOFUEFDPEFEPTSFTJUFSFMJBCJMJUZFOHJOFFSJOHJOB[VSFPOB[VSF Ұ෦վม ͜ͷฏۉ͕.553
IUUQTEPSBEFWQVCMJDBUJPOT 5IF4UBUFPG%FW0QT3FQPSUT
IUUQTEPSBEFWSFTFBSDIEPSBSFQPSU 2019
ΤϦʔτ ϋΠύϑΥʔϚʔ ϛσΟΞϜ ύϑΥʔϚʔ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ະຬ ͔Βिؒ ि͔ؒΒϱ݄ ϱ݄͔Β
σϓϩΠස ΦϯσϚϯυ ෳճ ճ͔Βिճ िճ͔Β݄ճ ݄ճ͔Βʹճ .553 ࣌ؒະຬ ະຬ ະຬ ि͔ؒΒϱ݄ มߋࣦഊ ߏൺ ͭͷΩʔϝτϦΫεͷௐࠪʢສઍ݅Ҏ্ͷճΛΫϥελʔੳʣ w։ൃͱ࣭τϨʔυΦϑͷؔͰͳ͍ IUUQTEPSBEFWSFTFBSDIEPSBSFQPSU 2019
ΤϦʔτ ΤϦʔτͱϩʔύϑΥʔϚʔͷࠩ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ະຬ ഒ ϱ݄͔Β σϓϩΠස ΦϯσϚϯυ ෳճ
ഒ ݄ճ͔Βʹճ .553 ࣌ؒະຬ ഒ ि͔ؒΒϱ݄ มߋࣦഊ ഒ ͭͷΩʔϝτϦΫεͷௐࠪʹ͓͚ΔΤϦʔτΫϥελͱϩʔύϑΥʔϚʔΫϥελͷࠩ w৫ؒͷ͔ࠩͳΓେ͖͘ɺ͞Βʹ։͍͍ͯΔʢʣ wѹతͳࠩܧଓతσϦόϦ%FW0QTͷ৫తͳࢿͷࠩ IUUQTEPSBEFWSFTFBSDIEPSBSFQPSU 2019
IUUQTEPSBEFWSFTFBSDIEPSBSFQPSU 2021
ΤϦʔτ ϋΠύϑΥʔϚʔ ϛσΟΞϜ ύϑΥʔϚʔ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ࣌ؒະຬ ͔Βिؒ ϱ݄͔Β Ҏ্
σϓϩΠස ΦϯσϚϯυ ෳճ िճ͔Β݄ճ ݄ճ͔Βʹճ ʹճະຬ .553 ࣌ؒະຬ ະຬ ͔Βिؒ Ҏ্ มߋࣦഊ ߏൺ ͭͷΩʔϝτϦΫεͷௐࠪʢສઍ݅Ҏ্ͷճΛΫϥελʔੳʣ IUUQTEPSBEFWSFTFBSDIEPSBSFQPSU 2021 w։ൃͱ࣭τϨʔυΦϑͷؔͰͳ͍
w৫ؒͷ͔ࠩͳΓେ͖͘ɺ͞Βʹ։͍͍ͯΔʢʣ wѹతͳࠩܧଓతσϦόϦ%FW0QTͷ৫తͳࢿͷࠩ ΤϦʔτ ΤϦʔτͱϩʔύϑΥʔϚʔͷࠩ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ࣌ؒະຬ ഒ Ҏ্ σϓϩΠස
ΦϯσϚϯυ ෳճ ഒ ʹճະຬ .553 ࣌ؒະຬ ഒ Ҏ্ มߋࣦഊ ഒ ͭͷΩʔϝτϦΫεͷௐࠪʹ͓͚ΔΤϦʔτΫϥελͱϩʔύϑΥʔϚʔΫϥελͷࠩ IUUQTEPSBEFWSFTFBSDIEPSBSFQPSU 2021
IUUQTDMPVEHPPHMFDPNSFTPVSDFTEFWPQTTUBUFPGEFWPQT IMKB 2024
ΤϦʔτ ϋΠύϑΥʔϚʔ ϛσΟΞϜ ύϑΥʔϚʔ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ະຬ ͔Βिؒ ि͔ؒΒϱ݄ ϱ݄͔Β
σϓϩΠස ΦϯσϚϯυ ෳճ ճ͔Βिճ िճ͔Β݄ճ ݄ճ͔Βʹճ .553 ࣌ؒະຬ ະຬ ະຬ ि͔ؒΒϲ݄ มߋࣦഊ ߏൺ ͭͷΩʔϝτϦΫεͷௐࠪʢສઍ݅Ҏ্ͷճΛΫϥελʔੳʣ IUUQTDMPVEHPPHMFDPNSFTPVSDFTEFWPQTTUBUFPGEFWPQT IMKB 2024 w։ൃͱ࣭τϨʔυΦϑͷؔͰͳ͍
w৫ؒͷࠩҾ͖ଓ͖େ͖͍ wѹతͳࠩܧଓతσϦόϦ%FW0QTͷ৫తͳࢿͷࠩ ΤϦʔτ ΤϦʔτͱϩʔύϑΥʔϚʔͷࠩ ϩʔύϑΥʔϚʔ ϦʔυλΠϜ ະຬ ഒ ϱ݄͔Β σϓϩΠස
ΦϯσϚϯυ ෳճ ഒ ݄ճ͔Βʹճ .553 ࣌ؒະຬ ഒ ि͔ؒΒϲ݄ มߋࣦഊ ഒ ͭͷΩʔϝτϦΫεͷௐࠪʹ͓͚ΔΤϦʔτΫϥελͱϩʔύϑΥʔϚʔΫϥελͷࠩ IUUQTDMPVEHPPHMFDPNSFTPVSDFTEFWPQTTUBUFPGEFWPQT IMKB 2024
ͭΊͷΩʔϝτϦΫε3FMJBCJMJUZ
Ͱ͏ͪͷʢձࣾcۀcιϑτΣΞʣ ಛघ͔ͩΒʜʜ 30/92
IUUQTXXXBNB[PODPKQEQ ʰ-FBOͱ%FW0QTͷՊֶʱQQ γεςϜͷλΠϓͱύϑΥʔϚϯεʹ૬͕ؔͳ͍
զʑύοέʔδιϑτΣΞɺ4P3ɺΈࠐΈιϑτΣΞΛ͍ͬͯΔνʔϜ ύϑΥʔϚϯε͕͘ɺ4P&৽छͷγεςϜΛ͍ͬͯΔνʔϜύϑΥʔϚ ϯε͕ߴ͍ͱ༧ଌ͍͔ͯͨ͠ΒͰ͋Δɻͦͯͦ͠ͷ༧ଌ͕֎Ε͍ͯͨ͜ͱΛཱূ͢ Δσʔλ͕ಘΒΕͨɻ ͜ΕʹΑͬͯɺΞʔΩςΫνϟͷ࣮ͷৄࡉΑΓ ʢ͜ͷ͋ͱઆ໌͢Δ̎ͭͷʣΞʔΩςΫνϟ͕࣋ͭಛੑʹ ͢Δ͜ͱͷॏཁੑ͕ු͖ூΓʹͳͬͨɻ γεςϜͷλΠϓͱύϑΥʔϚϯεʹ૬͕ؔͳ͍ IUUQTXXXBNB[PODPKQEQ ʰ-FBOͱ%FW0QTͷՊֶʱQ
ΞʔΩςΫνϟͷಛੑͷதʹେ͖ͳӨڹΛٴ΅͠͏Δͷ͕ͭ͋Δɻզʑͷௐ ࠪͰɺ࣍ͷͭͷࣄ߲ʹʮಉҙͰ͖Δʯͱճͨ͠৫Ͱ͋ΕϋΠύϑΥʔϚʔ Ͱ͋ΔՄೳੑ͕ߴ͍ɺͱ͍͏݁Ռ͕ग़ͨͷͰ͋Δɻ wςετͷେΛɺ౷߹ڥΛඞཁͱͤͣʹ࣮ࢪͰ͖Δ wΞϓϦέʔγϣϯΛɺͦΕ͕ґଘ͢ΔଞͷΞϓϦέʔγϣϯαʔϏε͔Β ಠཱͨ͠ܗͰɺσϓϩΠ·ͨϦϦʔεͰ͖Δ ΞʔΩςΫνϟʹؔΘΔ͜ͷͭͷಛੑΛɺզʑʮςετ༰қੑʯͱ ʮσϓϩΠ༰қੑʯͱݺΜͰ͍Δ͕ɺ͜ͷ͕ͭύϑΥʔϚϯεΛ ্ͤ͞Δ্ͰॏཁͩͱࢥΘΕΔɻ ςετ༰қੑͱσϓϩΠ༰қੑʢσϓϩΠಠཱੑʣ
IUUQTXXXBNB[PODPKQEQ ʰ-FBOͱ%FW0QTͷՊֶʱQ
IUUQTMPHNJKQUFDIBSUJDMFT ྫςεϥͷมߋසͱΞʔΩςΫνϟ
IUUQTMPHNJKQUFDIBSUJDMFT ྫςεϥͷมߋසͱΞʔΩςΫνϟ
IUUQTMPHNJKQUFDIBSUJDMFT ྫςεϥͷมߋසͱΞʔΩςΫνϟ
ݫ͍͠ݱ࣮ 37/92
ϩʔύϑΥʔϚʔͱͳΔ͕ڧ͍ͷɺ࣍ͷΑ͏ʹճ ͨ͠νʔϜͰ͋ͬͨ w ʮߏஙதͷιϑτΣΞ ͋Δ͍ར༻͢Δඞཁ ͷ͋ΔҰ܈ͷαʔϏε ɺଞࣾ ֎ઌͳͲ ͕։ ൃͨ͠ΧελϜιϑτΣΞͰ͋Δʯ
ݫ͍͠ݱ࣮ IUUQTXXXBNB[PODPKQEQ ʰ-FBOͱ%FW0QTͷՊֶʱQ
ʮιϑτΣΞσϦόϦͷύϑΥʔϚϯε৫શମͷ ۀʹॏཁͳӨڹΛٴ΅͢ʯͱ͍͏ࣄ࣮ɺࣗ৫ͷࣄ ۀʹͱͬͯઓ্ུॏཁͳιϑτΣΞͷ։ൃೳྗΛࣗ ৫ͷத֩తཁૉͱͯ͠Ґஔ͚ͣʹ֎෦ҕୗ͢Δ͜ͱ ͷڧྗͳূͱͳΔɻ ݫ͍͠ݱ࣮ IUUQTXXXBNB[PODPKQEQ ʰ-FBOͱ%FW0QTͷՊֶʱQ
ࠩผԽͷ߹͍ͱۀϩδοΫͷෳࡶ͞ʹΑΔۀྖҬͷྨ IUUQTXXXPSFJMMZDPKQCPPLT
ࠩผԽͷ߹͍ͱۀϩδοΫͷෳࡶ͞ʹΑΔۀྖҬͷྨ IUUQTXXXPSFJMMZDPKQCPPLT ύοέʔδ 4BT4ར༻ ֎෦ҕୗ "*׆༻ ֎෦ҕୗ "*׆༻
ΞδϦςΟͱมߋ༰қੑ
IUUQTXXXTMJEFTIBSFOFUBUTOBLBEBTT ϓϩάϥϛϯάΛΔͱ͍͏͜ͱ
"*ͱͷڠۀͱαϯυΠονϫʔΫϑϩʔΛཧղ͢Δ
ςετࣗಈԽͱ اۀͷۀͷҼՌؔ 45/92
ςετࣗಈԽͱاۀͷۀͷҼՌؔ IUUQTXXXBNB[PODPKQEQ ςετͷࣗಈԽʹ͓͍ͯɺ*5ύϑΥʔϚϯεͷ༧ଌईͱͳΓ͏Δ ͜ͱ͕໌ͨ͠ͷ࣍ͷͭ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ ։ൃऀओମͰड͚ೖΕςετΛ࡞ɾཧ͠ɺ खݩͷ։ൃڥͰ؆୯ʹ࠶ݱɾमਖ਼Ͱ͖Δ͜ͱ ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
ςετࣗಈԽͱاۀͷۀͷҼՌؔ IUUQTXXXBNB[PODPKQEQ ςετͷࣗಈԽʹ͓͍ͯɺ*5ύϑΥʔϚϯεͷ༧ଌईͱͳΓ͏Δ ͜ͱ͕໌ͨ͠ͷ࣍ͷͭ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ ։ൃऀओମͰड͚ೖΕςετΛ࡞ɾཧ͠ɺ खݩͷ։ൃڥͰ؆୯ʹ࠶ݱɾमਖ਼Ͱ͖Δ͜ͱ ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
IUUQTXXXBNB[PODPKQEQ ςετʹ߹֨ͨ͠ιϑτΣΞͰ͋ΕϦϦʔεՄೳɺෆ߹֨Ͱ͋Εॏେͳ ෆ۩߹͕͋ΔɺͱνʔϜ͕֬৴Ͱ͖ΔΑ͏ͳςετΛ࣮ࢪ͍ͯ͠Δ͜ͱ ޡݕʢِཅੑGBMTFQPTJUJWFʣݟಀ͠ʢِӄੑGBMTFOFHBUJWFʣ͕ଟ ͘ɺ৴པੑʹ͚ܽΔςετεΠʔτ͕͋·Γʹଟ͗͢Δ ৴པͷߴ͍ςετεΠʔτΛ࡞Γ্͛ΔܧଓతͳྗͱࢿՁ͕͋Δ ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ
ޭͱࣦഊɺِཅੑͱِӄੑ IUUQTHJIZPKQEFWTFSJBMTBWBOOBMFUUFS Օॴͷಛఆͱम෮ σϓϩΠɺϚʔδ σϓϩΠɺϚʔδ Օॴͷಛఆͱम෮
৴པෆೳੑʢ fl BLJOFTTʣ͕ʹۙ͢ΔͱɺςετՁΛࣦ͍࢝ΊΔ IUUQTXXXPSFJMMZDPKQCPPLT ʰ(PPHMFͷιϑτΣΞΤϯδχΞϦϯάʱQ
ςετࣗಈԽͱاۀͷۀͷҼՌؔ IUUQTXXXBNB[PODPKQEQ ςετͷࣗಈԽʹ͓͍ͯɺ*5ύϑΥʔϚϯεͷ༧ଌईͱͳΓ͏Δ ͜ͱ͕໌ͨ͠ͷ࣍ͷͭ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ ։ൃऀओମͰड͚ೖΕςετΛ࡞ɾཧ͠ɺ खݩͷ։ൃڥͰ؆୯ʹ࠶ݱɾमਖ਼Ͱ͖Δ͜ͱ ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
զʑͷੳ݁ՌͷதͰڵຯਂ͍ͷʮओͱͯ͠ 2"νʔϜ͔֎ઌ͕࡞ɾཧ͍ͯ͠Δࣗಈςε τɺ*5ύϑΥʔϚϯεͱ૬ؔؔʹͳ͍ʯͱ͍͏ Ͱ͋Δ IUUQTXXXBNB[PODPKQEQ ʰ-FBOͱ%FW0QTͷՊֶʱQ ݫ͍͠ݱ࣮
IUUQTXXX fl JDLSDPNQIPUPTPLJOBXBTPCB Ξϯνύλʔϯങ͖ͬͯͨࣗಈςετ ࣗಈςετͷྔΛ૿ͨ͢Ίʹ֎෦ҕୗΦϑγϣΞϦϯάͳͲΛ׆ ༻͢ΔࣄྫΛ༷ʑͳݱͰݟ͖ͯ·͕ͨ͠ɺ΄ͱΜͲͷࣄྫʹ͓͍ͯɺ ೲೖޙͷςετίʔυϓϩμΫτͷ༷มߋͷࡍʹϝϯςφϯε͞Ε ͣɺςετ͕ࣦഊ͢Δ··ͰٺͪՌ͍͖ͯͯ·͢ɻςετίʔυΛॻ͘ ೳྗΛҭͯͳ͚ΕϝϯςφϯεͰ͖·ͤΜ
ςετϐϥϛουͱΞΠεΫϦʔϜίʔϯΞϯνύλʔϯ IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF
ΞϯνύλʔϯΞΠεΫϦʔϜίʔϯ IUUQTXXXPSFJMMZDPKQCPPLT ʰγεςϜӡ༻ΞϯνύλʔϯʱQ
։ൃऀओମͰड͚ೖΕςετΛ࡞ɾཧ͠ɺखݩͷ։ൃڥͰ؆୯ʹ࠶ݱɾमਖ਼Ͱ͖Δ͜ͱ IUUQTXXXBNB[PODPKQEQ ։ൃऀ͕ड͚ೖΕςετͷ࡞ɾཧʹؔ༩͢ΔͱɺͭͷॏཁͳޮՌ͕ੜ͡Δ ։ൃऀ͕ςετΛ࡞͢Δͱίʔυ͕ΑΓςετՄೳͳͷʹͳΔ ࣗಈςετʹର͢ΔΛ։ൃऀ͕ෛ͏ͱɺςετʹର͢Δҙ͕ࣝߴ·Γɺ ͦͷཧमਖ਼ʹΑΓྗ͢Δ͜ͱʹͳΔ ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
IUUQTXXXUIPVHIUXPSLTDPNSBEBSUFDIOJRVFTCSPBEJOUFHSBUJPOUFTUT &&ςετͷաࢿ5FDIOPMPHZ3BEBSͰʮ)0-%ʯʹϨʔςΟϯά͞Εͨ
IUUQTXXXUIPVHIUXPSLTDPNSBEBSUFDIOJRVFTCSPBEJOUFHSBUJPOUFTUT ςετࣗಈԽͷྗশࢍʹ͢Δ͕ɺࢲ͕ͨͪޮՌతͰͳ͍ͱߟ͑Δൣͳ౷߹ςετ ʢ˞&&ςετʣʹաࢿ͍ͯ͠Δ৫Λଟ͘ݟ͔͚Δɻ ͜ͷΑ͏ͳςετɺඞཁͳΠϯϑϥɺσʔλɺαʔϏεΛͯ͢උ͑ͨϑϧػೳͷςετ ڥΛඞཁͱ͢ΔͨΊɺ໌Β͔ʹίετ͕͔͔Δɻ ͜ΕΒͯ͢ͷґଘؔͷదͳόʔδϣϯΛཧ͢Δʹɺ͔ͳΓͷௐΦʔόʔϔου͕ ඞཁͱͳΓɺϦϦʔεαΠΫϧ͕͘ͳΓ͕ͪͰ͋Δɻ ࠷ޙʹɺςετͦͷͷ͕੬͘ʹཱͨͳ͍͜ͱଟ͍ɻྫ͑ɺςετ͕ࣦഊͨ͠ͷ͕৽͠ ͍ίʔυͷ͍ͤͳͷ͔ɺόʔδϣϯͷෆҰகʹΑΔґଘؔͷ͍ͤͳͷ͔ɺڥͷ͍ͤͳͷ͔ Λஅ͢Δʹ࿑ྗ͕͔͔ΓɺΤϥʔϝοηʔδ͕ΤϥʔͷݪҼΛಥ͖ࢭΊΔॿ͚ʹͳΔ͜ͱ
΄ͱΜͲͳ͍ɻ ͜ΕΒͷ൷ɺࣗಈԽ͞ΕͨʮϒϥοΫϘοΫεʯ౷߹ςετΛҰൠతʹࢹ͍ͯ͠Δ͜ ͱΛҙຯ͢ΔͷͰͳ͍͕ɺΑΓ༗༻ͳΞϓϩʔνɺࣗ৴ͱϦϦʔεසͷόϥϯεΛͱ ΔͷͰ͋Δͱߟ͑Δɻ &&ςετͷաࢿ5FDIOPMPHZ3BEBSͰʮ)0-%ʯʹϨʔςΟϯά͞Εͨ
4.63'େ͖Ίͷࣗಈςετ܈ͷઃܭ࣌ʹߟྀ͖͢τϨʔυΦϑ IUUQTUFTUJOHHPPHMFCMPHDPNTNVSGCFZPOEUFTUQZSBNJEIUNM S: 動作スピード M: 保守性 U: リソース使用率 R: 信頼性(決定性、安定性)
F: 忠実性(本番環境との類似度) 中心から離れるほど高スコア
ΞΠεΫϦʔϜίʔϯ͔Βϐϥϛου IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF 6OJU *OUFHSBUJPO && खಈςετ 6OJU *OUFHSBUJPO &&
ࣗಈςετͷಈػ 61/92
ΞϯνύλʔϯίετݮΛओతʹ͢Δ IUUQTXXX fl JDLSDPNQIPUPTNEHSPVQ ࣗಈςετΛॻ͘ओతࢦඪΛʮίετݮʯʹ͢Δͱɺظతʹࣗಈςε τͷֶशίετɺதظతʹอकίετʹΑͬͯࢥͬͨΑ͏ͳίετݮޮՌ͕ ಘΒΕͣɺखಈςετʹΔͱ͍͏அΛͯ͠͠·͍͕ͪͰ͢ ࣗಈςετҎ֎ͷٕज़ࢪࡦͰίετݮΛओతʹ͢Δͱࣦഊ͕ͪ͠Ͱ͢
IUUQTUXJUUFSDPNUPLPSPUFOTUBUVT มߋ༰қੑͷߴ͍ιϑτΣΞʹΑΔΞδϦςΟͷ֫ಘ
ࣗಈςετͷಈػৗʹมԽΛՄೳʹ͢ΔͨΊ IUUQTXXXPSFJMMZDPKQCPPLT ʰ(PPHMFͷιϑτΣΞΤϯδχΞϦϯάʱQ
ͯ͢ΛΞδϟΠϧͳܗͰػೳͤ͞Δʹɺ༏Εͨઃܭʹ͚ͨϓϥΫςΟεΛ ࣮ફ͢Δඞཁ͕͋Γ·͢ɻͱ͍͏ͷɺ༏ΕͨઃܭʹΑͬͯมߋ͕༰қʹͳΔͨ ΊͰ͢ɻͦͯ͠มߋ͕༰қͰ͋Δ߹ɺ͋ΒΏΔϨϕϧͰ᪳ͳ͘ௐ͕Մೳʹ ͳΔͷͰ͢ɻ ͦΕ͕ͦ͜ΞδϦςΟʔͱ͍͏ͷͳͷͰ͢ɻ ΞδϦςΟͷຊ࣭͋ΒΏΔϨϕϧͰ᪳ͳ͘มԽ͢Δ ʰୡਓϓϩάϥϚʔୈ൛ʱQ
ͳͥࣗಈςετΛॻ͘ͷ͔ 🙅 ίετΛݮ͢ΔͨΊ 🙆 ૉૣ᪳͘ͳ͘มԽ͠ଓ͚ΔྗΛಘΔͨΊ
৴པੑͷߴ͍࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δঢ়ଶΛอͭ͜ͱͰɺ ։ൃऀʹࠜڌ͋Δࣗ৴Λ༩͑ɺ ιϑτΣΞͷΛ࣋ଓՄೳʹ͢Δ͜ͱ ࣗಈςετͷత
จԽΛ͔ࠜͤΔԦಓ ڭҭͱਓࣄධՁ 68/92
৽ਓݚमυϫϯΰͷΤϯδχΞ৽ਓݚमͷࣄྫ IUUQTDIOJDPWJEFPKQEXBOHPFOHJOFFSCMPNBHBBS
IUUQTUFDIDZHBNFTDPKQBSDIJWFT ࣮ݚम$ZHBNFTࣾϫʔΫγϣοϓͷࣄྫ
ਓࣄධՁ$"35")0-%*/(4ͷʮٕज़ྗධՁձʯͷࣄྫ IUUQTTFMFDLDD
ಓअಓ 72/92
w ΞϝϦΧਓඈͼࠐΊ͋ͳͨӳ༤Ͱ͢ w ΠΪϦεਓඈͼࠐΊ͋ͳͨਈ࢜Ͱ͢ w υΠπਓඈͼࠐΉͷ͕͜ͷધͷنଇͰ͢ w ΠλϦΞਓඈͼࠐΉͱঁੑʹͯ·͢Α w ϑϥϯεਓඈͼࠐ·ͳ͍Ͱ͍ͩ͘͞
w ຊਓΈΜͳඈͼࠐΜͰ͍·͢Α ຊਓΛಈ͔͢ʹࣄྫ͕ޮՌతʢޮ͖ա͗ʹҙʣ IUUQTXXXBNB[PODPKQEQ
IUUQTOFXTUCTDPKQOFXTFZFUCT@OFXTFZFIUN આ໌ͷ͖Λసͤ͞Δ
આ໌ͷ͖Λసͤ͞Δ IUUQTUXJUUFSDPNIJSPLJ@EBJDIJTUBUVT
IUUQTXXX fl JDLSDPNQIPUPTELBMP lςετΛॻ࣌ؒ͘ͳ͍z
ςετΛॻ͕࣌ؒ͘ͳ͍ ͷͰͳ͘ɺςετΛॻ ͔ͳ͍͔Β͕࣌ؒͳ͘ͳ ΔͷͰ͢ɻ +BNFT(SFOOJOH "HJMF+BQBOجௐߨԋΑΓ
lಈ͘ίʔυʹ৮ΕΔͳz IUUQTXXX fl JDLSDPNQIPUPT!/
IUUQTUXJUUFSDPNU@XBEBTUBUVT Կͯ͠ͳ͍͔ΒյΕΔ
ٕज़͔ΒจԽ 80/92
ٕज़ʮ͕ʯจԽʮʹʯӨڹΛ༩͑Δ IUUQTXXXBNB[PODPKQEQ զʑʮܧଓతσϦόϦΛ࣮ફ͢Δͱɺ৫จԽʹӨڹΛ༩͑ Δ͜ͱ͕Ͱ͖ΔʯͱͷԾઆΛཱͯͨɻͦͯ͠ੳͷ݁ՌɺͦΕ͕ ਅͰ͋Δ͜ͱΛཱূͰ͖ͨ ʰ-FBOͱ%FW0QTͷՊֶʱQ
จԽʹӨڹΛٴ΅͢ཁૉ IUUQTXXXEFWPQTSFTFBSDIDPNSFTFBSDIIUNM
IUUQTTQFBLFSEFDLDPNTOPP[FSSFBEZQMBZFSPOFZVOJLPORJZFGBMTFIJNJUVOJYVFCFSVLPUP จԽɾ෩͓ΑͼύϑΥʔϚϯεʹӨڹΛ༩͑Δ͜ͱ͕ೝΊΒΕͨཁૉ
IUUQTTQFBLFSEFDLDPNTOPP[FSSFBEZQMBZFSPOFZVOJLPORJZFGBMTFIJNJUVOJYVFCFSVLPUP ϋΠύϑΥʔϚϯεͳ৫Λ࣮ݱ͢ΔͨΊͷจԽΛҭͯΔ
ܧଓతσϦόϦΛࢧ͑Δٕज़ϓϥΫςΟε͕จԽʹͭͳ͕Δ IUUQTXXXEFWPQTSFTFBSDIDPNSFTFBSDIIUNM
ܧଓతσϦόϦΛࢧ͑Δٕज़ϓϥΫςΟε͕จԽʹͭͳ͕Δ IUUQTTQFBLFSEFDLDPNTOPP[FSSFBEZQMBZFSPOFZVOJLPORJZFGBMTFIJNJUVOJYVFCFSVLPUP
ࣗಈςετจԽͱ 87/92
IUUQTXXXPSFJMMZDPKQCPPLT ࣗಈςετจԽͱ ʰ(PPHMFͷιϑτΣΞΤϯδχΞϦϯάʱQ
w ςετࣗಈԽʹເΛݟͳ͍ w ࣗಈςετͷϝϯςφϯεʹશһ͕ෲམͪ͢Δ w ࣗಈςετͷϝϯςφϯείετΛԼ͛ΔྗΛଵΒͳ͍ ࣗಈςετจԽͱɺࣗಈςετͷॏཁੑͱอकੑʢཧղ༰қ ੑɺมߋ༰қੑʣΛ৫ɺνʔϜ͕ཧղ͠ɺվળྗΛܧଓత ʹߦ͏͜ͱ ࣗಈςετจԽͱ
ςετʹίετ͕͔͔Δ ͜ͱͷղܾํ๏ɺςε τΛΊΔ͜ͱͰ͋Γ ·ͤΜɻ͏·͘ͳΔ͜ͱ Ͱ͢ɻ 4BOEJ.FU[ ʰΦϒδΣΫτࢦઃܭ࣮ફΨΠυʱQ IUUQTHJIZPKQCPPL
৴པੑͷߴ͍࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δঢ়ଶΛอͭ͜ͱͰɺ ։ൃऀʹࠜڌ͋Δࣗ৴Λ༩͑ɺ ιϑτΣΞͷΛ࣋ଓՄೳʹ͢Δ͜ͱ ࣗಈςετͷత
wෆ࣮֬ੑͷߴ͍࣌ʹ͓͍ͯɺܭըઃܭ࣮ৗʹมԽ͠ଓ͚ΒΕΔྗ͕ॏཁͱͳΔ wܧଓతσϦόϦΛߏ͢ΔέΠύϏϦςΟʢೳྗʣ͕اۀͷۀʢऩӹੑɺࢢ༗ɺੜ࢈ੑʣʹҼՌ͕ؔ͋Δ͜ͱ ͕ݚڀʹΑཱͬͯূ͞Εͨ wاۀͷنଐ͢ΔۀքɺγεςϜͷλΠϓσϦόϦͷύϑΥʔϚϯεʹؔͳ͘ɺγεςϜͷΞʔΩςΫνϟ͕උ͑ Δͭͷಛੑʢςετ༰қੑɺσϓϩΠಠཱੑʣ͕͍ؔͯ͠Δ͜ͱ͕໌ͨ͠ wࣗ৫ͷࣄۀʹͱͬͯઓ্ུॏཁͳιϑτΣΞͷ։ൃೳྗΛࣗ৫ͷத֩తཁૉͱͯ͠Ґஔ͚ͣʹ֎෦ҕୗ͢Δͱɺ ༗ҙʹύϑΥʔϚϯε͕Լ͕Δ͜ͱ໌ͨ͠ wࣗಈςετΛ։ൃऀओମͰॻ͖ɺ࣮ߦ݁Ռͷ৴པੑ͕ߴ͍ঢ়ଶΛอͭ͜ͱ͕σϦόϦͷύϑΥʔϚϯεͱҼՌ͕ؔ͋Δ wࣗಈςετΛॻ͘ཧ༝ɺίετݮͰͳ͘ɺΞδϦςΟʢ͋ΒΏΔϨϕϧͰૉૣ᪳͘ͳ͘มԽ͠ଓ͚ΔྗʣΛಘΔ ͨΊ
wΤϯδχΞϦϯάจԽͷৢ୯ҐͷࣄۀʹͳΔɻจԽͷৢʹԦಓʢڭҭɺਓࣄධՁʣಓअಓ͋Δ wٕज़ʮ͕ʯจԽʮʹʯӨڹΛٴ΅͢ɻޮՌతͳٕज़ϓϥΫςΟεΤϯδχΞϦϯάจԽΛҭͯΔ͜ͱ͕໌ͨ͠ wࣗಈςετจԽͱɺࣗಈςετͷॏཁੑͱอकੑʢཧղ༰қੑɺมߋ༰қੑʣΛ৫ɺνʔϜ͕ཧղ͠ɺվળྗΛܧ ଓతʹߦ͏͜ͱ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠