デジタルトランスフォーメーション(DX)の時代となり、どの業種でもソフトウェアを活用して強みを磨く時代になりました。そのためソフトウェアに対する期待はかつてないほどに高まり、開発サイクルも短くなっています。開発にスピードが求められると、どうしてもしわ寄せがきてしまうのが品質です。生産性を犠牲にせずに品質を高める方法はあるのでしょうか。
テストを効率化するには、解決しなければならない課題があります。課題には大きく分けて4つあります。
テスト範囲や開発手法、テスト担当者のスキルなど不確定要素が多く、テスト工数の見積が上振れするケースが多々あります。また不具合が多数検出されると修正や再テストに時間がかかり工数が膨らみます。
全ての機能においてテスト項目を完全に網羅しようとすると、膨大なテスト項目になる場合があります。ソフトウェアには重要度の高い機能が存在します。例えば金額や法律に関連する処理は重要度が高くなります。また「この機能が使えなくなるとサービス全体が停止する」といったものも重要度が高くなります。こうした重要な機能と同等のテストを全ての機能について適用すると、テスト工数が膨らんでしまいます。
仕様書をもとにテスト項目を漏れなく抽出するのは、かなりの時間がかかります。ソフトウェアの内容によって観点も異なるため、観点を網羅するのに担当者の経験に頼ってしまうことになります。また性能やユーザビリティについては、ユーザーや開発者から観点を出しにくい領域で、項目抽出のハードルが高くなります。
例えばA機能とB機能・C機能の関連性が高いと、A機能を拡張した際に、手を加えていない既存のB機能とC機能をテストする必要があります。このようなリグレッションテストの場合、修正する工数と比較してテスト項目が膨大になり工数がかかってしまうという問題があります。企業によっては、拡張する開発は新規開発の約1.5倍のテスト工数がかかるというデータもあります。
テストの効率化には課題がありますが、解決さえすればテストを効率化しつつ品質を高めることは可能です。課題を解決するには次のような対策が考えられます。
多くのプロジェクトでは、開発フェーズが終了してからテストフェーズとしてテスト計画やテスト項目抽出を行います。その場合、上流工程で混入した不具合がテストフェーズになってからでないと判明しないため、上流工程からのやりなおしが発生し工数が膨らみます。
これを防ぐためには、テストを開発フェーズから分離して設計の段階でテスト項目まで抽出する方法があります。開発フェーズは要件定義→外部設計→内部設計→製造・単体テストと進みます。テスト担当者は要件定義書が終わった時点で仕様書をレビューし、テスト実施可能な状態であることを確認してから、テストケースを作成します。これを外部設計、内部設計と行っていくことで、上流での不具合混入を抑えるとともに、テスト作業の工数見積の精度を上げることができます。
網羅的なテストからいかにテスト範囲を絞り込んでいくかを考えた時に、ユーザーが不具合に遭遇した場合の影響度を考えて上流工程の段階でボトルネックを特定しておくと、テストの工数を予測しやすくなり、早めにテストすることでリスクを抑えることが可能です。ボトルネックの特定には、優先度と重要度を評価して重みづけします。中核となる機能、複雑なロジックを持つ機能、他の機能への影響が大きな機能については優先度が高くなります。また例えば数千人が同時にアクセスする機能については、ツールによる性能テストをする必要があるため、上流工程の時点で特定しておくと、テストの準備もスムーズに進められます。
テストケースはExcelで作るという企業も多いのではないでしょうか。その場合ファイルの中身を確認しないと、どのようなテストをしているのかがわからず再利用しにくいという問題があります。再利用しやすくする方法として、過去のテスト項目を全てデータベース化するという方法も考えられます。観点を網羅できるだけでなく、リグレッションテストでの再利用もできます。ヴェスでは過去の実績を全てデータベース化し、テスト観点を標準化しています。
リグレッションテストで同じテストを何度も行う場合、テストの自動化をするとコストを削減できるだけでなく、影響範囲の特定で範囲から漏れてしまい運用開始してから不具合が発見される危険性が低くなります。テストを自動化するまでには、それなりの負荷がかかりますが、改修が頻繁に入る機能を中心に自動化していくと作業負荷を抑えられます。
ヴェスでは第三者検証サービスを提供しており、ソフトウェアの内容に応じて「組み込み検証サービス」「Web検証サービス」「スマートフォン検証サービス」「業務アプリケーション検証サービス」を提供しています。またテストの自動化にもノウハウを持っており、さまざまなソフトウェアのテスト自動化を支援してきました。お客様はこうしたサービス項目の中から問題点や課題に合わせて選定できます。単なる検証だけでなく、ソフトウェアのあるべき姿から導き出されるお客様の課題解決を支援します。
ヴェスは過去の実績から不具合の傾向を分析し、リスクの高い部分の見極めや漏れやすいテスト項目の抽出が可能です。また豊富な実績をもとに製品・分野別のテスト観点を標準化しているため、ゼロからテスト項目を作る必要がなく、効率的に品質が高められるというメリットもあります。
ヴェスの持つ資産をうまく活用し、効率的で迅速で、高い品質を作るテストを実現させましょう。