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/06版) / Automated Test K...
Search
Takuto Wada
PRO
June 29, 2024
Programming
36
27k
開発生産性の観点から考える自動テスト(2024/06版) / Automated Test Knowledge from Savanna 202406 Findy dev-prod-con edition
2024年6月29日
Findy 開発生産性カンファレンス2024 Closing Keynote
https://dev-productivity-con.findy-code.io/2024
Takuto Wada
PRO
June 29, 2024
Tweet
Share
More Decks by Takuto Wada
See All by Takuto Wada
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
88
52k
The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend
twada
PRO
79
30k
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
33
11k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
2.1k
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
14
6.7k
これまでと違う学び方をしたら挫折せずにRustを学べた話 / Programming Rust techramen24conf LT
twada
PRO
33
28k
自動テスト実行結果の目的を整理する / Organizing objectives of automated test results
twada
PRO
14
3.4k
変更容易性と理解容易性を支える自動テスト(2024/02版) / Automated Test Knowledge from Savanna 202402 YAPC::Hiroshima edition
twada
PRO
22
14k
実録レガシーコード改善 / Working with Legacy Code: the True Record
twada
PRO
112
52k
Other Decks in Programming
See All in Programming
MLOps Japan 勉強会 #52 - 特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
taniiicom
2
360
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
SpringBootにおけるオブザーバビリティのなにか
irof
1
870
Zennの運営完全に理解した #完全に理解したTalk
wadayusuke
1
110
Agent Rules as Domain Parser
yodakeisuke
1
210
型安全なDrag and Dropの設計を考える
yudppp
5
640
【TSkaigi 2025】これは型破り?型安全? 真実はいつもひとつ!(じゃないかもしれない)TypeScript クイズ〜〜〜〜!!!!!
kimitashoichi
1
290
がんばりすぎないコーディングルール運用術
tsukakei
1
120
PT AI без купюр
v0lka
0
170
Blueskyのプラグインを作ってみた
hakkadaikon
1
210
抽象データ型について学んだ
ryounasso
0
200
primeNumberでのRBS導入の現在 && RBS::Traceでinline RBSを拡充してみた
mnmandahalf
0
230
Featured
See All Featured
Making Projects Easy
brettharned
116
6.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Art, The Web, and Tiny UX
lynnandtonic
298
21k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Documentation Writing (for coders)
carmenintech
71
4.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Producing Creativity
orderedlist
PRO
345
40k
Balancing Empowerment & Direction
lara
1
79
We Have a Design System, Now What?
morganepeng
52
7.6k
Docker and Python
trallard
44
3.4k
Transcript
ࣗಈςετ ։ൃੜ࢈ੑͷ؍͔Βߟ͑Δ 5BLVUP8"%" +VO !։ൃੜ࢈ੑΧϯϑΝϨϯε !U@XBEB !UXBEB 📷🙆 🙆 !UXBEB
JEUXBEB ։ൃੜ࢈ੑDPO@ fi OEZ@NBJOIBMM ։ൃੜ࢈ੑDPO@ fi OEZ rev.2
ͳͥࣗಈςετΛ ॻ͘ͷͩΖ͏͔
IUUQTXXX fl JDLSDPNQIPUPTNEHSPVQ ࣗಈςετΛॻ͘ओతࢦඪΛʮίετݮʯʹ͢Δͱɺظతʹࣗಈς ετͷֶशίετɺதظతʹอकίετʹΑͬͯࢥͬͨΑ͏ͳίετݮޮ Ռ͕ಘΒΕͣɺखಈςετʹΔͱ͍͏அΛͯ͠͠·͍͕ͪͰ͢ ࣗಈςετҎ֎ͷٕज़ࢪࡦͰίετݮΛओతʹ͢Δͱࣦഊ͕ͪ͠Ͱ͢ ΞϯνύλʔϯίετݮΛओతʹ͢Δ
IUUQTUXJUUFSDPNUPLPSPUFOTUBUVT มߋ༰қੑͷߴ͍ιϑτΣΞʹΑΔΞδϦςΟͷ֫ಘ
IUUQTXXXPSFJMMZDPKQCPPLT ʰ(PPHMFͷιϑτΣΞΤϯδχΞϦϯάʱQ ࣗಈςετͷಈػৗʹมԽΛՄೳʹ͢ΔͨΊ
ͳͥࣗಈςετΛॻ͘ͷ͔ 🙅 ίετΛݮ͢ΔͨΊ 🙆 ૉૣ᪳͘ͳ͘มԽ͠ଓ͚ΔྗΛಘΔͨΊ
݁
৴པੑͷߴ͍࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δঢ়ଶΛอͭ͜ͱͰɺ ։ൃऀʹࠜڌ͋Δࣗ৴Λ༩͑ɺ ιϑτΣΞͷΛ࣋ଓՄೳʹ͢Δ͜ͱ ࣗಈςετͷత
৴པੑͷߴ͍ ࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δ ঢ়ଶΛอͭ "HFOEB 🦁
ςετࣗಈԽͱاۀͷۀͷҼՌؔ IUUQTXXXBNB[PODPKQEQ ςετͷࣗಈԽʹ͓͍ͯɺ*5ύϑΥʔϚϯεͷ ༧ଌईͱͳΓ͏Δ͜ͱ͕໌ͨ͠ͷ࣍ͷͭ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ ։ൃऀओମͰड͚ೖΕςετΛ࡞ɾཧ͠ɺ खݩͷ։ൃڥͰ؆୯ʹ࠶ݱɾमਖ਼Ͱ͖Δ͜ͱ ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
IUUQTXXXBNB[PODPKQEQ ςετʹ߹֨ͨ͠ιϑτΣΞͰ͋ΕϦϦʔεՄೳɺෆ߹֨Ͱ͋Εॏେͳ ෆ۩߹͕͋ΔɺͱνʔϜ͕֬৴Ͱ͖ΔΑ͏ͳςετΛ࣮ࢪ͍ͯ͠Δ͜ͱ ޡݕʢِཅੑGBMTFQPTJUJWFʣݟಀ͠ʢِӄੑGBMTFOFHBUJWFʣ͕ଟ ͘ɺ৴པੑʹ͚ܽΔςετεΠʔτ͕͋·Γʹଟ͗͢Δ ৴པͷߴ͍ςετεΠʔτΛ࡞Γ্͛Δܧଓతͳྗͱ ࢿՁ͕͋Δ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ
ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
ޭͱࣦഊɺِཅੑͱِӄੑ IUUQTHJIZPKQEFWTFSJBMTBWBOOBMFUUFS Օॴͷಛఆͱम෮ σϓϩΠɺϚʔδ
IUUQTXXXBNB[PODPKQEQ ςετʹ߹֨ͨ͠ιϑτΣΞͰ͋ΕϦϦʔεՄೳɺෆ߹֨Ͱ͋Εॏେͳ ෆ۩߹͕͋ΔɺͱνʔϜ͕֬৴Ͱ͖ΔΑ͏ͳςετΛ࣮ࢪ͍ͯ͠Δ͜ͱ ޡݕʢِཅੑGBMTFQPTJUJWFʣݟಀ͠ʢِӄੑGBMTFOFHBUJWFʣ͕ଟ ͘ɺ৴པੑʹ͚ܽΔςετεΠʔτ͕͋·Γʹଟ͗͢Δ ৴པͷߴ͍ςετεΠʔτΛ࡞Γ্͛Δܧଓతͳྗͱ ࢿՁ͕͋Δ ৴པੑͷߴ͍ࣗಈςετΛඋ͑Δ͜ͱ
ʰ-FBOͱ%FW0QTͷՊֶʱQʢ˞༁ΛҰ෦มߋʣ
ِཅੑͱِӄੑͷύλʔϯ w ِཅੑ w ੬͍ςετ CSJUUMFUFTU GSBHJMFUFTU w ৴པෆೳςετ
fl BLZUFTU w ِӄੑ w ۭৼΓ w ΧόϨοδෆɺςετෆ w ࣗ࡞ࣗԋ
৴པෆೳੑʢ fl BLJOFTTʣ͕ʹۙ͢ΔͱɺςετՁΛࣦ͍࢝ΊΔ IUUQTXXXPSFJMMZDPKQCPPLT ʰ(PPHMFͷιϑτΣΞΤϯδχΞϦϯάʱQ
ِཅੑͱِӄੑͷύλʔϯ w ِཅੑ w ੬͍ςετ CSJUUMFUFTU GSBHJMFUFTU w ৴པෆೳςετ
fl BLZUFTU w ِӄੑ w ۭৼΓ w ΧόϨοδෆɺςετෆ w ࣗ࡞ࣗԋ
ِཅੑͱِӄੑͷύλʔϯ w ِཅੑ w ੬͍ςετ CSJUUMFUFTU GSBHJMFUFTU w ৴པෆೳςετ
fl BLZUFTU w ِӄੑ w ۭৼΓ w ΧόϨοδෆɺςετෆ w ࣗ࡞ࣗԋ
// プロダクトコード class Item { // コンストラクタ割愛 tax_amount() { const
rate = (this.tax_rate / 100); return (this.price / (1 + rate)) * rate; } } // テストコード it('税込価格から税額を返す', () => { const item = new Item('技評茶', 130, 8); const expected = (130 / (1 + (8 / 100))) * (8 / 100); assert.equal(item.tax_amount(), expected); }); ࣗ࡞ࣗԋͷྫςετରϩδοΫͷςετίʔυͷ࿙Εग़͠ ԁະຬͷ͕ൃੜ͢Δ όά͕͋Δ ςετίʔυͷํಉ͡ϩδοΫͰ ظΛܭࢉ͍ͯ͠ΔͷͰ ςετ͕ޭͯ͠͠·͏
৴པੑͷߴ͍ ࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δ ঢ়ଶΛอͭ "HFOEB 🦁
ࣗಈςετͷ࣮ߦ݁ՌʮใʯͰ͋Γɺใͷ ׂͱҙࢥܾఆͱߦಈΛଅ͢͜ͱ ςετͷ࣮ߦ݁Ռ͕ଅ͢ߦಈͱɺσϓϩΠɺϚʔ δɺίʔυͷमਖ਼ͳͲ ใͷׂҙࢥܾఆͱߦಈΛଅ͢͜ͱ
ޭ࣌ͷΞΫγϣϯɺࣦഊ࣌ͷΞΫγϣϯ σϓϩΠɺϚʔδ Օॴͷಛఆͱम෮
ࣗಈςετ࣮ߦ݁Ռͷग़ྗͱૂ͍ w ৴߸ػͱͯ͠ w ਓؒʹͱ w ػցʹͱ Ҏ্ w
ܽؕͷߜΓࠐΈͱͯ͠ w ࣗಈςετͷࣦഊʹछྨ͋Δ w &YFDVUJPO&SSPSςετ࣮ߦதʹϓϩμΫτίʔυ͔Βൃੜ͢Δ࣮ߦ࣌Τϥʔ w "TTFSUJPO'BJMVSFςετίʔυͷதʹॻ͍ͨද໌ʢΞαʔγϣϯʣͷࣦഊ w Օॴͷಛఆͱ w Կ͕ɺͲ͜ͰɺͲͷΑ͏ʹࣦഊ͔ͨ͠ IUUQTHJIZPKQEFWTFSJBMTBWBOOBMFUUFS
@Test void 税込価額を税率ごとに区分して合計した金額に対して税額を計算し端数は切り捨てること() { var inv = createSimplifiedInvoice(); // 中略
var tax = inv.tax(); assertTrue(tax.reduced() == 40); } ͲͷΑ͏ʹࣦഊ͔ͨ͠Ξαʔγϣϯͷదͳ༻ org.opentest4j.AssertionFailedError: expected: <true> but was: <false> ୯ͳΔཧࣜͰʢ͠ͳ͍ͱʣ ࣦഊ࣌ͷใ͕ܽམ͢Δ
@Test void 税込価額を税率ごとに区分して合計した金額に対して税額を計算し端数は切り捨てること() { var inv = createSimplifiedInvoice(); // 中略
var tax = inv.tax(); assertEquals(40, tax.reduced()); } ͲͷΑ͏ʹࣦഊ͔ͨ͠Ξαʔγϣϯͷదͳ༻ ൺֱͷͨΊͷΞαʔγϣϯʹมߋ org.opentest4j.AssertionFailedError: expected: <40> but was: <39>
৴པੑͷߴ͍ ࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δ ঢ়ଶΛอͭ "HFOEB 🦁
օ͞Μʹ͓͍͠·͢ 🙋🙋🙋 σʔλϕʔεʹΞΫηε͢ΔͷϢχοτςετ :FT/P ωοτϫʔΫʹΞΫηε͢ΔͷϢχοτςετ :FT/P ϑΝΠϧʹΞΫηε͢ΔͷϢχοτςετ :FT/P ݱࡏ࣌ࠁʹΞΫηε͢ΔͷϢχοτςετ :FT/P
ґଘઌͷϞδϡʔϧʹຊΛ͏ͷϢχοτςετ :FT/P
IUUQTNBSUJOGPXMFSDPNCMJLJ6OJU5FTUIUNM 6OJU5FTUͷ6OJUͬͯԿʁ
IUUQTNBSUJOGPXMFSDPNCMJLJ6OJU5FTUIUNM 6OJU5FTUͷ6OJUͬͯԿʁ
ςεταΠζ ࣗಈςετͱ$*ʹϑΟοτ͢Δ ໌֬ͳςετྨج४
5FTU4J[FΑΓᐆດ͞ͷগͳ͍ྨ
IUUQTUFTUJOHHPPHMFCMPHDPNUFTUTJ[FTIUNM ྫ(PPHMFͷ"OESPJE։ൃνʔϜʹ͓͚Δ5FTU4J[F
4NBMM ʢ୯Ұϓϩηεʣ .FEJVN ʢ୯ҰϚγϯʣ -BSHF ʢ੍ͳ͠ʣ 6OJU େ͍ʹਪ ආ͚͍͕ͨ ͔ͨ͠ͳ͍ͱ͖
࠷ѱ͕ͩ Α͘ݟ͔͚Δ *OUFHSBUJPO ॻ͚ΔͳΒ ίεύྑ͠ ී௨ Ͱ͖Ε ආ͚͍ͨ && ݪཧ্ෆՄೳʹ͍͕ۙ খ͍͞γεςϜͳΒՄೳʁ খ͍͞γεςϜ ͳΒՄೳ ී௨͔ͭ $6+ʹߜΓ͍ͨ 5FTU4DPQFͱ5FTU4J[F 5FTU4J[F 5FTU4DPQF
4NBMM ʢ୯Ұϓϩηεʣ .FEJVN ʢ୯ҰϚγϯʣ -BSHF ʢ੍ͳ͠ʣ 6OJU େ͍ʹਪ ආ͚͍͕ͨ ͔ͨ͠ͳ͍ͱ͖
࠷ѱ͕ͩ Α͘ݟ͔͚Δ *OUFHSBUJPO ॻ͚ΔͳΒ ίεύྑ͠ ී௨ Ͱ͖Ε ආ͚͍ͨ && ݪཧ্ෆՄೳʹ͍͕ۙ খ͍͞γεςϜͳΒՄೳʁ খ͍͞γεςϜ ͳΒՄೳ ී௨͔ͭ $6+ʹߜΓ͍ͨ 5FTU4DPQFͱ5FTU4J[F 5FTU4J[F 5FTU4DPQF ίεύྑ͠ ίεύѱ͠
৴པੑͷߴ͍ ࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δ ঢ়ଶΛอͭ "HFOEB 🦁
ςετϐϥϛου ࣗಈςετͷ৴པੑΛ தظతʹอͭ ࠷దͳόϥϯε
Ϣχοτ ΠϯςάϨʔγϣϯ && ίετ ࣮ੑ ςετέʔε ߴ
ߴ ܾఆੑ ςετϐϥϛου
ςετϐϥϛουͱΞΠεΫϦʔϜίʔϯΞϯνύλʔϯ IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF
ࠞཚʮϢχοτʯʮΠϯςάϨʔγϣϯʯͷղऍͷϒϨ͔Βੜ͕ͪ͡
Ϣχοτ ΠϯςάϨʔγϣϯ && ίετ ࣮ੑ ςετέʔε ߴ
ߴ ܾఆੑ ϒϨͷগͳ͍ςετͷྨج४ʜʜʁ
ίετ ࣮ੑ ߴ ߴ ܾఆੑ ϒϨͷগͳ͍ςετͷྨج४ˠςεταΠζ 4NBMM
.FEJVN -BSHF ςετέʔε
medium small large ςετϐϥϛουͱςεταΠζͱϏϧυύΠϓϥΠϯ ϝϞϦͰಈ͘4NBMM5FTU Ͱ͖Δ͚ͩ͜͜ͷൺΛߴΊ͍ͨ ϏϧυޙͷΠϝʔδ%#ΛΈ߹Θͤͨ .FEJVN5FTU ࣮γεςϜʹ͍ۙߏͷ -BSHF5FTU
ʢͳͷͰͯ͘ෆ҆ఆʣ
αΠζμϯઓज़ ΞΠεΫϦʔϜίʔϯ͔Β ϐϥϛου
IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF 4NBMM .FEJVN -BSHF खಈςετ Ͱɺଟ͘ͷݱͰΞΠεΫϦʔϜίʔϯ͔Β࢝·ΔʢͦΕѱ͍͜ͱͰͳ͍ʣ
IUUQTXXXPSFJMMZDPKQCPPLT ʰγεςϜӡ༻ΞϯνύλʔϯʱQ ͳͥΞΠεΫϦʔϜίʔϯʹͳͬͯ͠·͏ͷ͔
IUUQTXXXUIPVHIUXPSLTDPNSBEBSUFDIOJRVFTCSPBEJOUFHSBUJPOUFTUT &&ςετͷաࢿ5FDIOPMPHZ3BEBSͰʮ)0-%ʯʹϨʔςΟϯά͞Εͨ
IUUQTXXXUIPVHIUXPSLTDPNSBEBSUFDIOJRVFTCSPBEJOUFHSBUJPOUFTUT ςετࣗಈԽͷྗশࢍʹ͢Δ͕ɺࢲ͕ͨͪޮՌతͰͳ͍ͱߟ͑Δൣͳ౷߹ςετ ʢ˞&&ςετʣʹաࢿ͍ͯ͠Δ৫Λଟ͘ݟ͔͚Δɻ ͜ͷΑ͏ͳςετɺඞཁͳΠϯϑϥɺσʔλɺαʔϏεΛͯ͢උ͑ͨϑϧػೳͷςετ ڥΛඞཁͱ͢ΔͨΊɺ໌Β͔ʹίετ͕͔͔Δɻ ͜ΕΒͯ͢ͷґଘؔͷదͳόʔδϣϯΛཧ͢Δʹɺ͔ͳΓͷௐΦʔόʔϔου͕ ඞཁͱͳΓɺϦϦʔεαΠΫϧ͕͘ͳΓ͕ͪͰ͋Δɻ ࠷ޙʹɺςετͦͷͷ͕੬͘ʹཱͨͳ͍͜ͱଟ͍ɻྫ͑ɺςετ͕ࣦഊͨ͠ͷ͕৽͠ ͍ίʔυͷ͍ͤͳͷ͔ɺόʔδϣϯͷෆҰகʹΑΔґଘؔͷ͍ͤͳͷ͔ɺڥͷ͍ͤͳͷ͔ Λஅ͢Δʹ࿑ྗ͕͔͔ΓɺΤϥʔϝοηʔδ͕ΤϥʔͷݪҼΛಥ͖ࢭΊΔॿ͚ʹͳΔ͜ͱ
΄ͱΜͲͳ͍ɻ ͜ΕΒͷ൷ɺࣗಈԽ͞ΕͨʮϒϥοΫϘοΫεʯ౷߹ςετΛҰൠతʹࢹ͍ͯ͠Δ͜ ͱΛҙຯ͢ΔͷͰͳ͍͕ɺΑΓ༗༻ͳΞϓϩʔνɺࣗ৴ͱϦϦʔεසͷόϥϯεΛͱ ΔͷͰ͋Δͱߟ͑Δɻ &&ςετͷաࢿ5FDIOPMPHZ3BEBSͰʮ)0-%ʯʹϨʔςΟϯά͞Εͨ
Ͳ͏ͬͯΞΠεΫϦʔϜίʔϯΛϐϥϛουʹ͍͔ͯ͘͠ IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF 4NBMM .FEJVN -BSHF खಈςετ 4NBMM .FEJVN -BSHF
IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF 4NBMM .FEJVN -BSHF खಈςετ -BSHF͔Β.FEJVN
IUUQYVOJUQBUUFSOTDPN5FTU%PVCMFIUNM ςετμϒϧࣗಈςετ༻ͷِ
IUUQYVOJUQBUUFSOTDPN5FTU%PVCMFIUNM ςετμϒϧͷྨʢY651ʣ
ςετμϒϧͷརͱҙ w ςετμϒϧͷར w ͦͦςετ͠ʹ͍͘ͷΛςετՄೳʹ͢Δ w ςετͷͱܾఆੑΛ্ͤ͞Δ w ςεταΠζΛԼ͛Δ w
ςετμϒϧͷҙ w ςετରͷ࣮ͱͷߏత݁߹͕ߴ·Γɺςετ͕੬͘ͳΓɺِ ཅੑΛট͘ w ࣗ࡞ࣗԋςετͷϦεΫ͕͋ΓɺِӄੑΛট͘
ςετμϒϧͷ৽ͨͳҙٛςεταΠζΛԼ͛ΔͨΊͷٕज़ w ςετμϒϧͷར w ͦͦςετ͠ʹ͍͘ͷΛςετՄೳʹ͢Δ w ςετͷͱܾఆੑΛ্ͤ͞Δ w ςεταΠζΛԼ͛Δ w
ςετμϒϧͷҙ w ςετରͷ࣮ͱͷߏత݁߹͕ߴ·Γɺςετ͕੬͘ͳΓɺِ ཅੑΛট͘ w ࣗ࡞ࣗԋςετͷϦεΫ͕͋ΓɺِӄੑΛট͘
IUUQYVOJUQBUUFSOTDPN5FTU%PVCMFIUNM -BSHF͔Β.FEJVN'BLF 'BLFࣗಈςετ༻ͷସ࣮ɻ %ZOBNP%#ʹର͢Δ%ZOBNP%#MPDBMMPDBLTUBDL͕දྫɻ ίϯςφͰಈ࡞ͤ͞ΒΕΕςεταΠζ͕.FEJVNʹऩ·Δɻ
IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF 4NBMM .FEJVN -BSHF खಈςετ .FEJVN͔Β4NBMM
.FEJVN͔Β4NBMMղ༰қੑΛ্͛ɺ݁߹ɺߴڽू IUUQTXXXBNB[PODPKQEQ ςετ༰қੑΛԼ͍͛ͯΔཁૉΛബ͘Γग़ ͠ɺςετՄೳൣғΛ͘औΔ)VCCMF0CKFDU ύλʔϯ͕جຊͱͳΔ
֏͞Μᐌ͘ ςετͰ্࣭͕Βͳ͍Ͱ͢Αɻςετ͋͘·Ͱ ࣭Λ͋͛Δ͖͔͚ͬɻ࣭Λ͋͛Δͷϓϩάϥϛϯ άͰ͢ɻ͜Εେੲ͔Βͦ͏ɻ
ྑ͍୯ମςετΛߏ͢Δຊͷப IUUQTCPPLNZOBWJKQFDQSPEVDUTEFUBJMJE ୀߦ SFHSFTTJPO ʹର͢Δอޢ ϦϑΝΫλϦϯάͷੑ ਝͳϑΟʔυόοΫ
อकͷ͢͠͞ ʰ୯ମςετͷߟ͑ํ͍ํʱQ
4NBMM ʢ୯Ұϓϩηεʣ .FEJVN ʢ୯ҰϚγϯʣ -BSHF ʢ੍ͳ͠ʣ 6OJU େ͍ʹਪ ආ͚͍͕ͨ ͔ͨ͠ͳ͍ͱ͖
࠷ѱ͕ͩ Α͘ݟ͔͚Δ *OUFHSBUJPO ॻ͚ΔͳΒ ίεύྑ͠ ී௨ Ͱ͖Ε ආ͚͍ͨ && ݪཧ্ෆՄೳʹ͍͕ۙ খ͍͞γεςϜͳΒՄೳʁ খ͍͞γεςϜ ͳΒՄೳ ී௨͔ͭ $6+ʹߜΓ͍ͨ αΠζμϯઓུ ߏత ݁߹ ߴ 5FTU4J[F 5FTU4DPQF қ Օॴಛఆͷ༰қ͞
4NBMM ʢ୯Ұϓϩηεʣ .FEJVN ʢ୯ҰϚγϯʣ -BSHF ʢ੍ͳ͠ʣ 6OJU େ͍ʹਪ ආ͚͍͕ͨ ͔ͨ͠ͳ͍ͱ͖
࠷ѱ͕ͩ Α͘ݟ͔͚Δ *OUFHSBUJPO ॻ͚ΔͳΒ ίεύྑ͠ ී௨ Ͱ͖Ε ආ͚͍ͨ && ݪཧ্ෆՄೳʹ͍͕ۙ খ͍͞γεςϜͳΒՄೳʁ খ͍͞γεςϜ ͳΒՄೳ ී௨͔ͭ $6+ʹߜΓ͍ͨ αΠζμϯઓུ ߏత ݁߹ ߴ 5FTU4J[F 5FTU4DPQF қ Օॴಛఆͷ༰қ͞
ΞΠεΫϦʔϜίʔϯ͔Βϐϥϛου IUUQTXBUJSNFMPOCMPHJOUSPEVDJOHUIFTPGUXBSFUFTUJOHJDFDSFBNDPOF 4NBMM .FEJVN -BSHF खಈςετ 4NBMM .FEJVN -BSHF
4NBMM .FEJVN -BSHF ίετ ࣮ੑ ςετέʔε ߴ
ߴ ܾఆੑ ςετμϒϧͰαΠζμϯͯ͠ɺ֤αΠζΛϐϥϛουܕʹஔ͠ɺςετશମͷ৴པੑΛҡ࣋͢Δ ςετμϒϧ ςετμϒϧ ςετ༰қੑઃܭ υϝΠϯઃܭ
ࣗಈςετͷ࠷େͷޮՌʮࠜڌ͋Δࣗ৴ʯ IUUQTHJIZPKQBSUJDMFBVUPNBUFEUFTUBOEUEE
৴པੑͷߴ͍࣮ߦ݁Ռʹ ͍࣌ؒͰ౸ୡ͢Δঢ়ଶΛอͭ͜ͱͰɺ ։ൃऀʹࠜڌ͋Δࣗ৴Λ༩͑ɺ ιϑτΣΞͷΛ࣋ଓՄೳʹ͢Δ͜ͱ ࣗಈςετͷత
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠