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.8k
PHPerのための テストコード入門.
2019/12/01
PHP カンファレンス2019 のセッションで使用したスライドです
02
December 01, 2019
Tweet
Share
More Decks by 02
See All by 02
新しいPHP拡張モジュールインストール方法「PHP Installer for Extensions (PIE)」を使ってみよう!
cocoeyes02
0
650
PHP8.4におけるJITフレームワークIRと中間表現について理解を深める
cocoeyes02
1
950
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
910
PHP RFC: Deprecate implicitly nullable parameter types をサクッと話す
cocoeyes02
0
800
PHPUnit 11 概論
cocoeyes02
5
2.5k
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
PHPUnit 10 概論 / Introduction of PHPUnit 10
cocoeyes02
3
10k
Other Decks in Programming
See All in Programming
ワープロって実は計算機で
pepepper
2
940
新世界の理解
koriym
0
130
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
380
DatadogのArchived LogsをSnowflakeで高速に検索する方法(Archive Searchでオワコンにならないことを祈って) / How to search Datadog Archived Logs quickly with Snowflake (hoping Datadog Archive Search doesn’t make this obsolete)
civitaspo
0
110
JetBrainsのAI機能の紹介 #jjug
yusuke
0
190
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
0
330
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
110
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
260
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
430
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
41
16k
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
670
リッチエディターを安全に開発・運用するために
unachang113
1
360
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Speed Design
sergeychernyshev
32
1.1k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Thoughts on Productivity
jonyablonski
69
4.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Agile that works and the tools we love
rasmusluckow
329
21k
We Have a Design System, Now What?
morganepeng
53
7.7k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Embracing the Ebb and Flow
colly
86
4.8k
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छྨͷςετ͕ଘࡏ͢Δ • ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔ɺɹɹ
ςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹ ͨͩ͠αʔϏεϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղ มΘΔͷͰɺνʔϜͰ͢Γ߹ΘͤΛߦ͏͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ ΛͤΔ͜ͱ
࠷ޙʹ ࣭Λ୲อͰ͖Εࣗͣͱ։ൃεϐʔυɹɹ ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ࣭ͱ։ൃεϐʔυ τϨʔυΦϑͰͳ͍ͱࢲࢥ͍ͬͯ·͢ ࣭ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹ ςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏