先日、アジャイルテストを、壮絶に、考えてみたでちょろっとテストについて考えてみたのですが、アジャイルテスト(短いイテレーションを使った開発のテストをざっくりこう読んでみてます)について@kuranukiとお話する機会があり、11月のJaSST九州での講演について知りました。
今日は、刺激を受けたので、Webで見つかった情報を元に感想を勝手に書いてみようと思います。
@kawaguti翻訳のジャネットグレゴリーさんの資料
元ネタ:ジャネットグレゴリーさん来日 + 2009年の講演スライドを訳しました
@kawagutiが翻訳していた実践アジャイルテストのジャネットさんの資料。テストの4現象のお話なのですが、これを読めば「何をどう」テストするのかがよくわかります。
個人的にはこの4現象はテストを整理するための地図に見えていて、扱っているソフトウェアによって再整理したほうがいい気がしています。気になったのは「テスターはチームの一員」というところ。感想や疑問点としては
- テスターって役割を分けるのに無理がない?
- 開発に並行してテスターはどう動く?
- 小さいチームだとQAって必要ないよね
とかとか。
1についてはテスターって仕事で価値を出すってのは、新しい仕事を考えるぐらい大変そうだなぁという感想。それを仕事にできたらいいかもしれないけど、そもそもうずまきのようなプロセスでFBを得て、改善を繰り返していくこと自体が品質を保証する取り組みになっている気がするので、テスターってわけなくてもいいんじゃないかなーと思うのです。今のところそこに人を割くことはできない気がしている。
2については、要件定義や仕様作成にテスターが入って品質向上に務めるとかはわかるけど、それってテストとは別のスキル(設計とか)が必要な気がします。1と2を考えた限りだと、新しい役割の人を発明しなければならないのではないでしょうか。
3については、ここで述べられているテスターと、日本でのQAって違う気がしていること。せっかく短い期間で開発をがんばってるのに、最後のフェーズで時間とってQAして、問題出たらすごくて戻りするから意味ないじゃん!って思います。また、最後の最後で「設計に問題ありますね」って言われても、気づくのが遅すぎる。
なんといいますか、まだまだ情報が少ないのと、日本向けのローカライズが必要なのかもしれません。
細谷さんのアジャイル開発でソフトウェアの品質を高める方法
Video streaming by Ustream
いつもやさしい細谷さんのお話。Publickeyさんでも紹介されてますね。
「やるべきことをやれば品質確保はできる。でも難しい」という部分があるのですが、本当にそうなのでしょうか?と、その前に、「品質とは何か?」を決めないとダメですね。
今の自分の環境だと、バグがないプログラムを作るよりも、サービスが発展する機能をつくらないといけないので、確かに「バグがない」のは嬉しい品質なのですが、それよりもユーザビリティや、サービスが盛り上がる仕組みのほうが優先度が高く設定されます。
うまく言うのが難しいのですが、極端に言うと「作って欲しいと言われたものを作る」のが仕事ではなくて、「欲しがるものを探しながら作る」のが仕事だからなのだと思います。もちろんバグのないクリーンなプログラムを目指すのですが、扱うサービスによっては気にならないバグもありえる。
また「TDDとか継続的インテグレーションではテストは自動化しようといわれているが、どうしても自動化できないところがある。」について。
できない部分はありますね。サービスの手触りのような部分は特にそうでした。自分はここに時間を割きたいので、それ以外のテストを自動化することをTryとしてやっています。そもそも、プログラムを書く時間よりも、テストにかける時間が大きかったので、時間のかかるところを早くするのは必然でした。ただ、それにももちろん限界はあります。
ただ、「テストをしない」というのもありえる選択のような気がします。完全にテストしていたらビジネスチャンスを失うこともありえるので、「今回はここまでにしてここはリスクとして監視していこう」という判断も必要な気がします。もちろん、そうならないようにしたいところですが、やっぱり世の中はやりたいことがたくさんあるけど時間が足りない事が多い。
まだまとまらないまとめ
まだまとめている最中なのですが、これは間違いないなぁと思ったのは、サービス開発するときはマインドセットを結構買える必要があるということです。SIerで働いていた時の感覚がじゃまになる時があります。また、技術の進化でできることがふえてきたという部分もあるでしょう。
以前、新人の頃から私と働いている子が、テストの研修を受けたあとにこう言いました。
これは我々のやりかたに合いません
そうだね。なんか違うんだよね。引き続き、アジャイルテストについて考えていこうと思います。