TDD Boot Camp 東京 for C++ 進行

>100 Views

October 08, 11

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

TDD Boot Camp 東京 for C++

2.

会場諸注意 喫煙について 20 階に喫煙室はありますが、休館日のた め、利用出来ません。また、館外で喫煙 飲食物について されることも、今後、イベントが開催出 神保町 セブン 来なくなる懸念があるため、ご遠慮下さ イベント開催期間中は館内全域 イレブ ン い。 が施錠されており、ゲストの方 の館内移動が制限されるため、 ミニ ストップ 館内で飲み物を購入することが ここ 出来ません。購入は館外のコン .

3.

タイムテーブル 09:30 ~ 10:00 開場 進み方に応じて多少変わります 10:00 ~ 10:05 会場説明 10:05 ~ 10:35 中村薫さんによる講演 10:35 ~ 11:30 演習説明と実践 11:30 ~ 12:00 レビュー

4.

演習説明 席替え 進め方 コードによる TDD 課題

5.

ペアプログラミング ペアプロの心得 . 二人一組で行う . ドライバーは実装やテストを書く . ナビゲーターは「何をやるか?」を 指示する 現在書いているコードの細かな突っ

6.

席替え 自己組織化ゲ〜ム

7.

あなたの TDD レベルは どのくらい? レベル順に一列に並んでください よく知らない人:手前 . 詳しい人:奥 レベルは自己申告でお願いします 前後の人と話してレベルを測ってね .

8.

順番ぎめ 前から番号を数えて下さい . 1 4 の次は1に戻ります

9.

席について下さい 講演台 2 4 6 8 10 12 14 16 1 3 5 7 9 11 13 15

10.

細かな制約を解決して下 さい 以下の条件が成り立っているなら、 手を上げて他の人と変わって下さい . . . ペアで PC を持っていない ペアが知り合い どうしてもあの人とペアを組みたい」

11.

進め方: 自己紹介しあって下さい 出来れば、お昼も一緒に取りましょう! GitHub から、テストを含む環境をダウンロード して下さい . . https://github.com/imagire/TDD-Boot-Camp-Tokyo-for-CPP/ 出来れば、ブランチを作って、 GitHub に push してください 「テストを書く」→「実装する」→「リファクタ リング」の .

12.
[beta]
google test の TDD (1/5)

お約束

#include <gtest/gtest.h>

int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

13.
[beta]
google test の TDD (2/5)
#include
<gtest/gtest.h>
テストケース

テストを書く

テスト
名
名
TEST(AddTest, AddWorks)
計算結果
{
EXPECT_EQ(2, add(1, 1));
}

int main(int argc,期待値
char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

14.
[beta]
google test の TDD (3/5)
#include <gtest/gtest.h>

失敗する

intadd(intx,inty)
{
return 0;
}
TEST(AddTest, AddWorks)
{
EXPECT_EQ(2, add(1, 1));
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

15.
[beta]
google test の TDD (4/5)
#include <gtest/gtest.h>
intadd(intx,inty)
{
long z=y+x;
return z;
}

実装する

TEST(AddTest, AddWorks)
{
EXPECT_EQ(2, add(1, 1));
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

16.
[beta]
google test の TDD (5/5)
#include <gtest/gtest.h>

リファクタリング

int add(int x, int y)
{
return x + y;
}
TEST(AddTest, AddWorks)
{
EXPECT_EQ(2, add(1, 1));
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

17.
[beta]
GoogleTest で使える項
目
true/false で判定する
致命的な判定

致命的ではない判定

判定条件

2
値の比較で判定する
ASSERT_FALSE(condition);
EXPECT_FALSE(condition);

condition が true のとき成功

致命的な判定

致命的ではない判定

判定条件

ASSERT_EQ(expected, actual);

EXPECT_EQ(expected, actual);

expected == actual のとき成功

ASSERT_NE(val1, val2);

EXPECT_NE(val1, val2);

val1 != val2 のとき成功

ASSERT_LT(val1, val2);

EXPECT_LT(val1, val2);

val1 < val2 のとき成功

ASSERT_LE(val1, val2);

EXPECT_LE(val1, val2);

val1 <= val2 のとき成功

ASSERT_GT(val1, val2);

EXPECT_GT(val1, val2);

val1 > val2 のとき成功

ASSERT_GE(val1, val2);

EXPECT_GE(val1, val2);

val1 >= val2 のとき成功

ASSERT_TRUE(condition);

EXPECT_TRUE(condition);

condition が false のとき成功

http://d.hatena.ne.jp/kaorun55/20100730/1280416866

18.

Are you Ready?

19.

課題 乗り換え案内

20.

課題 1 2点間を電車でいけるか知りたい . 大宮から横浜は電車でいけますが、 大島には横浜から電車でいけません 大宮 横浜 大島

21.

課題 2 経路を知りたい . 大宮から横浜までは東京を経由します 大宮 横浜 東京

22.

課題 3 複数の経路を扱いたい . 新宿もいろいろな駅とつながっていま す 新宿 横浜 東京 大宮

23.

課題 4 駅の間を移動する時間がわかりました . 各経路の移動時間も教えて下さい 32 分 横浜 34 分 新宿 13 分 東京 35 分 25 分 大宮

24.

課題 5 . 一番短い時間でいける経路を教えて 下さい 32 分 横浜 34 分 新宿 13 分 東京 35 分 25 分 大宮

25.

課題 6 駅の間の距離がわかりました . 各経路の距離も教えて下さい 32 分 35.5km 横浜 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km

26.

課題 7 運賃を教えて下さい 電車の運賃は最短距離で決まります . . . 16.2 円 /km 、 10 円未満の端数 35 分 は切り上げ 32 分 35.5km 横浜 34 分 28.8km 新宿 13 分 10.3km 東京 28.3km 大宮 25 分 30.3km

27.

課題 8 新宿、横浜間にリニアモーターカーができ ました . リニアモーターカーを考慮して、最 速で着く経路を教えて下さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

28.

課題 9 新宿、横浜間にリニアモーターカーができ ました . . 最も安い経路を教えて下さい 同じ値段の場合は早い経路を教えて 35 分 下さい 32 分 28.3km 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 大宮 25 分 30.3km 16.2 円 / km

29.

課題 10 東京駅で事故が発生しました . 使えない駅が出た時の経路に最も早 く着ける径路を教えて下さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

30.

課題 final みんなが「あっと驚く」機能を追加して下 さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

31.

Appendix 1 複数の経路が知りたい . 大宮から横浜までの経路を3つまで教 えてください 新宿 横浜 東京 大宮

32.

Appendix 2 . 大宮から横浜まで、短い時間でいけ る順に経路を3つまで教えて下さい 32 分 横浜 34 分 新宿 13 分 東京 35 分 25 分 大宮

33.

Appendix 3 新宿、横浜間にリニアモーターカーができ ました . リニアモーターカーを考慮して、経 路を早く着く順に3つまで教えて下 35 分 さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 28.3km 大宮 25 分 30.3km 16.2 円 / km

34.

Appendix 4 新宿、横浜間にリニアモーターカーができ ました . リニアモーターカーを考慮して、経 路を安い順に3つ教えて下さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

35.

Appendix 5 東京駅で事故が発生しました . 使えない駅が出た時の経路を早い順 で3つまで教えて下さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

36.

Appendix 6 東京駅で事故が発生しました . 使えない駅が出た時に安い順に3つ までの経路を教えて下さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

37.

Appendix 7 東京駅で事故が発生しました . 最も安い経路を教えて下さい 32 分 35.5km 横浜 5 分 3000 円 34 分 28.8km 新宿 13 分 10.3km 東京 35 分 28.3km 大宮 25 分 30.3km 16.2 円 / km

38.

レビュー 前後のテーブルで向かい合って下さい (10 分) それぞれのテーブルで紹介しあって ください . . どのようなプログラムを書いた . どのように進めた . 現時点での TDD の感触 他のチームの話を聞いてみましょう .

39.

レビューのチーム 講演台 2 4 6 8 10 12 14 16 1 3 5 7 9 11 13 15

40.

2 回目のレビュー 講演台 2 4 6 8 10 12 14 16 1 3 5 7 9 11 13 15

41.

ふりかえり 本日の感想をポストイットに書いて 前面に貼って下さい 良かったこと 改善してほしいこ と