事例

ソフトウェア品質管理ソリューション フェーズ移行の基準が厳格な金融システム開発だからこそ、フェーズ内でバグを取りきる

連載第2回
金融業界のシステムご担当者様

フェーズ移行の基準が厳格な金融システム開発だからこそ、
フェーズ内でバグを取りきる

金融システム開発では「プロジェクトのフェーズ移行審査が厳しく、「行数」「想定されるバグ数」をはじめ管理・報告すべき項目が多い」と金融のシステム開発を担当しているプロジェクトマネジャーは言います。

「以前担当していた製造業界のシステム開発では、本番稼働後であっても、「こういう風に使いたくなったから、早く直して」と計画外の修正を依頼されるようなこともあったが、金融業界のシステム開発では、フェーズ移行やリリースの管理が厳格で後戻りはまずあり得ない。」

このようなフェーズ移行の基準が厳格でフェーズの後戻りできない開発現場におけるCoverityの活用価値を語ってもらいました。

「Coverityを導入することで、我々もお客様も、客観的に品質が担保されていることを実感できます。『テストしている』『進捗している』という状況を元に一定の品質を確保できていると判断することは、どうしても仮説を含んでしまいます。しかし、ツールを入れコードそのものを解析することで、「一定の品質を確保しているという仮説」を実際のバグを測ることで客観的に検証することができるようになります。これは安心感が違います。もちろん、検出されたバグは残件として優先度に応じてフェーズ内で対応します。
つまり、現場でやってきたことへの検証と、ツールで検出された残件バグに対応することで、できるだけ仮説を排除したかたちで品質を保証することができるようになるのです。」

実際、今回の導入に先立ち、開発した既存のコードをCoverityで解析しています。そこから見えてきたCoverityの良さについて教えてもらいました。

「解析結果の確認は、お客様と一緒に行いました。実際に開発した我々も結果を先に確認することはせず、お客様と一緒にその時初めて解析結果を見る、というわけです。結果は、、、『品質が非常に良い』という結果でした!さすがに結果に対して全く不安がないわけではありませんでしたので、これにはホっとしました。また、多少のバグが検出されたのですが、そのバグがこの時点で検出されたことで、先々の工数を削減できたという実感もありました。もう少し前段のフェーズで導入していたら、もっと工数削減につながっただろうと思います。今回の解析は、結合テストも終盤に入ってからのタイミングになりました。結果が『品質が良い』と出たことは、我々のこれまでの取り組みが正しかったことを客観的に示してくれていますし、また、これまでテスト結果から判断していた「一定の品質が確保されている」という仮説を検証できたことにもなります。」

お客様とSIerとの間に信頼関係ができていれば、一定の品質はツールがなくても作り込むことができます。しかし、そこからさらに高度な品質を目指すのであれば、Coverityのようなツールを導入して対応していくのが望ましいと言えます。設計品質、コードレビューやテストでは防ぎきれないバグをCoverityは検出することができるため、今、行っている品質担保の取り組みにアドオンするかたちで、さらに高い品質を追求することができるようになります。

また、金融業界のシステムは大規模開発になる傾向がありますが、開発の大規模化に伴い、開発プロセス全体の改善に取り組んでいくことも重要になります。このような改善への取り組みにCoverityを導入するとより効果的です。最初はスモールスタートで、プロジェクトとしてどういうバグを検出したいかを調整し、最適化します。次に、CI(継続的インテグレーション)環境に組み込み、ほぼリアルタイムでバグを検出し、担当者にアサインし、すぐに修正対応をするような運用にまでもっていくことができます。

今回ご紹介したプロジェクトでは、システム構築だけでなく、お客様の開発プロセスの高度化というミッションもありました。その中で、オージス総研は全工程支援としてRedmineやSVNを活用し、CI(継続的インテグレーション)の支援としてJenkinsを適用するなど、お客様の開発プロセスの高度化をお客様とともに推進しています。「開発プロセスにおけるCI環境のひとつとしてCoverityをご提案でき、具体的な運用方法もご提案できたため、お客様にはご安心して導入を決めていただけたと考えています。」

いかがでしたでしょうか。次頁では「さらなる品質の高度化に向けて(仮題)」と題して、テスト工程の改善可能性についてお伝えします。

関連サービス