Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
330
新しいPHP拡張モジュールインストール方法「PHP Installer for Extensions (PIE)」を使ってみよう!
cocoeyes02
0
1.3k
PHP8.4におけるJITフレームワークIRと中間表現について理解を深める
cocoeyes02
1
1.1k
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
1.1k
PHP RFC: Deprecate implicitly nullable parameter types をサクッと話す
cocoeyes02
0
960
PHPUnit 11 概論
cocoeyes02
5
2.9k
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
1
1.2k
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
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
390
Java 25, Nuevas características
czelabueno
0
120
tparseでgo testの出力を見やすくする
utgwkk
2
290
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
130
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
480
AIコーディングエージェント(NotebookLM)
kondai24
0
240
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
240
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
Cell-Based Architecture
larchanjo
0
140
Cap'n Webについて
yusukebe
0
150
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
650
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
200
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
100
Technical Leadership for Architectural Decision Making
baasie
0
190
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
93
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Test your architecture with Archunit
thirion
1
2.1k
Designing for humans not robots
tammielis
254
26k
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छྨͷςετ͕ଘࡏ͢Δ • ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔ɺɹɹ
ςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹ ͨͩ͠αʔϏεϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղ มΘΔͷͰɺνʔϜͰ͢Γ߹ΘͤΛߦ͏͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ ΛͤΔ͜ͱ
࠷ޙʹ ࣭Λ୲อͰ͖Εࣗͣͱ։ൃεϐʔυɹɹ ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ࣭ͱ։ൃεϐʔυ τϨʔυΦϑͰͳ͍ͱࢲࢥ͍ͬͯ·͢ ࣭ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹ ςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏