DevLOVE 『世界のすべてをテストせよ。』 〜Make the world Green by Test ! 〜 に参加してみた
タグ名合ってるかな?
第3回 DevLOVE の「テスト」のに参加させて頂いた。
Developer Test の人々と、QA Test の人々が
一挙に集まるというのに魅かれました。
いやゆる、同じロックバンドだけど、
パンク系ロックと、HR/HMのバンドがタイバンするみたいな。
(違うか?)
発表者も、
TDDと言えばの id:t-wada さんと、
大先輩 鈴木 三紀夫 さんだもの♪
というわけで、
ちょっと懇親会でお酒も入ってますが、blog をば!
誰が為のテスト(id:t-wada さん)
結論(大事な事なんで)
- 己から変わる
- 自分と向き合う
- 鍛錬する
- 背中を見せる
id:t-wada さんの経歴
- アナパタ勉強会@OGIS (2000)
- 完璧な設計を(2001)
- 敗北:変化について行けず
- 大規模プロジェクト(2002, 2003)
- マーティン・ファウラー と ケント・ベックのはなし
- ひたすら読書
- チームかくたに(2004)
コーディングの手を止めるもの
- 不安
- 要求仕様が…
- アルゴリズムが…
テストの分類
- Developer Test (←ここについて)
- Customer Test
- QA Test
Developer Test
- 自分のバカさと向きあう
- for 文の繰り返しでも間違うこともある
- 機械が答える!
- FB が即座
TDDの目的
動作する綺麗なコードを作る
- 素早く回す
- 不安をテストにする
TDDの3つ
- Red
- Green
- Refactor
なぜ、 Regactor が大事か?
これが真の TDD の目的 = 動作する綺麗なコードを
TDDで大事なこと
フィードバックによる学びを否定しない
- 計画したじゃなく、計画し続ける
- 設計したじゃなく、設計し続ける
TDD はテスト技法ではない
テストを使った開発・考え方
=> なぜ書くのか?
変化を常態とする
TDD の真の目的
- 健康
- 変化に対応するのは健康体のコード
- 不安の克服と健康体の維持
レガシーコードでテストを書くには
Working Effectively With Legacy Code を読もう(来月日本語訳も出るよ)
http://www.amazon.co.jp/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052
テストはなぜ書くのか?
- 今の自分
- 未来の自分
- 今の仲間
- 未来の仲間
のため!
TDDは
- 一人でも始めれる!
- テストはスキル!才能ではない。
- 写経をして勉強出来る
テスト設計のさわり(鈴木 三紀夫 さん)
今日のお話
- 未熟なテスト技術者のテストケースの挙げ方
- テスト設計とは?
- 普通のテスト技術者がどのようにテストを挙げるか
未熟なテスト技術者のテストケースの挙げ方
- 思いつきでテストを書く
- 不安に思うところをテストケースに書く
- 仕様書をそのままテストケースにする
- テストガイドをそのままテストケースにする
多くはテスト設計をしていない!
普通のテスト技術者のテスト設計のやり方
- テストの観点(パラメータ)の組み合わせ
- テストの観点(パラメータ)の一部
仕様書や設計書, 過去の不具合や欠陥
テスト観点の元になる
よく書くもの(必要なもの)
- ディシジョンテーブル
- 状態遷移図
LTT(かなりパラっと、書いてます)
おうみさん
- バグ報告はテスターと開発者のコミュニケーション!
- テスターと開発者 が共に心地良く過ごすという目的のためにテスト!
中島みどりさん
- テストケースはもう書きたくない!
- 開発者としてのテスト vs 品質保証としてのテスト の意味分からない!が、真剣にテストについて考えてみた!!
佐々木誠さん
- 全ての工程でテストを取り入れろ!
- あなたが気づけばマナーが変わる!!
川西俊之さん
- QA Test, Developer Test 共に精通している方
- 世界は混沌している!
- (この世からバグを無くすために)軸を知り、テストを知り、言葉をはぐくみ、団結(QAテスター、Developmentテスター共に)せよ!!
ワールドカフェ
最初は、「テストの勉強の仕方」というテーマで話していましたが、
途中から、「QAテストとDeveloperテスト」というテーマになって、
いろいろ発散して終了に。
というか私は、やっぱり、
id:t-wada さん(Developerテスト)の話を聞いて、仕様、実装は変化するのが前提、
鈴木さん(QAテスト)の話では、仕様や実装が固まってる、ウォーターフォール(WF)が前提、
であると聞こえ、その溝というか、開発手法の違いがあるから、相入れない関係だと思った。
Agile のような要件定義、設計、実装、テスト繰り返しをして、
最後に、QAのテスト期間を設けるというのが良いのだろうか?
WFでは要件定義時にテストまで固めるのであって、上記をすると、
要件定義が固まってない事がQAテスト的には問題のあるし、
では、固めると、Agile 的には変更しないというのが問題でそれも違うんじゃないか?
と思うし。(ちょっと自分でもよくわからない。)
となると、無理に2つを合わせる必要が無いとも思った事。
対立させたい!という意味ではなく。。
でも、TAOADを読むと、テスターの方も開発時に混じってもらい、
顧客テストの支援や探索テストをする とある。
なんか上手く出来る方法もあるんだろうなー
そういう話しも聞いてみたい!
と思ったのが正直な所。
(この辺ご意見等お待ちしてます)
懇親会
- Poken 大活躍!
- デベロッパーも、QAの人も多く楽しかった
- んで、初対面の人も多かった! 「テスト」というテーマはやはり熱い
- id:papanda0806 が大分酔ってた
- id:maedana に半年ぶり位に会えた
- 後半記憶がないので、感想とかはこっちに書いている。http://twitter.com/nsgc
最後に
id:papanda0806 さんを始めDevLoveスタッフの皆さん。素晴らしい場のご提供をありがとうございます!
あと、業務が大変な中、参加させてくれた。チームメンバー id:nawoto , id:ursm にも感謝!