COLUMN
コラム
Column 49

アジャイル開発における探索的テスト

代表的な開発手法の一つとして知られているアジャイル開発ですが、「『アジャイル』という言葉は知っているが、実際にどういう手法なの?」という方も中にはいらっしゃるかと思います。
今回は、そんなアジャイル開発と、アジャイル開発で多く用いられている探索的テストについて簡単にまとめました。

1.アジャイル開発とは

「アジャイル」という言葉は「素早い」という意味を持っています。
「アジャイル開発」は、クライアントのニーズを最優先に考えつつ、より良いプロダクトを効率的かつスピーディーに開発することを目的として考案されました。

アジャイル開発は、リリース後のフィードバックを基に、開発当初の要件に捉われることなく、状況に応じて刻々と変化するクライアントのニーズに柔軟に対応することができます。 こういったメリットがあることから、ECサイトやサブスクリプションサービスなどのサービスイン後も継続的にリリースを行う体系のシステム開発に多く用いられています。

2.アジャイル開発のテスト工程と探索的テスト

アジャイル開発のテスト工程では、イテレーションごとに細かく区切って要求分析・テストが行われます。
このイテレーションの期間は極めて短いため、開発による影響範囲を考慮しつつ見るポイントをある程度絞ってテストを行います。
上述のような限られた時間の中で、設計に多くの時間をかけずに効率よくバグを見つけるテスト手法の一つとして、「探索的テスト」があります。

①探索的テストとは

探索的テストとは、テスト担当者が過去のテスト結果や経験・調査情報などを基にテストを設計しながら実行する手法です。 事前にテストケースを作成せずに行うため、項目書修正やレビューにかかるコストが削減できるので、早さと効率が求められるアジャイル開発において、有効なテスト手法といえます。

しかし、探索的テストをより有効に行うためには、開発サイドによる単体テストが十分に行われている必要があります。また、テスト担当者が要求仕様を十分に理解し、一定のスキルや経験を持ち合わせている必要があるため、属人性が高くなってしまうといったデメリットもあります。

②探索的テストを効果的に行うポイント

探索的テストをより効果的に行うためには、テスト担当者が仕様を十分に把握しておく必要があります。
また、仕様の検討が不足している機能や、仕様上で矛盾が生じてしまっている機能などを早期に発見し、開発サイドと十分に議論を重ねることも重要です。この際には、クライアントが決定した仕様の意図も理解しておく必要があります。
テスト担当者は、あくまで現状の仕様を尊重した上で、どうしても見直しが必要な場合に、確実な根拠に基づいた提案をすることが大切です。

実際に筆者が参画したプロジェクトでも、仕様の考慮が不足しているためにユーザーの利便性が著しく損なわれる機能があったため、資料確認の段階でQ&Aとして懸案内容をまとめてクライアントに確認・提案するといった活動を行っていました。 この際に、ユーザーにとってより良い仕様を、既存の類似サービスで多く採用されている仕様(いわゆるデファクトスタンダード)を例に出して提案することで、クライアントが安心して意思決定をするサポートができます。

3.まとめ

近年、アジャイル開発を取り入れるプロジェクトが増えてきています。
アジャイル開発では、「作りながら計画当初より更に良いものを作り込んでいく」というようなコンセプトがあるため、テスト担当者の知見やアイデアを積極的に提案していくことで、 より良いモノを作るという活動に寄与できるのではと筆者は考えます。

関連資料・関連リンク

ページトップへ戻る