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
PHPerのための テストコード入門.
Search
02
December 01, 2019
Programming
1
3.9k
PHPerのための テストコード入門.
2019/12/01
PHP カンファレンス2019 のセッションで使用したスライドです
02
December 01, 2019
Tweet
Share
More Decks by 02
See All by 02
Amazon ECS Managed Instances が リリースされた!キャッチアップしよう!! / Let's catch up Amazon ECS Managed Instances
cocoeyes02
0
58
新しいPHP拡張モジュールインストール方法「PHP Installer for Extensions (PIE)」を使ってみよう!
cocoeyes02
0
790
PHP8.4におけるJITフレームワークIRと中間表現について理解を深める
cocoeyes02
1
1k
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
1k
PHP RFC: Deprecate implicitly nullable parameter types をサクッと話す
cocoeyes02
0
880
PHPUnit 11 概論
cocoeyes02
5
2.7k
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
1
1.1k
BASEにおける インシデント対応フローと工夫
cocoeyes02
0
1.2k
AWS Lambdaから始める Devチームの小さなDevOps改善 〜QCDどれも諦めない運用を目指して〜 / Start to improving small DevOps with AWS Lambda by Dev Team
cocoeyes02
0
1.4k
Other Decks in Programming
See All in Programming
モテるデスク環境
mozumasu
3
710
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
230
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
350
EMこそClaude Codeでコード調査しよう
shibayu36
0
290
XP, Testing and ninja testing ZOZ5
m_seki
3
790
CSC509 Lecture 07
javiergs
PRO
0
240
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
190
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
3
6.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
110
CSC305 Lecture 09
javiergs
PRO
0
300
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
830
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
130
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Raft: Consensus for Rubyists
vanstee
140
7.2k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
For a Future-Friendly Web
brad_frost
180
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
880
What's in a price? How to price your products and services
michaelherold
246
12k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Agile that works and the tools we love
rasmusluckow
331
21k
Transcript
PHPerͷͨΊͷ ςετίʔυೖ PHP Conference Japan 2019 02 / େ ௬
Who am I? • 02 ʢେ ௬ʣ • Twitter, Github:cocoeyes02
• ॴଐɿגࣜձࣾΟϧήʔτ(৽ଔ2) • PHPͱ΄΅ಉ͍ʢ1994ੜ·Εʣ • όοΫΤϯυΤϯδχΞ • ͨ·ʔʹOSSͷίϯτϦϏϡʔτͯͨ͠Γ͠·͢
͜ͱͷఆٛ • ςετ • ιϑτΣΞ͕ਖ਼͘͠ಈ࡞͢Δ͔ݕূ͢Δ͜ͱ • ςετίʔυ • ίʔυ্ͰιϑτΣΞ͕ਖ਼͘͠ಈ͍͍ͯΔ ͔ࣗಈͰݕূ͢ΔΈͷ͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ ΛͤΔ͜ͱ
ࠓ͢͜ͱ • ͦͦͳͥςετΛॻ͘ͷ͔ • ͳͥςετίʔυΛಋೖ͢Δͷ͔ • ͦΕͧΕͷςετίʔυͷಛͱൺֱʹ͍ͭ ͯɺஅج४ྫ
ࠓ͞ͳ͍͜ͱ • ςετίʔυͷಋೖํ๏ • ςετίʔυͷॻ͖ํ • ςετίʔυΛ࠾༻͢Δ্Ͱͷઈରղ
ΞδΣϯμ • ςετͷత • ςετίʔυͷత • ༷ʑͳςετίʔυΛΔ
ΞδΣϯμ • ςετͷత • ςετίʔυͷత • ༷ʑͳςετίʔυΛΔ
ςετͷత ͳΜͩͱࢥ͍·͔͢ʁ
ςετͷత ͳΜͩͱࢥ͍·͔͢ʁ • όάΛݟ͚ͭΔ͜ͱʁ • ཁ݅Λຬ͍ͨͯ͠Δ͜ͱΛ֬ೝ͢Δ͜ͱʁ • ιϑτΣΞͷ࣭ΛߴΊΔ͜ͱʁ
ISTQBςετٕज़ऀࢿ੍֨ γϥόεʹΑΔͱ • ཁ݅ɺϢʔβʔετʔϦʔɺઃܭɺ͓ΑͼίʔυͳͲͷ࡞ۀՌΛධՁ͢Δɻ • ໌֬ʹͨͯ͢͠ͷཁ݅Λຬ͍ͨͯ͠Δ͜ͱΛݕূ͢Δɻ • ςετର͕͠ɺϢʔβʔͦͷଞεςʔΫϗϧμʔͷظ௨Γͷಈ࡞༰Ͱ͋Δ͜ͱͷଥੑ֬ೝΛ͢ Δɻ •
ςετରͷ࣭ʹର͢Δ৴པΛੵΈॏͶͯɺॴఆͷϨϕϧʹ͋Δ͜ͱΛ֬ূ͢Δɻ • ܽؕͷ࡞Γ͜ΈΛ͙ɻ • ނোܽؕΛൃݟ͢Δɻ • εςʔΫϗϧμʔ͕ҙࢤܾఆͰ͖Δɺಛʹςετରͷ࣭Ϩϕϧʹ͍ͭͯͷेͳใΛఏڙ ͢Δɻ • ʢҎલʹݕग़͞Εͳ͔ͬͨނো͕ӡ༻ڥͰൃੜ͢ΔͳͲͷʣෆదͳιϑτΣΞ࣭ͷϦεΫϨϕϧΛ ݮ͢Δɻ • ܖ্ɺ๏্ɺ·ͨن੍্ͷཁ݅ඪ४Λ९क͢Δɺͦͯ͠ʗ·ͨςετର͕ͦͷΑ͏ ͳཁ݅ඪ४ ʹ४ڌ͍ͯ͠Δ͜ͱΛݕূ͢Δɻ http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹ ςετͷత • ࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτΣΞͷͲͷ࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹ அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ
ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹ ςετͷత • ࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτΣΞͷͲͷ࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹ அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ
࣭͕कΕ͍ͯΔ͔Ͳ͏͔ ݟ͑ͮΒ͍ ࣭ͦͷͷ͕͔ͬ͠ΓఆٛͰ͖͓ͯΒ͍ͣ͋·͍ ͳέʔε ࣭͕कΕ͍ͯΔ͔ࣔ͢खஈͷ1ͭͱͯ͠ɹɹɹɹ ςετΛͬͯ֬ೝ͢Δ
ιϑτΣΞςετ͚ͩͰɺ ࣭ΛߴΊΒΕͳ͍ ςετͰόάΛݟ͚ͭΔ͜ͱͰ͖Δ͕ɺɹɹɹɹ όάΛमਖ਼͠ͳ͚Ε࣭ΛߴΊΔ͜ͱɹɹɹɹ Ͱ͖ͳ͍ ʮ࣭อূʯͰ͋ͬͯɺʮ্࣭ʯͰͳ͍
ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹ ςετͷత • ࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτΣΞͷͲͷ࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹ அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ
ΤϯδχΞ্࣭ͷͨΊ ৭ʑͳஅΛ͢Δ ʮ༷ͱҧ͏ػೳΛൃݟͨ͠ͷͰɺमਖ਼͠Α͏ʯ ʮ͋Δػೳͷόά͕݅ଟ͍ͷͰɺઃܭΛݟͦ͏ʯ ʮϦϦʔε͢Δʹ·ͩΔ͖͜ͱ͕͋ΔͷͰɺɹɹ ϦϦʔεΛԆظͯ͠όάमਖ਼ςετΛ͠Α͏ʯ
ΤϯδχΞ্࣭ͷͨΊ ৭ʑͳஅΛ͢Δ ʮ༷ͱҧ͏ػೳΛൃݟͨ͠ͷͰɺमਖ਼͠Α͏ʯ ʮ͋Δػೳͷόά͕݅ଟ͍ͷͰɺઃܭΛݟͦ͏ʯ ʮϦϦʔε͢Δʹ·ͩΔ͖͜ͱ͕͋ΔͷͰɺɹɹ ϦϦʔεΛԆظͯ͠όάमਖ਼ςετΛ͠Α͏ʯ ιϑτΣΞͷ࣭ΛߴΊΔஅͷࡐྉΛɹɹ ఏڙ͢Δͷ͕ςετͰ͋Δ
ྫ ex.γεςϜ։ൃΛ͍ͯͯ͠ϦϦʔεؒࡍͰ͋Δ ೲظഭ͍ͬͯΔͷͰɺૣ͘ϦϦʔεΛ͍ͨ͠
ςετ݁Ռͱ্அ ςετ݁Ռ ্அ όάΛͨ͘͞Μൃݟͨ͠ ͢·ͰϦϦʔεΛ߇͑Δ όά͕΄ͱΜͲͳ͔ͬͨ ۓٸੑ͕͍όά͔Γͩͬͨɹ ϦϦʔε͔ͯ͠Β͢
ςετ݁Ռͱ্அ ςετ݁Ռ ্அ όάΛͨ͘͞Μൃݟͨ͠ ͢·ͰϦϦʔεΛ߇͑Δ όά͕΄ͱΜͲͳ͔ͬͨ ۓٸੑ͕͍όά͔Γͩͬͨɹ ϦϦʔε͔ͯ͠Β͢ ʮ·ͩϢʔβʹग़ͤΔϨϕϧ͡Όͳ͍͔Βɺɹɹɹɹɹɹɹ ϦϦʔεΛԆظͯ͠όάΛमਖ਼͠Α͏ʯ
ςετ݁Ռͱ্அ ςετ݁Ռ ্அ όάΛͨ͘͞Μൃݟͨ͠ ͢·ͰϦϦʔεΛ߇͑Δ όά͕΄ͱΜͲͳ͔ͬͨ ۓٸੑ͕͍όά͔Γͩͬͨɹ ϦϦʔε͔ͯ͠Β͢ ʮҰϦϦʔεͯ͠ϦϦʔεޙʹɺ ༏ઌ͕ߴ͍όά͔Βमਖ਼͍ͯ͜͠͏ʯ
ʮϓϩάϥϚ͕Δ͖97ͷ͜ͱʯΑΓ Jon Jaggerࢯʮݟ͑ͳ͍ͷΛݟ͑ΔΑ͏ʹʯ ιϑτΣΞ։ൃϓϩδΣΫτΛਐΊΔ͍࣌ͭͰɺ ʹݟ͑Δূڌ͕ͨ͘͞Μ͋Δͱ͍͏ঢ়ଶΛҡ͖࣋͢ Ͱ͠ΐ͏ɻ ʹݟ͑Δূڌ͕͋Εɺਐḿঢ়گਖ਼֬ʹѲͰ͖· ͢ɻܾͯ͠಄ͷத͚ͩͷࢥ͍ࠐΈͰஅ͠ͳ͘ͳΓ· ͢ɻ https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/
%E8%A6%8B%E3%81%88%E3%81%AA%E3%81%84%E3%82%82%E3%81%AE%E3%82%92%E8%A6%8B%E 3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB/
·ͱΊʢςετͷతʣ • ςετͷత • ࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτΣΞͷͲͷ࣭ΛߴΊΔ͔ɺɹɹɹɹɹ அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ • ςετʮ্࣭ʯͰͳ͘ʮ࣭୲อʯ
ΞδΣϯμ • ςετͷత • ςετίʔυͷత • ༷ʑͳςετίʔυΛΔ
ςετίʔυͷ తͳΜͩͱࢥ͍·͔͢ʁ
ςετίʔυΛಋೖ͢Δత ͳΜͩͱࢥ͍·͔͢ʁ • อकੑͷͨΊʁ • ৺ͷฏԺͷͨΊʁ • ςετͷΛݮΒͨ͢Ίʁ
ςετίʔυͷత ࣭ͱ։ൃεϐʔυΛཱ྆͢Δ
ςετͷ7ݪଇΑΓ 3.ૣظςετͰ࣌ؒͱίετΛઅ ૣ͍ஈ֊ͰܽؕΛݟ͚ͭΔͨΊʹɺ੩తςετ׆ಈͱಈతςετ׆ ಈͷ྆ํΛιϑτΣΞ։ൃϥΠϑ αΠΫϧͷͳΔ͘ૣ͍࣌ظʹ ։͖࢝͢Ͱ͋Δɻ ૣظςετɺγϑτϨϑτͱݺΕΔɻιϑτ ΣΞ։ൃϥΠ ϑαΠΫϧͷૣ͍࣌ظʹςετΛߦ͏͜ͱʹΑΓɺίετΛݮ· ͨݮͰ͖Δ
http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
γϑτϨϑτ όάΛݟ͚ͭΔͷ͕ૣ͚Εૣ͍΄Ͳɺɹɹɹɹɹ Өڹൣғ͕খ͍͞͏ͪʹमਖ਼Ͱ͖ΔͷͰɹɹɹɹɹ मਖ਼͕গͳ͘ͳΔͱ͍͏ߟ͑
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ όάใࠂɺোௐࠪɺݪҼಛఆɺϩδοΫमਖ਼ɺ ϨϏϡʔɺ͓͍߹ΘͤରԠɺ࠶ൃࢭࡦΛߟ͑Δʜ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ όάใࠂɺݪҼಛఆɺϩδοΫमਖ਼ɺ ϨϏϡʔɺ࠶ςετ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ ݪҼಛఆɺϩδοΫमਖ਼ɺϨϏϡʔ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ ఆٛॻɾઃܭॻमਖ਼ɺϨϏϡʔ
ૣ͘ݟ͚ͭΕɺ ͦͷόάͷमਖ਼ݮΔ मਖ਼ྃ·Ͱʹ͔͔Δ େ খ ɹ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ
ϦϦʔεޙ
ૣ͘ݟ͚ͭΕɺ ͦͷόάͷमਖ਼ݮΔ मਖ਼ͷΛݮΒ͢ʹɺɹɹɹɹɹɹɹɹɹɹɹɹ গ͠Ͱૣ͍ஈ֊ͰόάΛݟ͚ͭΔ͜ͱ ςετίʔυͰୡͰ͖Δͷ͔ʁ
ISTQBςετٕज़ऀࢿ੍֨ γϥόεʹΑΔͱ ςετ࣮ߦΛࢧԉ͢ΔπʔϧΛ͏જࡏతͳརҎԼͷ௨ΓͰ͋Δɻ • ෮͢Δखಈ࡞ۀͷݮͱ࣌ؒͷઅ͕Ͱ͖Δʢྫ͑ɺϦάϨογϣϯςετ ͷ࣮ߦɺڥͷ ४උ/෮چλεΫɺಉ͡ςετσʔλͷ࠶ೖྗɺίʔσΟϯάඪ४ ४ڌͷνΣοΫͳͲʣɻ • Ұ؏ੑ࠶࣮ߦੑ্͕͢Δʢྫ͑ɺ߹ੑͷ͋Δςετσʔλɺಉ͡සͱ
ॱংͰͷςετ ࣮ߦɺཁ͔݅ΒͷҰ؏ͨ͠ςετέʔεͷநग़ͳͲʣɻ • ධՁͷ٬؍ੑ্͕͢Δʢྫ͑ɺ੩తͳܭଌɺΧόϨοδͳͲʣɻ • ςετʹؔ͢ΔใͷΞΫηεͷ༰қੑ্͕͢Δʢྫ͑ɺςετਐḿɺܽ ؕੑೳܭଌ ݁Ռͷूܭɺ͓Αͼάϥϑͷ࡞ͳͲʣɻ http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
खಈςετͱ ςετίʔυΛൺֱͯ͠ΈΔ • ςετͷ࣮ߦλΠϛϯά • ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔
खಈςετͱ ςετίʔυΛൺֱͯ͠ΈΔ • ςετͷ࣮ߦλΠϛϯά • ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔
खಈςετͱςετίʔυ Λൺֱ खಈςετͩͱ… ʮ࣮͕ऴΘͬͨͷͰɺΈΜͳͰςετ͢Δɹ λΠϛϯάͰ֬ೝ͠Α͏ʯ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
खಈςετͱςετίʔυ Λൺֱ ςετίʔυͩͱ… ʮίϚϯυҰൃͰςετͰ͖ΔͷͰɺɹɹɹɹ ಈ࡞֬ೝ͕ͯΒઌʹςετΛ͠Α͏ʯ ཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
खಈςετͱςετίʔυ Λൺֱ खಈςετेʙ͔͔࣌ؒΔͷʹର͠ɺ ςετίʔυඵʙ ςετͷFBΛૉૣ͘ड͚औΔ͜ͱ͕Ͱ͖Εɺ ։ൃϑϩʔͷதͰɺૣ͍ஈ֊ͰςετΛ࣮ߦ ͢ΔΑ͏ʹͳΔ
खಈςετͱ ςετίʔυΛൺֱͯ͠ΈΔ • ςετͷ࣮ߦλΠϛϯά • ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔
खಈςετͱςετίʔυ Λൺֱ खಈςετ ςετίʔυ ώϡʔϚϯΤϥʔ ى͜Δ ىΒͳ͍ Կճ࣮ߦͯ͠ ಉ݁͡Ռ͕ಘΒΕΔ͔ ʢႈੑʣ
ώϡʔϚϯΤϥʔ͕ ى͜ΔݶΓ શʹอূͰ͖ͳ͍ Կ࣮ߦͯ͠ ݁ՌҰॹͳͷͰ อূͰ͖Δ
खಈςετͱςετίʔυ Λൺֱ खಈςετ ςετίʔυ ώϡʔϚϯΤϥʔ ى͜Δ ىΒͳ͍ Կճ࣮ߦͯ͠ ಉ݁͡Ռ͕ಘΒΕΔ͔ ʢႈੑʣ
ώϡʔϚϯΤϥʔ͕ ى͜ΔݶΓ શʹอূͰ͖ͳ͍ Կ࣮ߦͯ͠ ݁ՌҰॹͳͷͰ อূͰ͖Δ ʮςετͨͭ͠Γͩͬͨ ͚Ͳɺ࣮ࡍςετखॱΛ ؒҧ͍͑ͯͨʂʯͱ͔
खಈςετͱςετίʔυ ςετίʔυόάमਖ਼ΛݮΒ͠ͳ͕Β ࣮֬ʹςετΛߦ͏͜ͱ͕Ͱ͖Δ →࣭ͱ։ൃεϐʔυΛཱ྆͢Δ͜ͱ͕Ͱ͖Δ
ςετίʔυѹউ… ͱ͍͏Θ͚Ͱͳ͍ ͨͩ͠ɺςετίʔυಋೖɾϝϯςφϯείετ͕ൃ ੜ͢Δ खಈςετͰ͔͠νΣοΫͰ͖ͳ͍ςετ͋Δɹɹ ʢςετίʔυͰ࣮ݱͰ͖ͳ͍ςετͪΖΜ͋Δʣ
ISTQBςετٕज़ऀࢿ੍֨ γϥόεʹΑΔͱ ςετΛࢧԉ͢ΔπʔϧΛ͏જࡏతͳϦεΫҎԼͷ௨ΓͰ͋Δɻ • ςετπʔϧͷޮՌΛաେʹظ͢Δʢྫ͑ɺπʔϧͷػೳ͍͢͞ͳͲʣɻ • ςετπʔϧΛॳΊͯಋೖ͢Δ߹ʹཁ͢Δ࣌ؒɺίετɺΛաখධՁ͢Δʢྫ͑ɺڭҭ ɺ֎෦ͷઐ ՈͷࢧԉͳͲʣɻ •
େ͖ͳޮՌΛܧଓతʹ্͛ΔͨΊʹඞཁͳ࣌ؒΛաখධՁ͢Δʢྫ͑ɺςετϓϩηε ͷมߋɺπʔ ϧͷ༻๏ͷܧଓతͳվળͳͲʣɻ • πʔϧ͕ੜ͢Δςετࢿ࢈Λϝϯςφϯε͢ΔͨΊʹඞཁͳΛաখධՁ͢Δɻ • πʔϧʹաͳґଘΛ͢Δʢςετઃܭ·ͨςετ࣮ߦͱஔ͖͑ΒΕΔͱߟ͑Δɺ·ͨखಈςετͷํ ͕దͨ͠έʔεͰࣗಈςετΛར༻Ͱ͖Δͱߟ͑ΔͳͲʣ • πʔϧʹ͋Δςετࢿ࢈ͷόʔδϣϯཧΛଵΔɻ … http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
·ͱΊʢςετίʔυͷతʣ • ςετίʔυͷత • ࣭ͱ։ൃεϐʔυΛཱ྆͢Δ • ςετίʔυͳΒςετͷFBΛૉૣ͘ड͚औΕ ΔͷͰɺόάमਖ਼ΛݮΒ͢͜ͱ͕Ͱ͖Δ • ςετίʔυͰ࣮֬ʹςετΛߦ͏͜ͱ͕Ͱ͖Δ
ΞδΣϯμ • ςετͷత • ςετίʔυͷత • ༷ʑͳςετίʔυΛΔ
Ϣχοτςετ 1ͭͷؔϝιουʹରͯ͠ɺI/OΛ௨ͯ͠ɹ ༷௨ΓͷڍಈΛ͍ͯ͠Δ͔ݕূ͢Δ PHPͰɺPHPUnit Λ͏ྫ͕ଟ͍
݁߹ɺ౷߹ςετ featureςετɺAPI ςετ͕͜ΕʹͨΔ ಛఆͷϦΫΤετΛ͛ͯɺϨεϙϯε͞Εͨ ༰͕ਖ਼͍͔͠Ͳ͏͔Λݕূ͢Δ PHPͰɺPHPUnit Λ͏ྫ͕ଟ͍
UIςετ Selenium ͳͲΛར༻ͨ͠ E2E ςετ͕͜ΕʹͨΔ ࠷Ϣʔβઢʹ͍ۙςετɻWebαʔϏεͰɺɹɹɹ ࣮ࡍʹϒϥβ্Ͱ class id
Λࢦఆ͢Δ͜ͱʹΑͬͯɹ ࣗಈૢ࡞Λ͠ɺظ௨Γͷಈ࡞Λ͍ͯ͠Δ͔ݕূ͢Δ PHP ͩͱɺPHPUnit ͱ PHP-WebDriver Λ͔ͭͬͨE2Eς ετ͕ڍ͛ΒΕΔ
3ͭͷςετΛൺֱ͢Δ Ϣχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ ࣮ߦ࣌ؒ ͔ͳΓ͍ ͍ ͍ ςετʹམͪͨ࣌ ͷݪҼಛఆ࣌ؒ
͔ͳΓ͍ ʢฏۉతʹʣ ͍ ͔ͳΓ͍ ϝϯςφϯε গͳ͍ গͳ͍ ͔ͳΓଟ͍ ςετൣғ ͔ͳΓڱ͍ ͍ ͔ͳΓ͍ ϑϩϯτΤϯυͷ ڍಈ֬ೝՄ൱ Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ
3ͭͷςετΛൺֱ͢Δ Ϣχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ ࣮ߦ࣌ؒ ͔ͳΓ͍ ͍ ͍ ςετʹམͪͨ࣌ ͷݪҼಛఆ࣌ؒ
͔ͳΓ͍ ʢฏۉతʹʣ ͍ ͔ͳΓ͍ ϝϯςφϯε গͳ͍ গͳ͍ ͔ͳΓଟ͍ ςετൣғ ͔ͳΓڱ͍ ͍ ͔ͳΓ͍ ϑϩϯτΤϯυͷ ڍಈ֬ೝՄ൱ Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ ίετςετൣғɻςετൣғ͕͘ͳΕ࣮ߦ࣌ؒɺ ςετࣦഊͷݪҼಛఆɺϝϯςφϯεͳͲ͕૿͑Δ
3ͭͷςετΛൺֱ͢Δ Ϣχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ ࣮ߦ࣌ؒ ͔ͳΓ͍ ͍ ͍ ςετʹམͪͨ࣌ ͷݪҼಛఆ࣌ؒ
͔ͳΓ͍ ʢฏۉతʹʣ ͍ ͔ͳΓ͍ ϝϯςφϯε গͳ͍ গͳ͍ ͔ͳΓଟ͍ ςετൣғ ͔ͳΓڱ͍ ͍ ͔ͳΓ͍ ϑϩϯτΤϯυͷ ڍಈ֬ೝՄ൱ Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ 6*ςετςετൣғʹ6*ΛؚΉͷͰɺ جຊతʹϑϩϯτΤϯυͷಈ͖֬ೝͰ͖Δ
3ͭͷςετΛൺֱ͢Δ ࣮ߦ͕࣌ؒ͘ɺςετࣦഊͷݪҼಛఆ͕༰қ ͳϢχοτςετΛҰ൪ॻ͘ͷ͕ཧ →ςετൣғ͕1ؔɾϝιουʹऩ·͍ͬͯ Δ͔Β ϢχοτςετͰνΣοΫͰ͖ͳ͍Α͏ͳςε τΛɺ݁߹ςετɾUIςετͰݕূ͢Δͱྑ͍
Mike CohnࢯߟҊ ʮςετϐϥϛουʯ UI ౷߹ɺ݁߹ Ϣχοτ https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
Mike CohnࢯߟҊ ʮςετϐϥϛουʯ UI ౷߹ɺ݁߹ Ϣχοτ ίετ ॻ͖͘ྔ େ খ
গ ଟ https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
ςετϐϥϛουΛͬͨྫ ྫɿ ςετίʔυ͕ͳ͘ɺखಈςετͷΈͰ࣭୲อ͍ͯ͠Δɹ αʔϏε ͬͱςετ͍ͨ͠ͷܾࡁγεςϜ ෦ॲཧ͕ෳࡶͰɺϢχοτςετΛ͢Δʹ֤ϝιουΛ ςετ͍͢͠Α͏ʹϦϑΝΫλϦϯά͢Δඞཁ͕͋Δ
ςετϐϥϛουΛͬͨྫ UI Ϣχοτ 6*ʢखಈςετʣ ౷߹ɺ݁߹ Ϣχοτ
ςετϐϥϛουΛͬͨྫ UI Ϣχοτ 6* ౷߹ɺ݁߹ Ϣχοτ ·ͣ6*ςετͷςετίʔυ Λॻ͍ͯɺ࣭Λ୲อ͢Δ
ςετϐϥϛουΛͬͨྫ UI Ϣχοτ 6* ౷߹ɺ݁߹ Ϣχοτ 6*ςετΛ࣮ߦͭͭ͠ɺ6*ςετͰ୲อ͍ͯ͠Δ༰ Λɺ౷߹ɾ݁߹ςετϢχοτςετͰஔ͖͑Δ
ςετϐϥϛουΛͬͨྫ UI Ϣχοτ 6* ౷߹ɺ݁߹ Ϣχοτ νʔϜͰܾࡁपΓϢχοτςετͰͳ͘ɺɹɹɹɹɹɹɹɹ ౷߹ɾ݁߹ςετͰ֬ೝ͍ͨ͠ͱ͍͏ʹͳͬͨͷͰଟΊʹ͢Δ
ςετϐϥϛουΛͬͨྫ αʔϏεͷੑ࣭ʹΑͬͯ࠷దղมΘΔ ඞͣ͠ਖ਼ࡾ֯ܗͷςετϐϥϛουʹͳΔͱ ݶΒͳ͍ େࣄͳͷɺαʔϏεͷੑ࣭Λཧղ͢Δ͜ͱͱ νʔϜօͰ͢Γ߹ΘͤΔ͜ͱ
·ͱΊ ʢ༷ʑͳςετίʔυΛΔʣ • ςετίʔυେ͖͚͘Δͱɺɹɹɹɹɹɹɹɹ Ϣχοτςετɺ౷߹ɾ݁߹ςετɺUIςετɹ ɹ ɹ 3छྨͷςετ͕ଘࡏ͢Δ • ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔ɺɹɹ
ςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹ ͨͩ͠αʔϏεϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղ มΘΔͷͰɺνʔϜͰ͢Γ߹ΘͤΛߦ͏͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ ΛͤΔ͜ͱ
࠷ޙʹ ࣭Λ୲อͰ͖Εࣗͣͱ։ൃεϐʔυɹɹ ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ࣭ͱ։ൃεϐʔυ τϨʔυΦϑͰͳ͍ͱࢲࢥ͍ͬͯ·͢ ࣭ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹ ςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏