一般的なバグの検出タイミング
いわゆるシステム開発ライフサイクル(Systems development life cycle、以下SDLC)において、一般的にテストは下流工程に位置づけられます。
例えばV字モデルにおいては、実装後に単体・結合・総合(システム)・受入と順を追ってテストを実施していきます。
ゆえにテストの実施及びバグの検出、修正はSDLCの後半で行われることがほとんどであり、場合によっては受入フェーズやリリース後にバグが見つかるということも十分に起こりえます。
バグがSDLCの後半、あるいはリリース後に見つかることで、どういったことが起こるのでしょうか。
バグの検出が遅れることによるリスク
SDLCの後半でバグが検出された場合、開発において多くの手戻りと、それに伴う工数が発生することになります。
例えばV字モデルにおけるシステムテストで不具合が発生した場合、まずバグの特定を行いますが、複数のシステムが関係していることからバグの特定自体が困難となります。
【関連記事】
V字モデルとは|ウォーターフォール型開発における品質面でのメリット
また特定されたバグの修正範囲が多岐に渡る場合があり、修正自体にも前工程での修正に比べ多くの時間を要します。
さらにバグの修正による影響範囲も広範となることから、予期せぬ場所に新たなバグが発生(いわゆるデグレード/degrade)することもあり、最悪の場合は修正とデグレが繰り返されることによりプロジェクト自体が暗礁に乗り上げるというリスクすらあります。
これがリリース後となれば、更に大きな影響を及ぼすことは容易に想像できるでしょう。
特に金融や証券、医療といった、ミッションクリティカルな領域でリリース後のバグが発生した場合、何百億~何千億といった規模の損害や人命に関わるような影響が発生する可能性があります。
それ以外の領域であっても、ビジネスにおける機会損失や顧客からの信頼の低下、そして大きな修正コストが発生するといった影響が考えられます。
バグの早期検出メリット
バグを早期に検出することで上記で挙げたようなリスクを回避できる可能性が高まることがそのままメリットとなりますが、ここではよりイメージのしやすいコストについてご紹介します。
文献によって多少前後はあるものの、以下のようにバグ検出・対応タイミングが上流であれば上流であるほど、そのコスト・影響は小さくすむと言われています。
たとえば、仕様書の不備に起因するバグのテスト工程以降における修正コストは、上流工程で修正を行うコストと比べ20倍~200倍にも及ぶと言われています。
逆に言えば、上流工程でバグ(あるいは実装後にバグとなり得るもの=仕様バグ)を検出し修正することができれば、そのコスト・リスクを大幅に軽減することが可能となります。
では、そのためにはどういった方法が考えられるのでしょうか。
工程ごとのバグ対応コスト
出典 JASPIC SPIJapan2009 奈良隆正「ソフトウェア品質保証の方法論、技法、その変遷」
仕様書に対するインスペクション
一つの有効なアプローチとして、仕様書に対するソフトウェアインスペクションの実施があります。
インスペクションとは形式的なソフトウェアレビューの1つであり、要件定義書や基本・詳細設計書といった上流工程で作成されるドキュメントに対してインスペクションを行うことで、後の工程でのバグに繋がる記載の曖昧さや抜け漏れ、間違いを検出し、上流工程において修正することが可能です。
特に設計書に関しては、上記の要素に加えロジックの矛盾をインスペクションによる徹底的なレビューで洗い出すことにより、バグの芽を未然につぶし後工程での手戻りを防止することができます。
また工程の中で設計書の翻訳が発生するオフショア開発においては、翻訳の前後でドキュメントの不一致が発生することがあり、それが原因となってバグが発生したりコミュニケーションコストが増大するというケースは、オフショア開発における典型的な課題の一つです。
こういった課題に対しても、国際性インスペクションを行うことでドキュメントの翻訳前後での同一性を担保することが可能です。
日本語特有の曖昧な表現がそもそもの原因となってしまっていることもありますので、そういった表現を国際性インスペクションによって検出・修正することも有効です。
さらに副次的な効果として、インスペクションを通じて上流工程で設計や実装のインプットとなる情報が整理されることにより、開発全体の生産性向上も期待できます。
開発体制やスケジュール、予算など様々な制約があるなかで実施が難しい場合もあるかと思いますが、その効果は非常に大きいことから、まだ実施されていない場合は一度検討されてみてはいかがでしょうか。
インスペクションには様々な方法がありますが、一例として対象範囲を一部に限定し、そこで検出された課題を横展開するなどといったコスト効率に重きを置いたインスペクションも可能です。
SHIFT ASIAではこれまでに金融系システムや業務システムをはじめとする、様々な領域におけるドキュメントのインスペクションを行ってまいりました。
またオフショア開発における翻訳前後の同一性にフォーカスした国際性インスペクションも含め、豊富な実績がございます。
「ドキュメントの品質が上がらない」「ドキュメントに起因して手戻りが多く発生する」そういったお悩みをお持ちでしたら、ぜひお気軽にSHIFT ASIAにご相談ください。
お問い合わせContact
ご不明点やご相談などがありましたら、お気軽にお問い合わせください。