「ソフトウェアテスト勉強会〜テストコードのテストケースを考えてみよう!〜」に行ってきた

http://tohoku-dev.jp/modules/news/article.php?storyid=221

(※図はイメージです)


先週のTDDBCで [twitter:@nemorine] が [twitter:@t_wada] に「TDDは不安をテストする?不安だなんて不確かなものは信じられない」ってゆってたので、どんな事するのか楽しみだったので参加してきたよ。


今日の本命は策士 [twitter:@i_takehiro] がTDDBCで仕掛けた課題1-3のテストケースの洗い出し。

課題1-3
  • 閉区間が別の閉区間と等しいか (equals) 判定しよう
  • 閉区間が別の閉区間と接続しているか (isConnectedTo) 判定しよう

で、そのテストケースとして以下の8つを導き出せれば正解なのだけれど、あたしを含め参加者の多くは7つしかケースを導出できなかった(みんな8番目のケースを見落とす。


ここに [twitter:@i_takehiro] のマサカリ爆弾が仕込まれているわけなのだが、それを経験や勘では無く学習によって論理的に導き出せてこそテスト技法を学ぶこの会の趣旨なのではなかろうか?と思ったわけ。つまり(↓)こうとでも言うべきかと。



このような議論の中でひとつ名言が生まれました。確かにそうかもしんない。:-)



TDDBCではコーディングに夢中になって、テストケースを導出する行為がおろそかになりがちだったので、このように時間をかけてテストケースを導出する本会はとても有意義だった。テスト技法もそうだけど、テストケース導出にあたっての各自の思考法を知ることができたのがとても良かった。これがあって初めてTDDBC仙台03が完結したと言っても良いんじゃなかろうか。

ちなみに、鬼軍曹 [twitter:@i_takehiro] はテスト対象がはっきり分かるように基準値を固定してテストケースを導出するそうな。たとえば、

  • 下端点のテストなら上端点は固定値にして下端点を変動する
  • 区間同士の接続テストなら、一方の区間を固定する

といった具合だそうな。なるほど。

場外乱闘(?)


TDDBCで上記のようにつぶやき、参加者をおののかせたが、世の中上には上がいた。


その世界の [twitter:@ymnk] が作ったコードとテストケースはこちら(Scala+Emacsで組んだそうです。
→ GitHub - ymnk/tddbc-snd-3rd