Limeを使ったユニットテストの実装方法

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

Digital Farm inc. 株式会社デジタルファーム ・本社 札幌市東区北 41 条東 6 丁目 ・東京オフィス 東京都港区白金 2 丁目 5 番 多言語サイト、ここに気をつけ て! -制作時の落とし穴と対策- Multisite Language_gaiyou.pptx.
第6回 JavaScript ゼミ セクション3-6 発表者 直江 宗紀. 組み込み関数  JavaScript に予め用意された関数  特定のオブジェクトに依存していない  単に関数名で呼び出すことが可能.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
プログラマのレベルアップ.
Webアプリケーション開発の 基本的なポイント
Struts1.xの脆弱性(CVE ) に対するSDEの対処:推奨タイプ (サンプルソースコードの公開)
CakePHPを業務に導入する Shin x blog 新原 雅司.
ホームページのリニューアル企画書をつくりたい
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
OJT研修 「テスト実施、テスト設計の技術習得」 日時: 8月22日(月)  場所: 本社5階.
シリウスの使い方セミナー【1】 Copyright © 2013 busitry All Rights Reserved.
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
ケータイキット for Smarty のご紹介
自作組込みOSを エミュレータで 動かしてみた 坂井弘亮 (KOZOSプロジェクト) Twitter ID:kozossakai.
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
SfFormの拡張方法.
2008/09/20 TDD 道場 ~ ぼくと契約して TDD をやってよ! ~.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
カムタジアスタジオで作った動画を ムービーメーカーで保存して、 ワードプレスに アップロードする方法.
PHPの基礎と開発手法 Based on PHP5
アスペクト指向プログラミングと Dependency Injection の融合
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
~手続き指向からオブジェクト指向へ[Ⅱ]~
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
プログラミング言語入門 手続き型言語としてのJava
Oracle XEを使ってみよう 初音玲.
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
図書館職員のための アプリケーション開発講習会
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
プログラミング応用 printfと変数.
プログラミング言語入門.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
TDDとメソッドの外部設計 テストファーストの秘訣 2009/08 biac.
~新たなソフトウェア開発の手法~ 発表 土屋俊介
Java8について 2014/03/07.
All Rights Reserved, Copyright © 2004, Kobayashi
Oracle XEを使ってみよう 初音玲.
第15回放送授業.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
TDD ってどんな感じ? FizzBuzz を作ってみる 2010/01/22 biac 1.
学修する科目やプログラムの内容 世界の留学生と交流学習プログラム in New York
ディジタル化の 利点と問題点 高等学校 情報C 沖縄県立総合教育センター IT教育課 〒 沖縄県沖縄市与儀587番地
Visual Basic 2010 による 学習ウェアの開発
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
岩手県立大学ソフトウエア情報学部 3年 鈴木研究室所属 井ノ上 憲司
dcNavi:デバッグ支援のための グラフベース推薦システム
Annotation EJB 3.0 コース 第3回 2006年8月4日.
ソフトウェア制作論 平成30年11月28日.
ご提案資料 xxxxx株式会社 作成日:2016.xx.xx.
アルゴリズムとデータ構造1 2009年6月15日
コースのタイトル 教師の名前 | コース メンバー.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-3. サブクラス,継承 (C++ オブジェクト指向プログラミング入門)
アルゴリズムとデータ構造 2010年6月17日
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
ETロボコン2009 コード品質評価プロジェクト ~高品質プログラミングのススメ~ 九州地区 特別プロジェクト 2009/6/13
値渡しと参照渡しについて.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
就職活動.
ZendFrameworkで使うためにFilemakerクラスをスクラッチから作ってみる
Presentation transcript:

Limeを使ったユニットテストの実装方法 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

ユニットテストを行う利点は沢山あります。 ユニットテストって何? 単体の品質を担保するテストです CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

ユニットテストを行う利点は沢山あります。 問題点の究明が簡単 テストを追記する事でクオリティアップ! CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

ユニットテストを行う利点は沢山あります。 バグ発見&テスト追加で品質向上 仕様書が無くても品質を保ちやすい CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

ユニットテストを行う利点は沢山あります。 MVCに沿ったプログラミングで開発者を縛る 必然的にMVC的なプログラミングで縛る CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

ユニットテストを行う利点は沢山あります。 結論。 長期的なメンテナンスに必要 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 欠点もあります 品質と開発速度はトレードオフ              by 社長 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 欠点もあります もしも・・・ オブジェクト指向じゃないような場合… CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 欠点もあります コントローラーと、ビューに散らばったビジネスロジックを集める テストを行う範囲を明確化 実施 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 欠点もあります リファクタリング中の機能追加は難しい リストアップ&テストの工数はかなり大きい CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 話のまとめ 何事も割り切りと諦めと決意が必要。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 話のまとめ テストをやらず、速度を極限まで高めるというスタンス 徹底的にテストをするというスタンス CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. 話のまとめ 今日の話はバグと決別する、高品質なソフトウェア構築を決意をした人向けの話となります。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. Limeって何? Limeって何? Symfony1.x付属のテストフレームワーク CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. Limeって何? 元になっているのはPerlのTest::More ラシイ。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. Limeって何? 学習曲線を緩やかに。 できるだけ簡単に。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. なにはともあれ、どんな物か試しましょう どこにあるの? プロジェクト/test/unit CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. なにはともあれ、どんな物か試しましょう どこにあるの? プロジェクト/test/unit CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. なにはともあれ、どんな物か試しましょう テストの対象に使うクラスは・・・ 配っている紙を見てください。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. なにはともあれ、どんな物か試しましょう プロジェクト /test/unit/app/アプリ名/lib/ CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. なにはともあれ、どんな物か試しましょう クラス名+サフィックスにTest.php 今回はHogeクラスのテストなのでhoge.class.Test.php CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. なにはともあれ、どんな物か試しましょう では実演してみます。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. <?php class hoge { //put your code here // きちんと動く例 /* public function trimScalar($Value){ $result = str_replace(' ', '', $Value); if($Value === "予約語"){ return $value; } return $result; // バグ有りの例その1:無理やりtestという文字列をreturn */ str_replace( ' ', $result, $Value); return 'test'; // バグ有りの例その2:受け取ったValueをそのままreturn return $Value; なにはともあれ、どんな物か試しましょう CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. <?php require_once dirname(__FILE__) . '/../bootstrap/unit.php'; $t = new lime_test(1,new lime_output_color); $t->is(hoge::trimScalar(' test '), 'test', '::trimScalar()スペースを除く'); $t->is(hoge::trimScalar('予約語'), '予約語', '::trimScalar()予約語はそのままスルー'); $t->is(hoge::trimScalar(' '), false, '::trimScalar()スペースを除く異常系1'); $t->is(hoge::trimScalar(' abc de '), 'abcde', '::trimScalar()途中スペース込み'); $t->is(hoge::trimScalar(' あいう えお '), 'あいうえお', '::trimScalar()2バイト文字のチェック'); $t->is(hoge::trimScalar(''), false, '::trimScalar()何も無い場合はfalseを返す'); $t->todo('テスト開始!'); なにはともあれ、どんな物か試しましょう CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. <?php require_once dirname(__FILE__) . '/../bootstrap/unit.php'; $t = new lime_test(1,new lime_output_color); $t->is(hoge::trimScalar(' test '), 'test', '::trimScalar()スペースを除く'); //$t->is(hoge::trimScalar(‘予約語’), ‘予約語’, ‘::trimScalar()予約語はそのままスルー’); //コメントアウト! $t->is(hoge::trimScalar(' '), false, '::trimScalar()スペースを除く異常系1'); $t->is(hoge::trimScalar(' abc de '), 'abcde', '::trimScalar()途中スペース込み'); $t->is(hoge::trimScalar(' あいう えお '), 'あいうえお', '::trimScalar()2バイト文字のチェック'); $t->is(hoge::trimScalar(''), false, '::trimScalar()何も無い場合はfalseを返す'); $t->todo('テスト開始!'); なにはともあれ、どんな物か試しましょう CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. # symfony test:coverage --detailed test/unit/HogeTest.php lib/Hoge.php >> coverage running C:\Documents and Settin...CH/test/unit/HogeTest.php (1/1) lib/hoge 100% TOTAL COVERAGE: 100% だったのが・・・ lib/hoge 83% # missing: 16 TOTAL COVERAGE: 83% となる。 なにはともあれ、どんな物か試しましょう CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.

Copyright © FirstLogic, Inc. All rights reserved. ご静聴ありがとう御座いました。 CONFIDENTIAL Copyright © FirstLogic, Inc. All rights reserved.