JaSST 2011 Tokyoでのソフトウェアテストに関するコープランド氏の基調講演

先日行われたJaSST 2011 Tokyoでのリー・コープランド氏の基調講演で語られた「ソフトウェアテストとは、ツールではなく、頭で行うもの」について、覚え書として要点を箇条書きにしてみました。

とりあえず今回の記事は自分なりの要点をピックアップしたのみです。テスト開発については自分なりに思うところもあるので、いずれこの記事もなぞりつつ書いてみたいものです。

  • ASTER(ソフトウェアテスト技術振興協会)主催のソフトウェアテストシンポジウム「JaSST 2011 Tokyo」で、世界的有名なソフトウェア技術者リー・コープランド氏の基調講演
  • 「テストにベストプラクティスは無い」。
  • 文脈や背景を考えて、最適な形で柔軟にテストを行う(開発される背景、持つべき機能、使われる目的、環境などはそれぞれ異なる為)
  • 「チェック」と「テスト」は違う
  • チェックとは「既知のものを確認する事」「使用どおりに機能するかを確認する事」
  • テストは「道のもの、予期しないもの、新しいものを探す行為」
  • テストは一種の「学習」であり、テスターの頭の中で、あらゆる予測を立てながら行うものであり、決してツールの中で行うものではない
  • 言い方を変えれば、自動化できない取り組みが本当のテストである

手法と事象

  • 探索的テスト
    • テスト計画を作らず、一定時間内でテスターが自由にあらゆるテストを実施し、エラーが見つかれば掘り下げてテストしていくもの
  • テストファースト開発
    • 先にテストケースを書いて、逐一テストを行いながら実装コードを書いていくもの
    • メリット
      • テストケース作成を通じて、仕様が明確になる
      • 必ずテストケースが作られる為、それがそのままドキュメント資産となる
  • 受け入れテスト開発
    • システム全体が要求仕様どおりに機能するか否かを試すテストケースと、ユーザー側が用意する点に特徴があるもの
    • メリット
      • ユーザー側が作るテストケースが「究極の仕様書」と言える
  • オープンソースのテストツールも充実しつつある
  • 状況に応じて不特定多数のテスターを募ってテスト作業を委託する手法「クラウドソーシング」
  • テストプロセスを評価し、段階的に改善していく「TPI (Test Process Improvement)」や「TMMi (Testing Maturity Model integlation)」などの手法がある
  • 次社にとってベストな方法で行う為の、あらゆる手段を積極的に検討すべき
  • 個人レベルで取り組むべき点もある
    • 例えば「養育」分野のイノベーションとして、週末に各企業の技術者が集まり、皆で1つのソフトウェアをテストして、その手法やアイデアを交換し合う「Weekend Testers」と呼ばれる取り組みがある
    • 会社では、ある規定された方法でしかテストを行わない。この点で会社が育ててくれると考えるのは間違い。自ら進んで学習し、自分自身でスキルを高め、その幅を広げていくことが大切