ITシステムの本番稼働前の重要な工程である受け入れテスト(UAT)は、実際のところどのような形で誰がしているのでしょうか?
この話の前に、ITシステムの開発でUATがどのような位置づけの工程か、図1のシステム開発のV字モデ ルからみていきましょう。
ITシステムを業務に適用する場合、そのシステムが要求事項に対し正しく動くか検証(verification)するだけでなく、適用される業務で求められる性能を発揮し運用できるかの妥当性確認(Validation)をする必要があります。システムを提供するベンダー側では検証テストは実施しますが、この妥当性確認は受け入れテストとしてユーザ側で実施されるものです。
このV字モデルでもわかるように、最終工程としてUATが実施されることは、システム納期の遵守を優先させた場合、この工程の作業期間やマンパワー投入が不足し作業品質が低下することにつながり、妥当性確認が不十分となります。この結果、カットオーバー後のトラブル発生を引き起こし、本番稼働時期の遅延を招くことになります。
もう一つの問題は、このUATの準備をだれがいつ実施しているかの問題です。現状では以下の流れにあるように、ユーザ側システム部門がUAT実施の直前にテストシナリオを作成している場合が多いようです。(図2の「現状」を参照)
ここで、UATの本来の目的である妥当性確認を確実に実施するための改善策として、UATのテストシナリオを要件定義工程の確認後に、システムを利用するユーザ部門自ら作成を担当することが提案*1)されています。(図2の「改善後」を参照)
要件定義の結果確認とUATにおいて、システム部門に任せてユーザ部門が主体的に関わっていないケースが案外多いようです。ユーザ部門の役割を考えるうえでの参考として、IPAの「ユーザのための要件定義ガイド」の成功に導く勘所のひとつとして 『システムオーナーの選定により、業務部門(ユーザ部門)の役割と責任を明確にする』*2) ことが挙げられています。
この役割と責任を明確にする具体的な作業として、先に述べた改善策であるUATシナリオをユーザ部門自ら作成しUATを実施することだと思います。普段、ITシステムのテストに慣れていないユーザ部門に対して、ユーザのシステム部門だけでなくベンダーも技術的な教育支援をすることが必要と考えます。
また、プロジェクトの計画段階で、本来の業務を抱えているユーザ部門に対し、曖昧になりがちな役割と責任をステークホルダー間で明確化しておくことも大切になります。
<引用文献>
*1) 野村 典文、菊島 靖弘、青山 幹雄;「ユーザ要求ベースのテスト方法」、情報処理学会研究報告、2013
*2) IPA/IKC,「ユーザのための要件定義ガイド 第2版 要件定義を成功に導く128の勘どころ」(P209), 2019