Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
ssuser7a9029
PDF, PPTX
22 views
PHPUnitTest勉強会スライド
PHPUnitの勉強会のスライドを一つにまとめました。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
More Related Content
PDF
C# から java へのプログラム移植で体験したtddの効果は?
by
Shinichi Hirauchi
PDF
CMSI計算科学技術特論C (2015) OpenMX とDFT②
by
Computational Materials Science Initiative
PDF
CMSI計算科学技術特論C (2015) MODYLAS と古典MD①
by
Computational Materials Science Initiative
PDF
テストコードの定型化
by
Shinichi Hirauchi
PDF
xUnit Test Patterns - Chapter11
by
Takuto Wada
PPT
ユニットテスト 1日目
by
Yoshiki Shibukawa
PDF
xUTP Chapter19 (2). Testcase Class
by
Takuto Wada
PPTX
ソフトウェア・テスト入門8
by
Kenta Hattori
C# から java へのプログラム移植で体験したtddの効果は?
by
Shinichi Hirauchi
CMSI計算科学技術特論C (2015) OpenMX とDFT②
by
Computational Materials Science Initiative
CMSI計算科学技術特論C (2015) MODYLAS と古典MD①
by
Computational Materials Science Initiative
テストコードの定型化
by
Shinichi Hirauchi
xUnit Test Patterns - Chapter11
by
Takuto Wada
ユニットテスト 1日目
by
Yoshiki Shibukawa
xUTP Chapter19 (2). Testcase Class
by
Takuto Wada
ソフトウェア・テスト入門8
by
Kenta Hattori
What's hot
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PDF
PsychoPyを使った初学者向けの心理実験環境の構築
by
Hirokazu Ogawa
PDF
使い捨て python コードの書き方
by
Sho Shimauchi
PPTX
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
by
Deep Learning JP
PPT
PHP agile test tips
by
Tsutomu Chikuba
PDF
Spock's world
by
Takuma Watabiki
PDF
Nose 鼻をきかせてテストせよ
by
Atsushi Odagiri
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PsychoPyを使った初学者向けの心理実験環境の構築
by
Hirokazu Ogawa
使い捨て python コードの書き方
by
Sho Shimauchi
[DL Hacks]色々と進化しているTensorFlow - 紹介編 -
by
Deep Learning JP
PHP agile test tips
by
Tsutomu Chikuba
Spock's world
by
Takuma Watabiki
Nose 鼻をきかせてテストせよ
by
Atsushi Odagiri
Similar to PHPUnitTest勉強会スライド
PDF
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PDF
8時間耐久PHPUnitの教室
by
Yusuke Ando
PDF
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
PDF
Cake php + php unitによる実践的ユニットテスト
by
慶信 若松
PDF
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
PDF
Ruby初級者向けレッスン 第46回 ─── Test::Unit
by
higaki
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
PDF
Spring bootでweb ユニットテスト編
by
なべ
PDF
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
PDF
Code igniter + ci phpunit-test
by
ME iBotch
KEY
UnitTestのためのクラス設計
by
Takeshi Ishida
KEY
Unit testで定時帰宅!
by
Funato Takashi
PDF
Php勉強会資料20090629
by
Takako Miyagawa
PPT
ユニットテスト_2日目
by
Yoshiki Shibukawa
PPT
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
PDF
ひよこテスト駆動開発(PHPカンファレンス2014)
by
Oonishi Keitarou
PDF
Code ignitertalk 01
by
Takako Miyagawa
PDF
関西Php勉強会のlimeの話
by
Hisateru Tanaka
PDF
PHPUnitでリファクタリング
by
Takako Miyagawa
PDF
Local php-100828 2
by
Akio Ishida
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
8時間耐久PHPUnitの教室
by
Yusuke Ando
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
Cake php + php unitによる実践的ユニットテスト
by
慶信 若松
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
Ruby初級者向けレッスン 第46回 ─── Test::Unit
by
higaki
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
Spring bootでweb ユニットテスト編
by
なべ
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
Code igniter + ci phpunit-test
by
ME iBotch
UnitTestのためのクラス設計
by
Takeshi Ishida
Unit testで定時帰宅!
by
Funato Takashi
Php勉強会資料20090629
by
Takako Miyagawa
ユニットテスト_2日目
by
Yoshiki Shibukawa
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
ひよこテスト駆動開発(PHPカンファレンス2014)
by
Oonishi Keitarou
Code ignitertalk 01
by
Takako Miyagawa
関西Php勉強会のlimeの話
by
Hisateru Tanaka
PHPUnitでリファクタリング
by
Takako Miyagawa
Local php-100828 2
by
Akio Ishida
Recently uploaded
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PPTX
ddevについて .
by
iPride Co., Ltd.
PDF
Drupal Recipes 解説 .
by
iPride Co., Ltd.
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
ddevについて .
by
iPride Co., Ltd.
Drupal Recipes 解説 .
by
iPride Co., Ltd.
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PHPUnitTest勉強会スライド
1.
1時間で分かる PHPUnit講座 水島創太 1
2.
プロジェクトの配置 • ¥C:直下にzipファイルを解凍して配置 2
3.
目次 1. そもそもユニットテストって何? 2. PHPUnitについて 3.
実際にPHPUnitでコードを書いてみよう! 4. まとめ 3
4.
4 そもそもユニットテストって?
5.
ユニットテスト=メソッド単位のテスト 5 <?php // クラス class Human { //
メソッド function eat ($food) { $foodを噛む; $foodを溶かす; $foodを吸収; return 栄養; } } ?> • テスト: 実装したプログラムが 設計した通りに動くか 確認 • クラス: 共通する変数や メソッドをまとめたもの • メソッド: 処理をまとめて 名前をつけたもの
6.
ユニットテストのメリット 1. 範囲が狭いので問題の原因や修正箇所の特 定が容易 2. テストコードを資産として残せる 3.
疎結合なソースコードの記述を意識しやすい 6
7.
ではPHPUnitとは? • テスティングフレームワーク • ユニットテストの手順をPHPプログラムと して作成し、自動実行できるツール •
メソッドが想定通りに動くか自動確認 できる! 7
8.
どうやってテストをするのか? • メソッドの実行結果が期待値と一致するか • 期待値
= 処理が実行された結果の予想 8 /** * 渡された値に+1をして返却する. */ public function add(int $num) { return $num + 1; } 1 $num 結果 期待値: 2 2
9.
長々と話しましたが・・・・・・ • PHPUnitでテストコードを 書いてみよう! 9
10.
今回のテスト完了基準 • コードカバレッジ100%(分岐網羅) +
条件網羅 1. $numberが3の倍数の時、”Fizz”を返却する 2. $numberが5の倍数の時、”Buzz”を返却する 3. $numberが3と5の倍数の時、”FizzBuzz”が返却される 4. $numberが3の倍数でも5の倍数でもない時、 $numberに渡された数値がそのまま返却される ※コードカバレッジ : 対象のプログラム全体の中でテストが行われた部分の割合 ※分岐網羅: それぞれの判定条件における真偽が少なくとも1回は実行される ※条件網羅: それぞれの条件文における真偽が少なくとも1回は実行される
11.
テストファイルの実行設定 • phpunit.xml.dist:テストの実行計画ファイル テストコード実行する対象を指定 ディレクトリ単位でもファイル単位 でも指定できる テストコード対象に選択しない
12.
テストコード作成のルール① • Class名は「テスト対象名 +
Test」 class HogeHogeTest { }
13.
テストコード作成のルール② • PHPUnitの「TestCase」クラスを継承すること Class HogeHogeTest
extends TestCase { }
14.
テストコード作成のルール③ • テストしたいメソッドごとにテストメソッドを作成 • テストメソッドは「test+メソッド名」 Class
HogeHogeTest extends TestCase { public function testHogeHoge() { } }
15.
どうやってテストをするのか? • メソッドの実行結果が期待値と一致するか • 期待値
= 処理が実行された結果の予想 15 /** * 渡された値に+1をして返却する. */ public function add(int $num) { return $num + 1; } 1 $num 結果 期待値: 2 2
16.
Assertで期待値と結果を比較 • TestCaseにはAssert**というテスト結果比較 用の関数が用意されている • $this->assert**(期待値,
結果); を実行し 期待値と結果の比較を出力する • Assertには状況に応じて使える様々な種類が ある
17.
DataProvider • 配列に登録したデータを引数として複数渡すことができる • テストデータを複数用意してテストができる! public
function hogehogeProvider() { return [ // テストケースごとに作成 [ // 引数$hoge hoge, // 引数$fuge fuge, ], ]; }
18.
DataProviderの紐付け設定 • PHPDocでコメントを記述してDataProviderを 使いたいテストメソッドを関連づけることが できる /** * @dataProvider
[プロバイダメソッド名] */ public function testHogeHoge() {
19.
環境情報 • PHPフレームワーク Symfony3.1 •
PHPUnit 3.7.21(最新は6.0.0) • PHP 5.6.19 • IDE:Visual Studio Code PHP7.0以上の人 => PHPUnitは 最新 のものでOK (今のところ) PHP5.6の人 => PHPUnitは 5.7系 のものでOK (pharファイルはphpunit-5.7.21.phar) PHP5.5以下の人 => PHPUnitは 4.8系 を使う (pharファイルはphpunit-4.8.36.phar) 19
20.
ユニットテストのメリットとは? 20
21.
問題の原因や修正箇所の特定が容易 21 結合 テスト ユニット テスト テスト範囲が大きいので 上手く行かなかった場合 に原因特定が困難! 問題があってもメソッド内 の処理と、テスト値のみ 検証すれば良い メソッドごとの正常動作 は担保できる! <?php // クラス class Human { //
メソッド function eat ($food) { } } ?>
22.
テストコードを資産として残せる • 資産としてソースコードが残ることで 1. コードの処理が理解しやすくなる 2.
リファクタリングがしやすくなる 3. リグレッションテスト工数を減らせる ※リファクタリング:プログラムを動作を変えずに読みやすく綺麗な形に変更すること ※リグレッションテスト: プログラムの変更によって予想外の影響が現れていないかを確認するテスト 例) バグ修正によって新たなバグが発生していないかを確認する 22
23.
疎結合なソースコードを意識しやすい • 疎結合とは他との結びつきが弱く独立性が 強い構造。 ⇔
密結合 • ユニットテストを実装していると疎結合な デザインを感覚的に意識 しやすい ⇒何故か? • 密結合なfunctionはユニットテスト書くのが めんどくさい!!!! 23
24.
密結合だとめんどくさいので・・・ • テストコードをシンプルにするためにソース もシンプルになる • 疎結合なデザインに自然となっていく 24
25.
1. 疎結合なデザイン⇒ソースコードの洗練 2. メソッド単位の担保⇒バグの発生率の低下 3.
テストのソースコード化⇒テストの工数削減 ↓ 全体の工数の圧縮につながり システムの質の向上にも結び付く! 25 まとめ
Download