システムテスト自動化 標準ガイド (CodeZine BOOKS)
- 作者: Mark Fewster,Dorothy Graham,テスト自動化研究会,伊藤望,玉川紘子,長谷川孝二,きょん,鈴木一裕,太田健一郎,森龍二,近江久美子,永田敦,吉村好廣,板垣真太郎,浦山さつき,井芹洋輝,松木晋祐,長田学,早川隆治
- 出版社/メーカー: 翔泳社
- 発売日: 2014/12/16
- メディア: 大型本
- この商品を含むブログを見る
昨年末に購入したあと、ずっと袋に封印されていたのですが、 ようやく読む隙が作れるようになった*1ので、本日から読み始めました。 あまり本を読むのが得意ではないのでちょっとずつ読んでいこうと思います。 とりあえず今日は1章の「テスト自動化のコンテキスト」でした。
自分用まとめ
#ギア本 1章ざっと流し読み。テスト自動化すれば品質あがるわけじゃないしお前のそのテストコードはカオスだからカオスを自動化するとカオスが加速するだけだ!というもっともなことでもありありがたい言質を頂いた
— Wataru MIYAGUNI (@gongoZ) 2015, 1月 22
よく聞く話ではあるが「自動化の前にすることあるんじゃねーの」というやつ。
スキルのある奴が高度なテスティング活動をおこなって作成したテストを自動化するオートメーターというスキル持ちが協力してやっていこうぜという感じだった
— Wataru MIYAGUNI (@gongoZ) 2015, 1月 22
1章では「テスティング」と「テスト自動化」は違うという話から入っています。 雑に言うとテストケース作成と、そのテストケースをうまい感じで自動化するにはどうするか考えるみたいな感じです。
これもよく聞く話ですが「テストはスキル」であり、言い替えると
- テストの識別(ここで「何を」テストしたいのかを決定する)
- テストの設計(「何を」「どうやって」テストするかを決定する)
- テストの実装(スクリプトだったり、いろいろある)
- テストの実施(手でぽちぽちするのも立派な実施)
- テスト結果と期待結果との比較(どうやって期待結果と見比べるのか?みたいなのも考えちゃう)
の5フェーズで構成される「テスティング活動」と呼ばれるものなのでがんばれ、という感じでした。
でテストオートメーターはテストかんきょう はもちろん、テスティング活動の中でも自動化できる部分を探したり実施したりする役割とのこと
「新しい」バグを発見できる確率はシステムよりも人の温もりなんだから自信をもって手動テスティングを行ってください。その後ゆったりコーヒー飲みながら過ごしたいのであれば自動化しよ、ということと受けとりました
— Wataru MIYAGUNI (@gongoZ) 2015, 1月 22
よくある「自動化されたテスト」というのは「以前に手動*2で行ったテストがコード化されたもの」を使っているので、いわゆる「回帰テスト」に含まれる。だから 「新しい」バグを検出することはほとんどない 。所詮機械が言われた通りに動くだけなので、人間の経験や勘、あるいは偶然の操作ミスによりバグを検出する可能性の方が高い。
ここで言っているのは「自動化すればすべて解決するわけじゃない」という、これまた至極当然なことを振り返っています。
「どのテストを自動で行えばより効果的か」を都度考えて、もし自動化する方が手動実施よりもコストが高そう*3であれば、手動でやるべき。むしろそこを手動でやる時間を作るために、その他の単調なテストをどんどん自動化しよう、みたいな。
他にもいろいろあったんですが、「自動化すりゃいいってもんじゃないけど、もし最高の自動化できたらハッピーだね」っていうことでした。そりゃそうだよっていうことなんですが、あらためて自動テストの幻想をぶちこわすてきなコンテキスト共有のための章でした。
続きいつか読みます。来月ぐらい。