ペアプロ小劇場

ペアプロ小劇場
劇団ペケぴー
天野勝
大熊知栄
安井力
懸田剛
永和システムマネジメント
アジアパシフィックシステム総研
アジアパシフィックシステム総研
永和システムマネジメント
今日は?
テスティングがネタです
テストになってない
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 expected = buildData(is);
Response actual = target.execute2();
assertEquals(expected, actual, "test2.xmlの中身と一致すること");
}
回帰テストの価値が
わかってな~い
回帰していない
症状
– 環境を変えるとテストが通らなくなる
– 繰り返して実行すると動作が変わる
原因
– テスト実行マシンの環境に依存したテストコード
処方箋
– テスト環境に依存しない
楽していない
フィールド⇒30個
アクセッサ⇒60個
3つのテストケース⇒
180個
テスティングフレームワークの思想
が
わかってな~い
楽していない
症状
– 時間がかかる割には、テストコードから得られるメ
リットが少ない
原因
– 機械的にテストコードを書いていて、創意工夫をして
いない
処方箋
– テストが必要かどうかを熟考し、不要なテストコード
は書かない
ありがとうございました
天野勝
大熊知栄
安井力
懸田剛