連載
» 2021年05月10日 05時00分 公開

「何を」「どのように」テストするのか?――アジャイル開発におけるテストの基本戦略アジャイル開発における品質管理(2)

少人数、短期間の開発を繰り返すアジャイル開発では、どのようにすれば品質を保つことができるのだろうか。本連載では、アジャイル開発における品質管理の手法を解説する。初回は、アジャイルテストの基本的な考え方と戦略について、2回に分けて解説する。後編となる今回は、アジャイル開発における品質に関してどうアプローチするかの戦略について。

[江添智之, 畠田健一朗,バルテス株式会社]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 アジャイル開発におけるテストは、どのように進めていけばよいのでしょうか。ただ単に、「開発期間を短く回せばよい」「リリース直前に後回しにした作業をこなせばよい」といった場当たり的な対応をしてしまうと、大きな失敗につながります。前編に引き続き後編となる今回は、アジャイル開発では品質に関してどのようにアプローチするのかを解説していきます。

ソフトウェア品質モデルを使って「何を」テストするのかを考える

 テストのアプローチとして、まず「何を」テストする必要があるのかを考えます。言い換えると、テストをすることによって何ができていればOKか、つまりリリースに足る品質と言えるのか、ということです。これは開発プロジェクトを開始する前に、あらかじめ想定しておく必要があります。なぜなら、品質が不足している場合も問題ですが、過剰に品質を追い求めてしまうこともまた問題だからです。私たちはビジネスとしてソフトウェアを開発し、そしてテストしています。求められている以上の品質にするために余計なコストをかけてしまわないようにする必要があります。

 例を挙げると、1年に1度しか使わないようなシステムを、24時間365日フル稼働できるようにする必要はありません。これは極端ですが、ソフトウェアには絶対に満たしておかなければならない品質のラインと、ユーザーがそこまでは求めていない過剰な品質のラインの2つがあります。それを適切に見定めるために、そしてきちんと範囲内に収まっているかどうかを確かめるために、ここでは、まずどのような要素があるのかを整理します。

 「品質の良い」ソフトウェアとは何か、それを整理した国際標準が幾つかあります。代表的なものが「ISO/IEC 25010 ソフトウェア品質モデル」です。この標準は、SQuaREと呼ばれるソフトウェアの品質に関する規格群の一つで、ソフトウェア開発における品質の要素を表しています。この要素のことを品質特性と言い、「機能適合性」「信頼性」「使用性」「資源効率性」「保守性」「移植性」「セキュリティ」「互換性」の8つに分類されます。つまり、これらの特性それぞれに対して必要なレベルを達成していれば、要求される品質を達成している、と言ってもいいでしょう。

ISO/IEC 25010 製品品質モデルにおける品質特性

 非常にシンプルで分かりやすい規格だと思いますが、それらを全てきちんと求められるレベルで充足するためには、いつ、どこで、誰が、どのようにアプローチするのかを整理して実行する必要があります。もちろんこれはアジャイル開発であっても、そうでなくても必要となる考え方です。

 基本的に、スプリントの中で実施する開発およびテストは、機能的な面に対してのものとなり、それ以外の面については別の形での整理が必要となります。つまり、品質モデルで言うところの機能適合性は個々の機能に対してスプリント内で考慮し、それ以外は別の枠組みで検討するということです。検討する、と書いたのは結果としてスプリント内でタスクを実施することになる場合もあるからです。ここは少し分かりにくい部分ですので、次の項目で詳しく解説します。

「どのように」テストするのか、アジャイルテストを進めるための2つの視点

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。