【著者講演】『JUnit実践入門』写経・実践会 in 横浜 #6 (特別編)に参加して来た

5/12日(日)に横浜タネマキで開催された、『JUnit実践入門』写経・実践会 in 横浜 #6 (特別編)に参加して来ました。

[勉強会]『JUnit実践入門』写経・実践会 in 横浜 #6 (特別編) 開催についての諸々お知らせ #junitbook

http://d.hatena.ne.jp/absj31/20130506/1367848297

connpass

http://connpass.com/event/2270/

togetter

http://togetter.com/li/490112


今日やること

Cucumberを使ってみる

  • テストシナリオの書き方
  • テーブルやフック
  • ステップ定義の書き方

Seleniumを使ってみる

  • 使いやすいAPIでテストコード

いろふ(@irof)さんによるプレゼン(TDD BOOT CAMP Osakaの再演)

アンチパターン「無傷のテスト」。テストとは失敗することに価値があり、動くかわからないテストがあったところで、安心して既存のコードに変更は加えられない。変更を「特別な行事」としてではなく、「あたりまえ」のことにしていくことが大事。


渡辺修司(@shuji_w6e)さんによるプレゼン「受け入れテストの自動化とユースケース駆動開発 -Pre Cucumber Boot Camp-」

Railsの場合、ユニットテストが設定の再確認程度にしかならない(バグはRailsのバグとなる)。その場合、受け入れテストを厚くし、ユニットテストは不安な部分のみでも良いのではないか?というのが持論。

ユースケースについて

  • なるべく簡潔に。
  • 文頭は「システムは〜」「ユーザは〜」。
  • 文末は「〜できる」で書かない。
  • 1シナリオに20ステップ以上は多すぎる。その場合はシナリオを分割すべき。
  • ユースケースシナリオは実装者にしか書けない。実装を意識しつつ、ユーザの言葉で記述しているもの。

  • 「〜している場合」と長くなってしまってよい?

  • なるべく簡潔に、「前提条件」や「代替シナリオ(ユーザが主に求めてるシナリオ以外。バリデーションチェックなど)」で記述する。

  • テストがいくら綺麗に書けようとも、ユースケースが残念だとうまくいかない。最初にユースケースをいかに綺麗に書けるかが肝。

渡辺さんオススメ本

顧客の要求を確実に仕様にできる要件定義マニュアル

顧客の要求を確実に仕様にできる要件定義マニュアル

顧客の要求を確実に仕様にできる要件定義マニュアル

ユースケース駆動開発実践ガイド(前半部分だけでも読むと良い)

ユースケース駆動開発実践ガイド (OOP Foundations)

ユースケース駆動開発実践ガイド (OOP Foundations)


ハンズオン

アプリケーションは構築済みのものを使い、ユニットテストは今回はやらない。 Cucumber-JUnitでテストケースを記述し、SeleniumAPI(とにかくクソらしい)でブラウザテストを行う。


いろふの部屋

参加者からいろふさんに...ではなく、いろふさんから参加者へ質問を投げかける場。

話に出てきた「Sikuli Script」

http://www.sikuli.org/

ソフトウェアテストの293の鉄則(近々読もう。)

ソフトウェアテスト293の鉄則

ソフトウェアテスト293の鉄則


いろふさんによるTABOKの紹介

TABOK (Test Automation Body of Knowledge)。テスト自動化の知識体系のこと。

  • 全てを自動化することにこだわらない
  • 自動化の効果は遅効性である
  • 自動化したからといって手動テストがなくなるわけではない。

※懇親会の流れだったのでいくつか忘れてしまった。思い出したら追記しよう。

http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=article&id=1352&Itemid=95


勉強会を終えて

ひとまず課題は無事に完了できたので良かった。(ほぼコピペだけど) その後のもくもく時間で独自のシナリオを書いてはみるものの、Selenium知識が乏しく辛いものがあった。 とにかくも今日は凄いメンツで、とても内容の濃い勉強会となり充実した一日となった。


最後に

@shinyaa31さん、いろふさん、渡辺さん、今回は貴重な体験をさせていただきありがとうございました。

渡辺さんにサイン頂きました!

f:id:Peranikov:20130512175514p:plain

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)