私達の生活は銀行や信号、電気、インターネットサービスいった多くのシステムによって成り立っています。そんなシステムに異常が発生してしまうと大変な問題になります。
そのため、普段より私達に提供される前にテストを行い安全な状態で利用できるように設計されています。
そこで、今回はソフトウェア/システムのテストを行う「第三者検証」についてみていきましょう。
第三者検証とは?
第三者検証とは、ソフトウェア/システム開発者ではない人が「第三者の視点」から品質検証・評価を行うことを意味します。
第三者の視点という点がポイントで、開発者やその会社の中にいる人では気づかない不具合を検出したり、ユーザーに最も近い立場からフィードバックします。
上記の「第三者の視点から行うテスト」を主な業務として行っているのが「第三者検証企業」です。
なぜ第三者検証が必要なのか
ソフトウェア/システムを世の中に送り出すためには、必ずテストが必要になります。テストを行う理由の1つに、ソフトウェアのトラブル回避が挙げられます。
高性能なソフトウェアは構造も複雑で、使用中にトラブルが起こる可能性も考えられるため、事前にテストを行いさまざまな環境下で運用可能かどうかを確認しておく必要があります。
仮にテストを行わずにソフトウェアをリリースした場合、以下のような問題が生じるおそれがあります。
- コスト増加
- 時間の損失
- 信用、ブランドイメージ低下
- システム障害や事故
不具合の修正にはコストや時間もかかりますし、一度大きなトラブルが起これば企業のイメージ低下に大きく直結します。最悪の場合、サービスの完全停止にも繋がりかねません。
ソフトウェアの品質を高めるとともに、後々のリスクを最小限に抑えるためにもソフトウェアテストは重要になります。多くの開発現場では、ソフトウェア/システムを作った開発者自身達で、テストを行っています。
しかし、それではテストが不十分であることが多いです。それでは、なぜ第三者の視点で行うソフトウェアテストが必要なのか、第三者が検証することの優位性について解説していきます。
第三者検証における実施フロー
第三者検証のにおける実施フローは大きく次の4つに分かれます。
- テストの計画
- テストの設計
- テストの実施
- レポーティング
上流側の工程からテスト実施までトータルでフォローアップし、開発側では気づけないような部分の提案も実施してくれます。
第三者検証を実施する5つのメリット
第三者検証を実施する主なメリットは次の5つです。
- 開発者自身のテストでは見逃しがちな不具合の発見率が高まる
- 視点を変えることができる
- 人的リソースを整理できる
- 開発コストの削減につながる
- 信頼の担保と資産として活用できる
ここでは、それぞれの詳しい内容について解説します。
1.開発者自身のテストでは見逃しがちな不具合の発見率が高まる
第三者検証を行うことで、開発担当者では見逃しがちな不具合の発見率を高めることができます。なぜ、発見率を高めることができるのでしょうか?
まず「自分で作ったものを自分自身がテストすることの困難さ」を考えてみたいと思います。人間の脳は「思い込み」から自由ではありません。
自分が作ったソフトウェアを自分がテストする場合「ちゃんと動くはずだ」あるいは「ちゃんと動いてほしい」という「思い込み」が生じます。
また、自身の開発環境に依存したテストになるため、他者視点から確認できていないケースが多く見受けられます。
新聞や書籍の出版に「校正者」が不可欠であるように、ソフトウェアテストにも第三者による検証が有効であり、また必要である理由といえます。
2.視点を変えることができる
ソフトウェアテストで発見することができる不具合には、いくつか種類があります。
仕様書に記載された正常系の機能操作などは、比較的にテスト項目の作成も容易であり、開発担当者や運用担当者自身が行った場合も不具合は発見できます。
しかし、正常系に比べて仕様書に記載が薄くなりがちな、異常系操作や、エラー処理、禁則処理、割り込み処理などの「特定条件下でのみ発見される不具合」は一般的なテストでは手薄になりがちな傾向があります。
また、システムの機能面だけでなく、操作使い勝手の良さ、安全性や利便性などにも着目する必要があります。
自分自身で機能を設計・実装した開発担当者は、仕様書に記載されている割合が多いシステム面の挙動や機能面へ注視が偏ってしまいます。
逆に、仕様書に記載が少なくなりがちな異常系の操作や挙動、非機能面における不具合を見落としやすい傾向になります。開発期間が切迫し、時間的余裕がない場合はなおさらその傾向は高まります。
だからこそ、先入観のない第三者の視点やさまざまなテスト経験・スキルを持つテストエンジニアが第三者検証を行うことにより、見逃しがちな不具合の発見率が高まるのです。
3.人的リソースを整理できる
第三者検証をテスト工程に導入することのもう一つの理由は、テスト要員を常時常駐させる必要がなくなることです。
「テスト」と「開発」を切り分けることで、テストに使用していた人的リソースを開発業務に専念させることが可能です。
4.開発コストの削減につながる
ソフトウェアリリース後に不具合が見つかった場合、多くの修正コストがかかりますが、第三者検証を導入し、問題点を早期発見できれば作業の手戻りを減少させ、コスト削減にもつながります。
最近では、実装前の仕様書のレビューの段階から第三者検証会社が参加し、仕様書の漏れ抜けや、あいまいな個所を指摘修正することにより、多くのコスト削減効果が報告されています。
また、テスト要員を第三者検証会社にアウトソースすることで、開発の閑散期における、常駐のテスト要員のコストも削減可能です。
5.信頼の担保と資産として活用できる
第三者検証会社は、テスト業務を請け負う際には「テスト計画書」「テスト設計仕様書」「テストケース」「テストサマリーレポート」といった、質の高いテストドキュメントを提供する会社もあります。
テストドキュメントは、ソフトウェアの安全保証ができるため、クライアントに対して信頼を担保につながります。
また、質の高い第三者検証会社が提供するドキュメントは、専門会社としての知見から作成するため、今後の開発プロジェクトでの活用が可能な点も大きなメリットです。
第三者検証を外部に依頼するデメリット
開発コストの削減や人的リソースの整理などメリットの多い第三者検証ですが、依頼する作業の範囲や内容によってはデメリットにもなりえます。
例えば、検証作業やアドオン開発などを提供がメーカーに対する知的財産権侵害やライセンス契約違反に該当する可能性があります。また、第三者会社の企業として継続性にも考慮しておかなければ、返ってシステム運用の負荷を増やしかねません。
質の高い第三者検証会社を選ぶ4つのポイント
質の高い第三者検証会社を選ぶポイントとして、次の4つが挙げられます。
- 体系的な自社のテストメソッドを持っている
- 自社スタッフの教育体制がしっかりしている
- 体系的なテストドキュメントを提供できる
- 各ドメインの豊富な検証経験を蓄積している
ここでは、ポイントごとの詳しい内容について解説します。
1.体系的な自社のテストメソッドを持っている
第三者検証会社として、一貫したテストのプロセスと手法を持っているかどうかは大きなポイントの1つです。
質の高い第三者検証会社はたとえ開発仕様書に記載されていなくても、異常系(エラー)や非機能要件を漏れ抜けなくテストできます。
また、テスト設計手法を独自メソッドとして持っており、開発者自身では見落としがちな不具合を見つけることが可能です。
2.自社スタッフの教育体制がしっかりしている
テストは基本的に「属人的」なものになりがちです。第三者検証テスト会社がアサインするエンジニアが人によって考え方がバラバラでは、安心してテストを任せられません。
質の高い第三者検証会社は、体系的な独自のテストメソッドを同じく体系的に自社のエンジニアに教育する体制を持っています。そのことにより、常に一定の質のテストサービスを提供できるようにしています。
3.体系的なテストドキュメントを提供できる
テストドキュメントの質が高くなければ、ソフトウェア品質の保証はままなりません。
テスト計画やテスト設計、テストケース、テストサマリーレポートがとわかりやすく客観的に書かれていることや再利用できることが質の高い第三者検証会社を選ぶポイントです。
4.各ドメインの豊富な検証経験を蓄積している
体系的なテストメソッドを確実にするのが、豊富なテスト経験の蓄積です。
ソフトウェアテストといっても、組み込み系や業務系、Web系といったドメインに加え、さらに専門の業務知識も要求されます。
第三社検証会社を選ぶにあたっては、過去にどれだけの豊富なドメインのテスト案件を経験しているかも重要なポイントです。
質の高い第三者検証会社を選ぶにあたっては、こうしたポイントを満たしているかどうかを確認してみてください。
関連記事
第三者検証を請け負っている企業10選 | 委託先選定のポイントも解説します
まとめ
ここまで、今回は第三者検証の必要性や委託する際のポイントについて解説しました。
自社テストでは見逃してしまうことが多いソフトウェア/システム開発ですが、質の高い会社に委託することによって、品質の担保やコスト削減に大きく繋がります。
委託先を探す場合はその会社がどのようなテストを行うのかを確認し、検討してみてください。