「見方・考え方」を活用した授業実践 - Tokyo Shoseki...― 2 ― (1)今なぜ「見方・考え方」か 「見方・考え方」の指導が注目されている。このたびの学習指導要領改訂で特に「見方・考
テストリストの見つけ方
-
Upload
shuji-watanabe -
Category
Technology
-
view
5 -
download
0
description
Transcript of テストリストの見つけ方
テストリストの見つけ方
2011.11.05 TDD BootCamp 横浜Shuji Watanabe (@shuji_w6e)
111年11月5日土曜日
はじめに大切なことを3行で
11年11月5日土曜日
羽田着24時以降の便難民確定
11年11月5日土曜日
札幌から来ました!
通算6度のTDDBC開催11年11月5日土曜日
TDDBC 札幌の歩み1)予習編、JavaでWikiエンジン
2)和田さん来札、LRUキャッシュ
3)掲示板システム
4)和田さん来札、バイナリファイルのIO
5)ウェブ予約システム/ユースケース
6)LRUキャッシュ(一昨日w)
11年11月5日土曜日
12月10日 TDDBC 2.3
特別オプション@sumim と1日Smalltalk
11年11月5日土曜日
美味しいものが待ってます
Please come!
11年11月5日土曜日
渡辺修司(@shuji_w6e)
TDD Boot Camp 札幌の中の人
Blog「やさしいデスマーチ」
8年ほど前、横浜から札幌にIターン
Java(Desktop, Web, GAEなど)
最近の興味は、テストとGroovy
11年11月5日土曜日
渡辺修司(@shuji_w6e)
TDD Boot Camp 札幌の中の人
Blog「やさしいデスマーチ」
8年ほど前、横浜から札幌にIターン
Java(Desktop, Web, GAEなど)
最近の興味は、テストとGroovy
11年11月5日土曜日
http://www.flickr.com/photos/essecento/4297955162/
テスト駆動開発最大の問題
11年11月5日土曜日
どこから始めよう…11年11月5日土曜日
TDDのサイクル1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
11年11月5日土曜日
問. どのくらい事前設計すべきでしょうか?どうすれば、いつやめるかわかるのでしょうか?
テスト駆動開発のFAQ
答. 何を構築すべきかわかるまでです。Derick Bailey
http://www.infoq.com/jp/news/2008/03/tdd-smells
11年11月5日土曜日
正論だが、解決していない
11年11月5日土曜日
http://www.flickr.com/photos/israel-avila/5170969692/
何を構築すべきか?
11年11月5日土曜日
TDDのサイクルの確認1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
11年11月5日土曜日
TDDのサイクルの確認1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
何を構築するか?
11年11月5日土曜日
TDDのサイクルの確認1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
何を構築するか?
構築するものをコードにする
11年11月5日土曜日
TDDのサイクルの確認1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
何を構築するか?
構築するものをコードにする
動くようにコードを書く
11年11月5日土曜日
TDDのサイクルの確認1.設計する
2.テストを書く
3.コードを書く
4.テストを成功させる
5.リファクタリング
Heuristics
何を構築するか?
構築するものをコードにする
動くようにコードを書く
整理する
11年11月5日土曜日
テストリストが作りずらい理由細かすぎる着目点
曖昧な仕様
複雑な仕様
大きすぎる仕様
不慣れな分野・パターン
11年11月5日土曜日
http://www.flickr.com/photos/21785626@N06/2183388005
細かすぎる着目点
11年11月5日土曜日
少しずつ1歩ずつ ー TDDのこころTDDを実践するためには小さく細かく
11年11月5日土曜日
少しずつ1歩ずつ ー TDDのこころTDDを実践するためには小さく細かく
その前に全体像を把握しているか?
11年11月5日土曜日
利用者視点で考えるシステムを利用する利用者
エンドユーザ
開発者(APIやフレームワーク)利用者が興味あること 利用者が興味ないこと・機能(できること)・インプット・アウトプット・使い方
・内部の細かい仕様・内部の設計・データ構造・アルゴリズム
11年11月5日土曜日
利用シーンに着目する利用者がシステムを利用するシナリオ
ユースケースシナリオ
ユーザーインターフェイス
ユーザーマニュアル
外部イベント
11年11月5日土曜日
外部境界に着目するTDDは小さく細かく素早くが基本
その前に、システム全体を把握する
「木を見ずに森を見る」
ユースケース(シナリオ)
ユーザ
システム境界
システム
外部システム機能 データ
11年11月5日土曜日
お題:野球のスコアブック選手の打席数・打数・安打数を管理できる
選手の打率を表示できる
選手の打率ランキングを表示できる
チームを管理できる
試合数を管理できる
11年11月5日土曜日
お題:野球のスコアブック選手の打席数・打数・安打数を管理できる
選手の打率を表示できる
選手の打率ランキングを表示できる
チームを管理できる
試合数を管理できる
お題1~3
11年11月5日土曜日
ユースケースシナリオ(例
選手の打率ランキングを表示する1.ユーザは、選手の打席数・打数・安打数を入力する(繰り返し複数行う)
2.システムは、選手の打率を計算する
3.システムは、選手を打率順にソートする
4.システムは、選手を打率順に表示する
11年11月5日土曜日
http://www.flickr.com/photos/kriiisz/5012016237/
曖昧な仕様
11年11月5日土曜日
入出力に着目する入力
ユーザの操作
外部イベント
メソッドの引数
出力
画面出力
帳票
メソッドの戻り値
11年11月5日土曜日
具体的に考えるどんな入力でどうなるか?
2つの整数を入力すると合計が返る
3と4を入力すれば、7が返る
テストで入力値と期待値となる
11年11月5日土曜日
選手の打率計算入力として、選手の打席・打数・安打数を受け取り、選手の打率を計算できること
打席10、打数10、安打数5の時、打率が0.50となる
打席8、打数8、安打数2の時、打率が0.25となる
11年11月5日土曜日
http://www.flickr.com/photos/peakman2/1017866785
複雑な仕様大きすぎる仕様
11年11月5日土曜日
TDDのこころ少しずつ1歩ずつ 1人ずつ戦う
11年11月5日土曜日
大きいものを分割するフローやシーケンスで分割
一度に多くの事をやろうとすると難しい
役割や責務で分割
結びつきの強い属性を分割して独立
11年11月5日土曜日
足りない機能を追加する
追加した事が確認できなければならない
商品数を取得するメソッドの追加
全商品を取得するメソッドの追加
addメソッドで商品を追加できる
11年11月5日土曜日
http://www.flickr.com/photos/21084785@N06/2202706511/
不慣れな分野/パターン11年11月5日土曜日
プロトタイピングとりあえず作ってみる
コードは後で捨てる
必要なテストを見つける
テストファーストは『原則』
11年11月5日土曜日
http://www.flickr.com/photos/k1netik/50298297/
まとめ11年11月5日土曜日
まとめ最初に具体的なユースケースをイメージする
外部境界と入出力に着目
小さく分割する
フローや責務に着目
回り道して必要な機能を追加する
イメージが沸かないならばプロトタイプ作成
11年11月5日土曜日