わんくま同盟 名古屋勉強会 #17 biac

Slides:



Advertisements
Similar presentations
Trac と Eclipse の 便利な機能. プロジェクト管理システム: Trac 0. はじめに バージョン管理システム: Subversion 統合開発環境: Eclipse ・ Wiki による情報 管理 ・進捗状況の管理 ・プログラムの作 成 ・リポジトリに データを集める.
Advertisements

わんくま同盟 名古屋勉強会 #3 タダで始めるテストファースト入門 C# Express + NUnit biac 機材協力 : 日本インフォメーション㈱ 2008/7/26.
わんくま同盟 東京勉強会 #26 - LT 大集合 !! 派生開発プロセス XDDP のすすめ 2008/11/15( 土 ) fnya.
わんくま同盟 名古屋勉強会 #2 Visual Studio 2008 でやる テスト駆動開発 2008/04/26 biac 機材協力 : 日本インフォメーション㈱ Test Driven Development.
わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
オープン&ビッグデータ活用・地方創生推進機構 事務局 オープン&ビッグデータ活用・地方創生推進機構 評価版ツールの状況報告 平成26年度第3回 技術委員会 資料3-1.
テストについて 近畿大学大学院 田中大介 資料:
Visual Studio 2010 の新機能 Coded UI Test
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
プログラマのレベルアップ.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング基礎I(再) 山元進.
2008/09/20 TDD 道場 ~ みんな TDD やってみよう! ~.
OJT研修 「テスト実施、テスト設計の技術習得」 日時: 8月22日(月)  場所: 本社5階.
Visual Studio 2008 でやる テスト駆動開発
Biac /10/25 DI コンテナの本懐 ~ IoC の実装も楽々! biac
クイズ 「インターネットを使う前に」 ネチケット(情報モラル)について学ぼう.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
ソースコード品質概論 なぜソースの品質を追求するのか
講 義 ガ イ ダ ン ス オペレーティングシステム 第1回.
C言語講座 第4回 ポインタ.
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
2008/09/20 TDD 道場 ~ ぼくと契約して TDD をやってよ! ~.
Plugin を改造してみる 2008/10/18 id:akihirox.
ノンプログラマのための Selenium de DDT はじめの一歩
MSBuild 色々出来るよ 2011/04/02 お だ.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
タダで始めるテストファースト入門 C# Express + NUnit
~企画~ GO,桑田,ヒルズ.
情報 第2回:状態遷移 その2.
も  じ ま ほう 文字の魔法 文字の魔法、っていったいなんでしょう? 文字は、ものすごい魔法を持っているんですよ。
Biac /10/ /10/25 DI コンテナの本懐 ~ IoC の実装も楽々! biac
VBScriptで ユニットテストをやってみる
Windows 2000 拡張カーネルの技術紹介 2018年6月10日 黒翼猫.
Microsoft MVP for Development Tools – Visual C++
人工知能特論 9.パーセプトロン 北陸先端科学技術大学院大学 鶴岡 慶雅.
XP Extreme Programming.
Microsoft MVP for Development Tools – Visual C++
TDDとメソッドの外部設計 テストファーストの秘訣 2009/08 biac.
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
メソッドの外部設計と テストファースト ~ 上手く TDD するために ~
お仕事にまったく役にたたない内容のコードレビューやりたいと思います。
オブジェクト指向の …ナニ? わんくま同盟 名古屋勉強会 #5 2008/12/6 Lightning Talk by biac
次ページボタンではなく、 画面をクリックする 「PPTアニメーション機能」 でご覧下さい。
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
2008/09/20 F# 入門 TDD 道場 ~ みんな TDD やってみよう! ~.
Microsoft MVP for Development Tools – Visual C++
メソッドの外部設計と テストファースト ~ 上手く TDD するために ~
情報 第1回:状態遷移 その1.
Visual Studio 2008 でやる テスト駆動開発
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
TDD ってどんな感じ? FizzBuzz を作ってみる 2010/01/22 biac 1.
とにかくゲーム作ってみよう (0からのゲームプログラミング)
第1章 いよいよプログラミング!! ~文章の表示 printf~
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
企業システム戦略を成功させる! ドキュメント・レビュー実践法 企業システム戦略家 青島 弘幸.
プログラミング入門 電卓を作ろう・パートI!!.
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
第5章 まだまだ続く反復処理!! ~繰り返しその2 for~
Microsoft Solutions Framework for Agile Software Development ver. 4.x
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
情報処理Ⅱ 2007年12月3日(月) その1.
コンパイラ 2012年10月11日
より分かりやすい ユースケースモデルを作る
参考:大きい要素の処理.
FPS(続き).
アジャイル開発プロセス 森口朋広.
Presentation transcript:

わんくま同盟 名古屋勉強会 #17 biac

わんくま同盟 名古屋勉強会 # 年 名古屋生まれ (宇宙時代以前) 大学の専攻は航空工学 卒業後、本田技術研究所で機械設計 1994年 プログラマーに転身 2001年 Windows XP のリリースと前後 して XP と TDD を知る

わんくま同盟 名古屋勉強会 #17 –「VB2010 Express + NUnit 2.5 で、 初めてのTDD Step by Step」 (PDF版,72ページ) 今日はC#でやるけど…

わんくま同盟 名古屋勉強会 #17 Test Driven Development –テスト駆動「開発」と言うけど、実装の話。 テストファーストリファクタリング

わんくま同盟 名古屋勉強会 #17 テストファースト = 外部設計 –メソッドレベルの外部設計を、テストケース として少しずつ決めていきながら、実現でき ることも立証する。 リファクタリング = 内部設計 –メソッドレベルの外部設計を固定し、かつ、 作ることができると証明してから、メソッド の内部をどうするか考える。

わんくま同盟 名古屋勉強会 #17

テストケースをひとつ書く 失敗することを確認する (RED) ↓ テストケースに通るだけの製品コードを 書く 成功することを確認する (GREEN)

わんくま同盟 名古屋勉強会 #17 メソッドの外部設計 = メソッド利用者に 対する公約、早く決めねば! メソッドの中身 - 後からいくらでも変更可能。 みんな、メソッドの外部設計やってる? テストケース = 外部設計の厳密な例示 メソッドの外部設計 = 入出力、オブジェクトの状態遷移 日本語による仕様書 = あいまい 数式やコードによる表現 = 厳密 例示: 全ての入出力をテストコードで記述することは非現実的

わんくま同盟 名古屋勉強会 #17 …と言っても。 現状、プログラム全部をテストファースト で作ることは、まず無い。 ⇒ UI 部分は大変すぎ ※ UIは従来のやり方、ロジックだけTDDでやることが多い

わんくま同盟 名古屋勉強会 #17 最初は "1 - 1"、次は "2 - 2"、"3 - Fizz"… Fizz Buzz ルール –番号が3の倍数のとき、"Fizz" と発言する –番号が5の倍数のとき、"Buzz" –番号が3と5の倍数のときは "Fizz Buzz"

わんくま同盟 名古屋勉強会 #17 呼び出し (入力)返値 (出力) 1回目"1 - 1" 2回目"2 - 2" 3回目"3 - Fizz" 4回目"4 - 4" 5回目"5 - Buzz" 6回目"6 - Fizz" 7回目"7 - 7" 呼び出し返値 14回目" " 15回目"15 - Fizz Buzz" 16回目" " ※ Interger.MaxValue の前後は、 今回は省略します。

わんくま同盟 名古屋勉強会 #17 Visual C# 2010 Express NUnit 2.6(β) ※ UI は作ってある

わんくま同盟 名古屋勉強会 #17 1. 失敗するユニットテストを成功させるためにしか、プ ロダクトコードを書いてはならない。 2. 失敗させるためにしか、ユニットテストを書いてはな らない。(コンパイルエラーは失敗に数える。) 3. ユニットテストを1つだけ成功させる以上に、プロダ クトコードを書いてはならない。 ※ 出典: Robert C Martin (UncleBob) (翻訳 安井力)

わんくま同盟 名古屋勉強会 #17 テストケース単位でひとつずつ進む ※ TDD三原則の 1. ~ 3. –一度に取り組む問題を小さくする –すばやいフィードバックを得る ↑ 機械設計者の悲願 1日に何十回でも 試作できるなんて!!

わんくま同盟 名古屋勉強会 #17 失敗するテストケースをもう思いつかない ⇒ テストファースト終了 ※ TDD三原則の 2. ※ 外部設計を満たすコードが書けることは証明できた。 ここでチェックイン! / コミット! 追加のテストケースを書いても良い ※ TDD三原則からは外れる, メンテするテストコードが増える –安心を得る –APIドキュメントとして

わんくま同盟 名古屋勉強会 #17 仕様書のレビュー ムダなコードは無い ※ すべてのコードが、テストケースを通すために必要 (C0 カバレッジ100%) 使いやすいメソッド (外部設計優先) Combat Proven (戦闘証明済み)

わんくま同盟 名古屋勉強会 #17 品質保証ではない –開発者が理解したメソッドの外部設計が、プ ログラム仕様を満たしている保証は無い。 (そのプログラム仕様も、顧客の要求を満たしている 保証は無い。) …実装の話なんだから、あたりまえ! –テストケースを網羅していない (←TDD三原則 の2.) アーキテクチャ設計ではない –TDDの中からアーキテクチャは出てくるが、 実際にはそれでは遅い (とくに多人数開発)

わんくま同盟 名古屋勉強会 #17

外部設計(公約)を変えない限り、中身はど れだけ変えてもいいじゃないか! –テストファーストで外部設計は固まった –全テスト合格(=外部設計不変)を維持しなが ら内部設計を洗練する

わんくま同盟 名古屋勉強会 #17 良くなる方向を考える ↓ 製品コードをちょっと直す ↓ テストが成功することを確認する (GREEN) ※ 大股に歩くとコケるぞ! (そのときはいさぎよく戻す)

わんくま同盟 名古屋勉強会 #17 Visual C# 2010 Express NUnit 2.6(β) テストファーストは、さっき終わった

わんくま同盟 名古屋勉強会 #17

三歩歩いたら読めなくなりそうなコード ⇒ 必須。ヤレ、ゼッタイ! メンテナンスしにくそうだ ⇒ 余裕があれば 将来の拡張に備える ⇒ 実際に拡張するときに

わんくま同盟 名古屋勉強会 #17 きれいなコード ・読みやすいコード ・重複の無いコード ↓ ・追加/修正コストの削減 (開発中、カット オーバーまでにも頻繁に発生) ・なんといっても、気持ちよくコードを 書ける! ※ オマケ効果: 発見「こんな書き方も出来るんだ!」

わんくま同盟 名古屋勉強会 #17

1に鍛錬 – "Software Craftsman" Uncle Bob の言葉 「TDD は学術研究の話じゃない、鍛錬だよ。」 "TDD is a discipline, not an area of academic study." – 写経、ペアプロ、道場 2に勉強 …TDDって、ようするに実装の話だもん – よいコード、デザインパターン、Mockの使 い方、ソースコードリポジトリ… 全部! F# とか関数型言語もやるといいかも

わんくま同盟 名古屋勉強会 #17 ぼくと契約して翻訳家になってよ!! NUnitマニュアル翻訳プロジェクト NUnit3(今夏予定)を待って、活動開始予定!