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 さんの経歴
  1. アナパタ勉強会@OGIS (2000)
  2. 完璧な設計を(2001)
  3. 敗北:変化について行けず
  4. 大規模プロジェクト(2002, 2003)
  5. ひたすら読書
  6. チームかくたに(2004)
コーディングの手を止めるもの
テストの分類
  • Developer Test (←ここについて)
  • Customer Test
  • QA Test
Developer Test
  • 自分のバカさと向きあう
    • for 文の繰り返しでも間違うこともある
    • 機械が答える!
    • FB が即座
TDDの目的

動作する綺麗なコードを作る

  • 素早く回す
  • 不安をテストにする
TDDの3つ
  • Red
  • Green
  • Refactor
なぜ、 Regactor が大事か?

これが真の TDD の目的 = 動作する綺麗なコードを

TDDで大事なこと

フィードバックによる学びを否定しない

  • 計画したじゃなく、計画し続ける
  • 設計したじゃなく、設計し続ける
TDDは
  • 品質を保証しない
  • 品質を向上させる

保証する事が主目的では無い
定量的なことは言えないが、定性的なことは言える!

TDD はテスト技法ではない

テストを使った開発・考え方
=> なぜ書くのか?
変化を常態とする

TDD の真の目的
  • 健康
    • 変化に対応するのは健康体のコード
    • 不安の克服と健康体の維持
レガシーコードでテストを書くには

Working Effectively With Legacy Code を読もう(来月日本語訳も出るよ)
http://www.amazon.co.jp/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

テストはなぜ書くのか?
  • 今の自分
  • 未来の自分
  • 今の仲間
  • 未来の仲間

のため!

TDDは
  • 一人でも始めれる!
  • テストはスキル!才能ではない。
  • 写経をして勉強出来る

テスト設計のさわり(鈴木 三紀夫 さん)

今日のお話
  • 未熟なテスト技術者のテストケースの挙げ方
  • テスト設計とは?
  • 普通のテスト技術者がどのようにテストを挙げるか
未熟なテスト技術者のテストケースの挙げ方
  • 思いつきでテストを書く
  • 不安に思うところをテストケースに書く
  • 仕様書をそのままテストケースにする
  • テストガイドをそのままテストケースにする

多くはテスト設計をしていない!

テスト設計とは?
  • テスト
  • テスト計画→テスト実施
  • 計画→分析→設計→実装→実行→報告

テストコードにせよ、Excelにせよテストケースを書くことは、実装!

普通のテスト技術者のテスト設計のやり方
  • テストの観点(パラメータ)の組み合わせ
  • テストの観点(パラメータ)の一部
仕様書や設計書, 過去の不具合や欠陥

テスト観点の元になる

よく書くもの(必要なもの)
  • ディシジョンテーブル
  • 状態遷移図
過去の経験を活かす

マインドマップソフトウェアテスト

LTT(かなりパラっと、書いてます)

おうみさん
  • バグ報告はテスターと開発者のコミュニケーション!
  • テスターと開発者 が共に心地良く過ごすという目的のためにテスト!
id:goyoki さん
中島みどりさん
  • テストケースはもう書きたくない!
  • 開発者としてのテスト 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 にも感謝!