本連載では、開発プロセスの中でも重要な位置を占めるテストプロセスに着目し、全体最適を実現させるために、どのように現実のテストプロセスに取り組んでいくべきかを考察しています。今回より数回にわたり、ソフトウェアテストの最新トレンドについて解説します。
一口にテスト分野のトレンドと言っても、様々な切り口があります。本稿では、筆者の独自の視点で以下の3つに分けることにします。
- テストの方法論や手法
- テスト技法
- テストの自動化
今回から数回にわたり、上の3つの切り口に従って、ソフトウェアテストのトレンドについて解説します。まずは、テストの方法論「Agile Testing」から始めましょう。
本稿で明記されているテストに関する用語は、基本的にISTQBの用語集『ソフトウェアテスト標準用語集(日本語版)Version 1.1,ISTQB(JSTQB訳)』に準じています。
Agile Testingはその名の通り、テストの世界でもアジャイルの考え方を取り入れようというものです。
主要な提唱者の1人であるアメリカのテストコンサルタント Bret Pettichord氏によると、これはアジャイルマニフェスト(※1)の考え方に基づいたテストのプラクティスであり、顧客がテストすることを前提としたものだそうです。また同氏は、アジャイルの方法論を用いたテストのプラクティスとも表現しています。
※1 アジャイルマニフェスト このアジャイルマニフェストによれば、アジャイルがもたらす価値は以下のようなものだとされています。
・プロセスやツールより人と人との相互作用を重視
・まとまったドキュメントより使えるソフトウェアを重視
・契約でのネゴシエーションより顧客との連携を重視
・計画に基づくことより変化に呼応することを重視
そして同氏は、具体的なテストのプラクティスとして、次の4つを挙げています。
・Conversational Test Creation
顧客とプログラマーが一緒になってテストを設計すべきで、「どちらか一方だけ」というのはナシにしようというアプローチのことです。
・Coaching Tests
受け入れテストのための考え方で、顧客が実際にテスト対象を用いる筋書きを利用してテストを進めようというアプローチです。そのためには、あらかじめ顧客でも理解できる仕様のフォーマットを用意します。
・Providing Test Interfaces
これはCoaching Tests自動化の仕組みについて開発者が責任を持つというスタンスを意図しています。
・Exploratory Learning
イテレーション(反復)で製品開発する仕組みが前提で、製品のバグや足りない機能を見つけ、製品をより良くするようにします。これは開発もテストも「実際に使ってみないとわからない」という考えに基づいています。
執筆者プロフィール
大西建児 (Kenji Onishi)
株式会社豆蔵 シニアコンサルタント。国内電機メーカー、外資系通信機器ベンダーで培ったテストや品質保証などの経験を生かし、テスト手法や技術の普及、発展に取り組む。NPO法人ソフトウェアテスト技術振興協会(ASTER)副理事長。JaSST’08東京 共同実行委員長。著書に「ステップアップのためのソフトウェアテスト実践ガイド」(日経BP社)などがある。
『出典:システム開発ジャーナル Vol.5(2008年7月発刊)』
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。