システムやソフトウェアの開発において、品質は最も重要な要素のひとつといえます。
品質に関する問題が発生した場合、その規模や種類にもよりますが、プロジェクトの進捗やコスト、ユーザーからの評判や信頼、ビジネスにおける収益など、さまざまな面で影響が生じる可能性があります。
しかしながら、品質と時間やコストはトレードオフになりがちであり、また社内に適切な人員がいないというケースも多く見られます。
さまざまな制約から、品質を上げるための取組が十分にできていないという組織やプロジェクトがあるなかで、効果的な不具合検出が可能となる第三者検証は一つの有力な選択肢となりうるのではないでしょうか。
そこで本記事では、第三者検証をテーマに、その概要から重要性、第三者検証のメリット・デメリット、パートナー選びのポイントについて詳しくご紹介します。
第三者検証とは
第三者検証とは、システムやソフトウェアの開発において、開発者やユーザーではない独立した第三者が客観的に品質の検証や評価を行うことを指します。
開発者やユーザーといった当事者が検証を行う場合は、どうしてもバイアスや先入観などがはたらいてしまい、不具合を見逃してしまいやすいというデメリットがあります。
一方で、第三者検証では客観的な視点から当事者では気づきにくい不具合の検出も期待でき、より効果的かつ高精度での検証が可能となります。
そのため、第三者検証を実施することで不具合が検出されないまま工程が進んでしまうリスクや、製品に不具合が混入してしまうといったリスクを軽減することができ、検証の対象となるシステムやソフトウェアの信頼性や品質、透明性などの大幅な向上を期待できます。
詳しくは後述しますが、第三者検証は社内の第三者によって実施されるケースもあれば、より第三者性が高い社外の専門家や企業などによって実施されるケースもあります。
第三者検証を行う理由やその重要性
もし第三者検証を実施しない場合、システムやソフトウェアに含まれる重大な不具合が見逃されるリスクが高まります。
システムやソフトウェアの開発は人が行う以上、基本的に「不具合が発生しない」ということは起こり得ません。そのため「不具合は発生する」という前提のもと、重大な不具合をなるべく早期に検出して修正することが重要となります。
特に金融機関や医療機関で用いられるシステムや、通信などのインフラに関わるシステムなど、不具合による故障が発生したときの影響が極めて大きいミッションクリティカルなシステムやソフトウェアでは、求められる品質水準が高くなり第三者検証の重要性も高まります。
ミッションクリティカルなシステムやソフトウェアではなくとも、不具合による収益面へのネガティブな影響や企業としての信頼の失墜などさまざまなリスクが存在します。
第三者検証には相応の費用や時間がかかるものの、第三者検証を適切に実施することで品質に起因した問題が発生するリスクを下げることができるため、求める品質のレベルや品質問題が発生したときの影響度などを考慮して、実施の可否やその方法、規模などを検討するのが良いでしょう。
第三者検証における独立性の度合い
上でも触れた通り、第三者検証にも社内の第三者が実施するケースから、社外の第三者が実施するケースなど、さまざまな独立性のレベルがあります。
こちらでは、ISTQBのシラバスにおいて「テストにおける独立性の度合い」として記載されているものを参考として紹介します。
以下は、独立性の低いレベルから高いレベルの順に列挙されています。
- 独立したテスト担当者不在(開発担当者が自分のコードをテストするのみである)。
- 開発チーム、またはプロジェクトチーム内に所属する、独立した開発担当者、またはテスト担当者(開発担当者が同僚の成果物をテストすることもある)。
- 組織内にある独立したテストチームまたはグループで、プロジェクトマネージャーや上位管理者の直属組織。
- 顧客またはユーザーコミュニティから派遣された独立したテスト担当者、または、使用性、セキュリティ、性能、規制/標準適合性、移植性など、ある特定のテストタイプを専門に行う独立したテスト担当者。
- 組織外の独立したテスト担当者。オンサイト(インハウス)またはオフサイト(アウトソーシング)で作業する。
引用元:テスト技術者資格制度 Foundation Level シラバス Version 2018V3.1.J03 5.1.1 独立したテスト
最も独立性が低いレベルとしては、開発者自身が自分で検証を行うケースがあげられており、これは第三者検証にあたりません。
第三者検証として良く見られるケースとしては、3つ目の「組織内にある独立したテストチームまたはグループ」が実施するケースや、5つ目の「組織外の独立したテスト担当者」が実施するケースがあります。
第三者検証において、理想的なのは最も独立性が高い「社外のテスト担当者に第三者検証を依頼(外注)する」ことですが、当然社内のテスト担当者が実施するのに比べて多くのコストを要することになります。
そのため、求められる品質や予算、プロジェクトの状況などを鑑みて、第三者検証を社内で実施するのか、あるいは社外のテスト担当者に依頼するのかを検討することになります。
続いては、第三者検証のメリットとデメリットについてみていきましょう。
第三者検証のメリット
第三者検証には、メリットとデメリットがそれぞれ存在します。
第三者検証の実施可否の判断や、実施する際のやり方などを検討するうえで、メリットとデメリットをきちんと把握しておくことが重要です。
まずは第三者検証のメリットについてご紹介します。
- 先入観を持たずに検証できるため、より効果的に不具合を検出できる
- 想定外のコスト超過や納期遅延リスクを軽減できる
- 開発者は開発に集中できるため、開発の生産性や品質があがる
- 客観的な視点での評価が得られ、UIUXの改善にもつながる
先入観を持たずに検証できるため、より効果的に不具合を検出できる
第三者検証の概要や重要性でも述べた通り、第三者検証では先入観をもたない第三者が検証を行うため、認知バイアスや思いこみなどを回避することで開発者自身が見つけられない不具合の検出を期待できます。
特に、専門的なテストエンジニアが第三者検証を担当した場合は、ソフトウェアテスト・品質保証の技術や知見を活用することができ、より網羅的な不具合検出によってさらなる品質向上がはかれます。
また、社外の独立したテスト担当者による第三者検証では、検証対象に関係する社内のステークホルダーからの圧力などの影響を受けにくいことから、社内のテスト担当者に比べて客観性の高い検証および報告が可能となります。
想定外のコスト超過や納期遅延リスクを軽減できる
本来であれば、テスト工程の初期に検出されるべき不具合が受入テストなどテスト工程の後半になってはじめて検出された場合、影響範囲が広くなり原因の特定や修正、修正の確認などにより多くの時間が必要となります。
その結果、想定外のコスト超過や納期遅延、リリースの延期といった問題につながる可能性がありますが、早期から第三者検証を取り入れることで重大な不具合が見逃される可能性を減らし、品質に起因する想定外のリスクを軽減することができます。
開発者は開発に集中できるため、開発の生産性や品質があがる
開発者が開発に加えて検証も担当する場合、たびたび作業の切り替えが必要になることから開発の効率や生産性、品質が落ちる可能性があります。
また多くの場合において、開発者は開発することに対しては前向きに取り組めるものの、検証やテストにも同程度の熱意や集中力をもって取り組めるという人は限られます。
そのため、開発者が検証も担当する場合は開発者のモチベーション低下リスクもあり、同様に開発の生産性や品質に悪影響が及ぶ可能性があります。
そのため、開発と検証を分業して開発者とは異なる第三者が検証をするという分担をすることで、開発者は開発にだけ集中することができるというメリットがあります。
また、検証にも専門的な知見が必要となるため、開発者よりも専門家が実施した方が検証自体も効果的となります。
客観的な視点での評価が得られ、UI/UXの改善にもつながる
第三者が検証を通じてテスト対象のシステムやソフトウェアを使用したり操作したりするなかで、副次的な効果として客観的な視点からのUI/UXに対する評価も得られます。
例えば、画面上で見にくい要素や押しにくいボタン、使用するうえでの使いづらさやわかりづらさなどに対する意見や指摘等が得られることもあり、その結果としてUI/UXの改善も期待できます。
第三者検証のデメリット
続いては、第三者検証のデメリットについても見てみましょう。
- 実施に時間や費用がかかる
- 開発者と検証担当者との間に対立が生じるリスクがある
- 開発者の品質に対する責任感が薄れることがある
実施に費用や時間がかかる
第三者検証の実施には、そのやり方や規模などに応じて相応の費用や時間がかかります。
第三者検証の担当者分の人件費が発生することはもちろん、検証対象の仕様理解や検証の戦略・計画の策定、体制構築、テストの設計といった第三者検証の準備および実施、検出した不具合の分析や修正などにも時間・コストがかかります。
そのため、第三者検証を実施する場合は、プロジェクトの計画段階から第三者検証にかかる費用や時間等をあらかじめ織り込んでおくことが重要です。
開発者と検証担当者との間に対立が生じるリスクがある
開発者と第三者検証の担当者は、ともに「品質の高いソフトウェアを作ること」を目的としているものの、両者の立場の違いから対立が生じるリスクがあります。
開発者の視点では、自分や自分のチームの成果物に対して第三者から間違いや抜け漏れなどを指摘されるという見え方になるため、ネガティブな心情が起こりやすいという注意点があります。
開発者と第三者検証の担当者との間に溝が生じてしまうと、テスト対象に関する重要な情報が第三者検証の担当者に伝わりにくくなってしまったり、第三者検証の担当者から開発者へのフィードバックに遠慮や遅延が生じてしまったりすることもあるため、お互いがプロフェッショナルとして健全な関係性を構築できるように意識的に取り組むことが重要です。
開発者の品質に対する責任感が薄れることがある
第三者検証によって、検証が開発者とは異なる第三者によって実施されるという分業が確立されると、開発者自身では検証を行わないようになるため、開発者の品質に対する関心や責任感が薄れることがあります。
品質の高いシステムやソフトウェアを開発するためには、まずは開発者自身が高い品質意識を持つことが前提となりますが、第三者検証による分業化によって「品質は開発者ではなく第三者が担保するもの」という思い違いにもつながりかねません。
第三者検証を取り入れる場合でも、開発者の品質に対する意識や注意をゆるめないために、例えば開発者別での不具合率を計測するといった工夫も必要となるでしょう。
第三者検証のパートナー企業選びにおけるポイント
「第三者検証における独立性の度合い」でもご紹介した通り、第三者検証を社内の独立したチームやグループで行うケースもあれば、社外の企業に第三者検証を外注するケースもあります。
ここでは、最も独立性が高いケースである、社外の企業から第三者検証のパートナーを選ぶ際のポイントや注意点についてご紹介します。
検証の技術力や対応可能範囲
開発と同様に、適切な第三者検証には専門的な技術が必要となります。
ソフトウェアテストにも、ブラックボックステスト技法やホワイトボックステスト技法、経験ベースのテスト技法といったさまざまな技法があり、それらを目的や対象に応じて適切に活用できるかどうかが第三者検証の効果や正確性、生産性などに大きく影響します。
ソフトウェアテスト技法とは | 主な技法の種類や特徴について解説
また、第三者検証をサービスとして提供する企業にもさまざまな企業があり、ソフトウェアテストの実行だけを行うような企業から、テストの戦略や計画の策定、テストの設計といった上流から包括的に対応できる企業もあります。
したがって、第三者検証のパートナー企業を検討する際には、検証の対象や目的に沿った技術力やケイパビリティを有しているかどうかを必ず確認したうえで、評価・比較するようにしましょう。
また、企業のソフトウェアテストの実力を判断するための一つの材料として、テストに関する資格の有無も挙げられます。
ソフトウェアテストの資格としては、国際的なソフトウェアテスト資格であるISTQB(International Software Testing Qualifications Board:国際ソフトウェアテスト資格認定委員会)が有名です。
わたしたちSHIFT ASIAでも多くのテストエンジニアがISTQBの国際資格を取得しており、SHIFT ASIAはISTQBのPlatinum Partnerに認定されています。
検証対象に関する専門知識や実績
第三者検証において、検証対象によって必要な知識や技術は異なります。
例えば、会計業務に使用するソフトウェアに対して第三者検証を行う場合は、会計関連のソフトウェアや、それに近い領域の専門知識や検証実績がある企業を選ぶことが基本となります。
同様に、例えば決済アプリに対して第三者検証を行う場合は、似たような決済アプリや、あるいはフィンテックや金融関連の専門知識や検証実績がある企業が望ましいと言えます。
そのため、第三者検証のパートナー企業を検討する際には、必ず検証対象に関係する専門知識や実績の有無、そしてその量や質について確認するようにしましょう。
採用しているソフトウェア開発ライフサイクルモデルへの対応力
ソフトウェア開発ライフサイクルモデルによっても第三者検証のやり方は異なるため、自社で採用している開発モデルに対応可能なパートナーを選ぶことも重要です。
例えば、アジャイル開発に代表されるイテレーティブ開発モデル・インクリメンタル開発モデルと、ウォーターフォール開発に代表されるシーケンシャル開発モデルでは、検証の進め方や体制、必要となるスキルセットなどが大きく異なります。
ウォーターフォール開発では要件分析、設計、コーディング、テストなどはそれぞれのフェーズに分かれ、順次完了していきます。一般的には設計書などのドキュメントをもとにテストを設計し、コーディング後に単体テスト、結合テスト、システムテスト、受入テストと各テストレベルで実施されます。
一方で、アジャイル開発ではソフトウェアを細かな単位に分割し、単位ごとに要件の確定、設計、構築、テストを行っていきます。アジャイル開発では柔軟に仕様が変わることもあるため、設計書などのドキュメントが無いケースもあります。スピードも早く、数日から数週間単位で動作するソフトウェアが出来上がっていくため、開発と並走しながら検証を進める必要があります。
ISTQBにおいても、アジャイル開発におけるテストは「アジャイルテスト」という従来のテストとは別のカテゴリとして分けられており、特有のテスト技術が必要となります。
また、過去のイテレーションで開発した機能の変更なども多く行われるため、リグレッションテストやその自動化の重要度が高いといった特徴もあり、シーケンシャル開発モデルとは異なるスキルセットや知見が必要となります。
わたしたちSHIFT ASIAでは、従来のウォーターフォール開発における第三者検証への対応はもちろんのこと、ますます増加するアジャイル開発における第三者検証に対応するためにISTQBのAgile Tester(アジャイルテスト担当者)資格を有するテストエンジニアも豊富に抱えています。
第三者検証を検討されている方や、信頼できる第三者検証パートナーを探しているという方は、ぜひお気軽にSHIFT ASIAにご相談ください。
お問い合わせContact
ご不明点やご相談などがありましたら、お気軽にお問い合わせください。