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
620
PHP8.4におけるJITフレームワークIRと中間表現について理解を深める
cocoeyes02
1
930
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
870
PHP RFC: Deprecate implicitly nullable parameter types をサクッと話す
cocoeyes02
0
740
PHPUnit 11 概論
cocoeyes02
5
2.5k
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
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
9.8k
Other Decks in Programming
See All in Programming
フロントエンドのパフォーマンスチューニング
koukimiura
5
2k
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
15k
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
230
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
470
AIともっと楽するE2Eテスト
myohei
8
3k
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
170
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
7.3k
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.3k
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
470
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
24
9.6k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
210
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
800
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
340
Producing Creativity
orderedlist
PRO
346
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.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छྨͷςετ͕ଘࡏ͢Δ • ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔ɺɹɹ
ςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹ ͨͩ͠αʔϏεϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղ มΘΔͷͰɺνʔϜͰ͢Γ߹ΘͤΛߦ͏͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ ΛͤΔ͜ͱ
࠷ޙʹ ࣭Λ୲อͰ͖Εࣗͣͱ։ൃεϐʔυɹɹ ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ࣭ͱ։ൃεϐʔυ τϨʔυΦϑͰͳ͍ͱࢲࢥ͍ͬͯ·͢ ࣭ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹ ςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏