ペアプロ小劇場 劇団ペケぴー 天野勝 永和システムマネジメント 大熊知栄 アジアパシフィックシステム総研

Slides:



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

オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
API 呼び出し列の差分を利用した Android アプリケーション比較ツールの 試作 井上研究室 神田 哲也.
わんくま同盟 名古屋勉強会 #2 Visual Studio 2008 でやる テスト駆動開発 2008/04/26 biac 機材協力 : 日本インフォメーション㈱ Test Driven Development.
わんくま同盟 名古屋勉強会 #17 biac
テストについて 近畿大学大学院 田中大介 資料:
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
Visual Studio 2010 の新機能 Coded UI Test
プログラミング基礎I(再) 山元進.
オレポータビリティ 日本Rubyの会 青木 峰郎.
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
Struts1.xの脆弱性(CVE ) に対するSDEの対処:推奨タイプ (サンプルソースコードの公開)
Java I 第2回 (4/18)
総評 野田久順.
Visual Studio 2008 でやる テスト駆動開発
Servlet J2EE I 第8回 /
プログラミング基礎I(再) 山元進.
Myoungkyu Song and Eli Tilevich 発表者: 石尾 隆(大阪大学)
Visual Studio 2005を使ったテスト.
独習Java ・ 12.1  インターネットアドレス ・ 12.2  サーバーソケットとソケット  12月 19日    小笠原 一恵.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
2008/09/20 TDD 道場 ~ ぼくと契約して TDD をやってよ! ~.
ノンプログラマのための Selenium de DDT はじめの一歩
Androidソースコード公開後のJNI
ビールゲームの考察 4班 チーム名 U19日本代表.
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
HTTPプロトコル J2EE I 第7回 /
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
情報 第2回:状態遷移 その2.
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
Stateful Session Beans
ソフトウェア工学 知能情報学部 新田直也.
UDPマルチキャストチャット                    空川幸司.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
日本Androidの会 事務局長 SIPropプロジェクト 代表 グロースエクスパートナーズ 今村 謙之(いまむら のりつな)
第6回 2007年6月1日 応用Java (Java/XML).
TDDとメソッドの外部設計 テストファーストの秘訣 2009/08 biac.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
音声認識・翻訳 Android アプリケーション制作
情報 第1回:状態遷移 その1.
パッケージ,アクセス修飾子 2008年4月27日 海谷 治彦.
Visual Studio 2008 でやる テスト駆動開発
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
オブジェクト・プログラミング 第8回.
TDD ってどんな感じ? FizzBuzz を作ってみる 2010/01/22 biac 1.
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
オブジェクト プログラミング 第2回 プログラムの基本.
アルゴリズムとプログラミング (Algorithms and Programming)
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
アルゴリズムとプログラミング (Algorithms and Programming)
蓄積されたオブジェクトの動作履歴を用いた 実行履歴削減手法の提案
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
情報処理技法(Javaプログラミング)1 第8回 同じ処理を何回も繰り返すには?
Presentation transcript:

ペアプロ小劇場 劇団ペケぴー 天野勝 永和システムマネジメント 大熊知栄 アジアパシフィックシステム総研 天野勝  永和システムマネジメント 大熊知栄 アジアパシフィックシステム総研 安井力  アジアパシフィックシステム総研 懸田剛  永和システムマネジメント

今日は? テスティングがネタです

テストになってない

・グリーンになっただけ? ・テストの 書き忘れ public void testAdd() { Calc.add(1, 2); } public void testSub() { Calc.sub(1, 2); public void testDiv() { Calc.div(2, 1); try { Calc.div(2, 0); } catch(Exception e) { } public void testMul() { // まだ ・グリーンになっただけ? ・テストの 書き忘れ

テストケースを 作る目的が わかってな~い

テストになってない 症状 原因 処方箋 assert がない なにも確認していない メソッドを呼ぶだけでテストになると思っている なにを確認すればいいのかわからない 処方箋 アサートファーストを実践する どんなことを確認するのか理解する 確認する項目と内容をレビューする

自動化してない

・確認内容を画面に 表示しているだけ。 ・手作業で確認 しなくてはならない。 ・手作業で確認 しなくてはならない。 LineItem item1 = new LineItem(); item1.setPrice(1000); item1.setQuantity(20); Order order = new Order(); order.addLine(item1); LineItem item2 = new DiscountedItem(24, 0.9); item2.setPrice(800); item2.setQuantity(50); order.addLine(item2); System.out.println("1000*20の品と、24個ロットで9掛けの800円の品50個の合計" + order.getTotalPrice()); order.register(); System.out.println("DBを見て注文が登録されているか確認する");

テスティングフレームワークの思想が わかってな~い

自動化してない 症状 原因 処方箋 目で見て確認している 手作業で動作を確認している assert の使い方をわかってない どうやって確認すればいいのかわからない 処方箋 ぜんぶassertを使って確認する 難しいテストのノウハウを調べる Mockを活用する xUnitの拡張パッケージを使う

回帰していない

public void test1() { InputStream is = new FileInputStream("c:\ボケ子\test1.xml"); Response expected = buildData(is); Response actual = target.execute(); assertEquals(expected, actual, "test1.xmlの中身と一致すること"); } public void test2() { InputStream is = new FileInputStream("c:\ボケ子\test2.xml"); Response actual = target.execute2(); assertEquals(expected, actual, "test2.xmlの中身と一致すること");

回帰テストの価値が わかってな~い

回帰していない 症状 原因 処方箋 環境を変えるとテストが通らなくなる 繰り返して実行すると動作が変わる テスト実行マシンの環境に依存したテストコード 処方箋 テスト環境に依存しない

楽していない

フィールド⇒30個 アクセッサ⇒60個 3つのテストケース⇒ 180個

テスティングフレームワークの思想が わかってな~い

楽していない 症状 原因 処方箋 時間がかかる割には、テストコードから得られるメリットが少ない 機械的にテストコードを書いていて、創意工夫をしていない 処方箋 テストが必要かどうかを熟考し、不要なテストコードは書かない

ありがとうございました 天野勝 大熊知栄 安井力 懸田剛