「知識ゼロから学ぶソフトウェアテスト」 を読んで

 

知識ゼロから学ぶソフトウェアテスト 【改訂版】

知識ゼロから学ぶソフトウェアテスト 【改訂版】

 

 

読むきっかけ

1年ちょいくらい前からでしょうか。ソフトウェアテストの世界で活躍する方々(JaSST とか WACATE とか) に出会う機会がありました。で、現在縁あってその人達と仕事をする機会が生まれたのですが、テストってちゃんと学んだことなかったんですね。そこで試しに JSTQB-FL の問題に100問くらい臨んでみて4割くらいは怪しい結果(合ってても自信が無いやつが多い) だったので「知識足りないなぁ」と。じゃあJSTQB-FLでも勉強するか?といったところ、人気のある入門書が改訂されたとの情報を得て読んでみました。こっちの方が読みやすそうだし。

感想

すごくおすすめ。テストエンジニアはもちろん、開発エンジニアも1冊通してコモンセンスとした方が良い内容ではないかと思いました。

開発エンジニアにとって身近なテストはユニットテストとレビューだと思います。ユニットテストでどのようなテストケースを作れば良いかは「2章 ホワイトボックステスト」「3章 ブラックボックステスト」の知識が必須になります。レビューでも有効です。「4章 探索的テスト」「6章 テストプラン」は開発エンジニアにとって直接必要となる場面は少ないと思いますが、テストエンジニアがどのような仕事をしているのか知っておくとコミュニケーションがしやすくなると思います。

テストエンジニアの中にはシステムテストが中心でコードはほとんど見ない(読めない)という方もいるかもしれませんが、制御フローテストのカバレッジソースコードのメトリクスの知識があれば狙いを定めたシステムテストができるのではないかと思います。

とにかく読みやすいので、なじみの無い内容でも全部読めます。にもかかわらず、あんまり省いている感じがしません。注釈や参考文献がしっかりしてるのもとてもいいです。ただ、"知識ゼロからの" と銘打っていますが、未経験者では恐らく身にならないのではないでしょうか。入門書ではありますが、何らかの開発プロジェクトをキックオフからリリースまで通して経験してからの方が得られる知見が圧倒的に大きいでしょう。

私的に得られた知見・再認識した知見をまとめると以下のようになります。

  • 同値分割・境界値分析・デシジョンテーブル・状態遷移・制御フロー、基本に沿って全部やれ。悩むのはそれからだ。
  • パフォーマンスのバグはできるだけ早く見つけろ。パフォーマンスのテストが実行可能になったらすぐテストを始めて定期的に行え。
  • 開発エンジニアもテストのこと覚えろ。テストエンジニアもコード読めるようになれ。(※本には直接書いてない)

開発とテストの境目

P206 には開発エンジニアとテストエンジニアの区別がつきにくくなってゆく時代の流れが書いてあります。テスト自動化が現在進行形で進化・浸透していること、Software Engineer in Test というポジションが登場していることからも、私もその流れを感じています。互いの専門性は存在しつつも、開発エンジニアはテストを覚える必要が、テストエンジニアは開発を覚える必要が出てきているのではないかと思います。

ただ、私の視点・感覚では両者は混ざり合っていません。この間のデブサミ2014のスピーカーも似たようなことを言っていました。開発エンジニアからの歩み寄りとしては、本書のようなテスト技術書を読んだり、JaSST や TEF なんかに参加するのが良いのではないかと思います。丁度 JaSST'14 は3/7(金) 3/8(土) に開催されます。私は行ってみる予定です。