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
4k
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
390
新しいPHP拡張モジュールインストール方法「PHP Installer for Extensions (PIE)」を使ってみよう!
cocoeyes02
0
1.4k
PHP8.4におけるJITフレームワークIRと中間表現について理解を深める
cocoeyes02
1
1.2k
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
1.2k
PHP RFC: Deprecate implicitly nullable parameter types をサクッと話す
cocoeyes02
0
980
PHPUnit 11 概論
cocoeyes02
5
3.1k
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
1
1.3k
BASEにおける インシデント対応フローと工夫
cocoeyes02
0
1.2k
AWS Lambdaから始める Devチームの小さなDevOps改善 〜QCDどれも諦めない運用を目指して〜 / Start to improving small DevOps with AWS Lambda by Dev Team
cocoeyes02
0
1.5k
Other Decks in Programming
See All in Programming
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
160
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
370
SourceGeneratorのススメ
htkym
0
160
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
6k
Implementation Patterns
denyspoltorak
0
270
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
560
Oxlintはいいぞ
yug1224
5
1.2k
AtCoder Conference 2025
shindannin
0
1k
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
390
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
組織で育むオブザーバビリティ
ryota_hnk
0
160
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
600
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
100
Odyssey Design
rkendrick25
PRO
1
480
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
320
Documentation Writing (for coders)
carmenintech
77
5.2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
270
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
85
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
70
Writing Fast Ruby
sferik
630
62k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
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छྨͷςετ͕ଘࡏ͢Δ • ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔ɺɹɹ
ςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹ ͨͩ͠αʔϏεϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղ มΘΔͷͰɺνʔϜͰ͢Γ߹ΘͤΛߦ͏͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ ΛͤΔ͜ͱ
࠷ޙʹ ࣭Λ୲อͰ͖Εࣗͣͱ։ൃεϐʔυɹɹ ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ࣭ͱ։ൃεϐʔυ τϨʔυΦϑͰͳ͍ͱࢲࢥ͍ͬͯ·͢ ࣭ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹ ςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏