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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
27
17k
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
51
35k
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
46
44k
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
88
53k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
3.8k
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
15
7.8k
これまでと違う学び方をしたら挫折せずにRustを学べた話 / Programming Rust techramen24conf LT
twada
PRO
36
32k
Other Decks in Technology
See All in Technology
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
180
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
130
自作お家AIエージェントスタックチャンFWで困っている所紹介
74th
0
150
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
280
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
160
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
130
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
590
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
150
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
250
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
210
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
170
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
120
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
Faster Mobile Websites
deanohume
310
32k
Mobile First: as difficult as doing things right
swwweet
225
10k
The SEO identity crisis: Don't let AI make you average
varn
0
500
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
440
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Visualization
eitanlees
152
17k
Bash Introduction
62gerente
615
220k
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ࣗಈςετจԽͱɺࣗಈςετͷॏཁੑͱอकੑʢཧղ༰қੑɺมߋ༰қੑʣΛ৫ɺνʔϜ͕ཧղ͠ɺվળྗΛܧ ଓతʹߦ͏͜ͱ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠