第三者検証を導入することで得られるメリット
近年では様々なサービスやアプリケーションが登場し、私たちの生活に無くてはならない存在となっています。そんなサービスやアプリケーションに求められる品質基準は年々高まっており、ソフトウェア開発において品質向上は欠かせません。
しかし、リリースの直前で致命的な不具合が多発し、調査や修正のために膨大なコストがかかってしまうなどということが現場で起こっているのが現状です。
本記事では第三者検証を導入することで、得られるメリットについて解説していきます。
1.ソフトウェア開発とテストの流れ
第三者検証を導入するメリットをお話する前に、まずは、ソフトウェア開発におけるテストと開発工程の関係を代表的なモデルを用いて紹介していきます。
ソフトウェアの開発工程では“要求定義>基本設計>詳細設計>コーディング”と順を追って進んでいきます。コーディング完了後はテスト工程に入り、同じように1つの工程が完了してから次の工程へと進めていきます。
このように、水が上から下へ流れ落ちる滝のように各工程を進めていくことから「ウォーターフォールモデル」と呼ばれ、ソフトウェア開発における前半の開発工程を「上流工程」、後半のテスト工程を「下流工程」と呼びます。
そして、開発工程のようにテスト工程もいくつかの工程に分かれており、上流の開発工程に合わせてテスト工程を対応させたものを「V字モデル」といいます。
テスト工程の流れは、詳細設計の内容を確認する単体テストから始まり 、基本設計の内容を確認する機能テストと結合テスト、最後に要求定義の内容を確認するシステムテストの順に各テストを行っていきます。
2.第三者検証を導入するメリットについて
それでは第三者検証を導入することでどのようなメリットがあるのかを、開発者がテストを担当する場合と合わせて紹介していきます。
①第三者検証とは
第三者検証とは、開発者ではない人が第三者視点で製品を調査・分析して、テストを行うことを指します。
専門的な知識と技術を有するテストエンジニアが検証を実施することで、開発者では気づかない不具合や欠陥を見つけ出し、信頼性のある高品質なソフトウェアの構築が可能となります。
②開発者がテストを担当するデメリット
まず開発者自身がテストを担当した場合、次のようなデメリットがあります。
i.仕様書や設計書にない部分の不具合を見落としやすい
開発者は仕様書や設計書を見ながら開発を進めていくうちに、内容が頭に定着してしまい、記載されたもの以外は目に入らなくなっていきます。
また、自分が作ったソフトウェアを自分がテストする場合、バグがあることを認めたくないという心理的要因が働くこともあります。結果的にバグや欠陥が見落とされる可能性が高まります。
その結果、不具合修正のための手戻りが生じコストがかかる事態に陥ることもあるでしょう。
ii.開発期間が長くなる
開発者が開発とテストの両方を兼任すると以下のような流れで開発が進むこととなります。
「開発→テスト→修正→テスト」→ 次の「開発→テスト→修正→テスト」・・・
このように、開発以外の作業も行うことで開発に集中 できず、開発期間が長くなります。
③第三者検証を導入するメリット
たいして第三者がテストを担当した場合、次のようなメリットがあります。
i.先入観のない、客観的な視点による評価で不具合を発見しやすい
先入観のないテストを行うと、不具合の発見率が各段に高まりソフトウェアの信頼性を高めます。そういったテストを行うためには、独立したチームがテストを担当することが効果的だと言われています。
特に組織外の独立したテストチームが最大の効果を発揮すると言われています。組織外の独立したチーム、つまり第三者検証会社によるテストチームが、最も先入観なく客観的な視点で評価できるチームと言えます。
ii.テスト工程を専門家が行うことで、成果物を信頼の担保や資産として活用できる
テストの作業成果物はすべてテストプロセスに沿って作成されます。例として以下が挙げられます。
・テスト計画書
実施するテストの目的・方向性、スケジュールなどを整理し、テストの目的を正しく実行するために必要なドキュメント。
・テスト設計仕様書
要件定義書に記載された機能仕様通りに実装されているかをテストするためにまとめられたドキュメント。
・テストケース
プログラムが期待通りに動作するかを確認するために、テストを実行する 手順や条件、期待結果を文書化したドキュメント。テストする対象、観点、前提条件、操作する手順、入力値、期待結果などの項目で構成される。
・欠陥レポート
ソフトウェアテストにおいて発見された欠陥を報告するドキュメント。1つの不具合に対して、1つの欠陥レポートが起票される。
・テストサマリーレポート
テストの結果や問題点、改善点などをまとめた、テストが終了した後に作成されるドキュメント。
これらテストの専門知識を駆使し作成された成果物は、今後の開発にも知的資産として活用することが可能です。
iii.開発チームと並行で動くことで期間の短縮となる
開発チームとテストチームが作業を分担することで、開発チームは開発に集中する事ができ、作業効率も上がり開発期間も短くなります。
開発:Aの開発→Bの開発→Aの修正依頼対応→Cの開発・・・
テスト:Aのテスト設計→Aのテストと修正確認→Bのテスト設計→Bのテストと修正確認・・・
場合によっては、別のプロダクト開発に要員をまわす事も可能かもしれません。
3.まとめ
第三者検証を導入するメリット、開発者がテストを担当するデメリットを交えてご紹介いたしました。
第三者視点でテストすることで、
・当事者では気づかない不具合検出とそれに伴うコスト削減
・テスト資産の蓄積
・開発期間の短縮
が期待できます。
このように良いこと尽くめの第三者検証に興味のある方は、ぜひお気軽にお問い合わせください。