NRIが取り組む品質向上:テスト自動化は「やらない理由がない」
株式会社野村総合研究所様・導入事例
株式会社野村総合研究所は、「Dream up the future.」「未来創発」をコーポレート・ステートメントとして、大手企業を中心にコンサルティング、金融ITソリューション、産業ITソリューション、IT基盤サービスを提供しています。
ATgo導入の経緯
プロジェクト序盤から準備をしていた
弊社では、証券会社様向けにバックオフィスシステムを提供しています。今回、こちらをモダン化させる刷新プロジェクトにて、ATgoの活用を試みました。本システムはとても巨大で、多くの画面を保有しています。これらを一度に刷新することは難しく、少しずつ時間をかけて作っていく予定だったのですが、その間に共通部品のバージョンアップやバックエンドの変更が予想されました。そのため、あらかじめ自動テストを組み込み、開発工程の後半になったときでもデグレードを起こしていないか確認するために、プロジェクト序盤からATgoを活用する準備をしていました。
もともと新規開発時に、別のテスト自動化ツールを利用していたのですが、モダンな環境への移行に伴い新たなツールが必要でした。私自身ツール選定は関わっていなかったのですが、各種製品を比較検討した結果、モダンブラウザに対応し、かつ、導入も容易なATgoが採択されたと聞いています。
ATgoの活用方法
総合テスト前に、開発担当者がテストを作っておく
内部連結テスト、総合テスト、リグレッションテストの工程内でATgoの活用を進めています。
まず、内部連結テスト工程では、各開発チームで活用しています。基本的にはバリエーションの網羅:入力項目のフィールドに取り得る値を入れたり、商品を株式から投資信託に切り替えて入力したりなど、とにかくいろいろなデータを入力しないといけない。そういったテストをATgoで自動化しています。初回のデータ入力で効率化しようというより、次テーマでのデータ入力を効率化するために仕込んでいるといった役割が大きいです。この工程のあと、各サブシステムを連動させた総合テストを行いますが、開発を直接担当していないテストチームが総合テストを行うので、当然どの画面にどのようなデータを入力すればよいか分からないはずです。しかし、ATgoがあれば、いちど準備したデータを流せばいいだけ。そのため、総合テストの前工程で開発を担当した、システムを知っている人がテストを作っておくという方法を取っています。また、バリエーションテストでは様々なデータを大量に投入する必要があるので、ATgoのようなツールは効果的。もちろん効率化にもつながっていると思います。
次に、総合テスト工程にて、数百のテストケース投入に活用しています。内部連結テストとは異なり、業務シナリオに基づく観点で行うため多少の調整が必要ですが、基本的には同じテストスクリプトを使用して実施しています。ここでは数千画面にものぼる大量の画面操作、大量のエビデンス取得が必要です。その両方でATgoを使っています。
そして、リグレッションテストでも活用しています。デグレードが起きていないか最終確認として実施しているテストです。ATgoのエビデンスは内容が一定で、人手に比べてばらつきが無いのも比較検証に適していますね。品質面で寄与していると感じています。
ATgo導入の効果と課題
手動では実施しなかったはずのテストをできるように
ATgoを導入して最も変わったのは、手動では実施しなかったはずのテストをできるようになったことです。繰り返し実行する2, 3回目以降のテストは、手動と比べて3割ほどの工数になっています。その分、単純計算で3倍のテストができているということです。以前は、ブラウザバージョンアップするとなったら、巨大システムが故に一大プロジェクトとなっていたことを考えると、今2か月に1回テストができているのはとてつもない変化です。主要な画面に影響がないことを一通り確認できているから、安心してお客様に提供できています。
ただ、「スクリプトを作る」作業は、手動テストにはないプラスアルファの作業になりますので、その部分は実感として20%から30%工数が膨らんでいます。しかし我々としてはATgoで工数を減らしたいのではなく、繰り返しテストしたい。つまり、品質を上げたいという意図で導入しています。このように、品質管理担当者からすると「繰り返しやれば品質が上がる」というモチベーションがありますが、プログラマーからしたらデグレード起こさないつもりで開発しているので、「プラスアルファの作業が増える」というマイナスの感覚が強いかもしれません。そのため、全てのテストを自動化するのではなく、まずは主要な画面に導入しています。それでも、主要な画面のテスト頻度が高いこともあり、データ投入時やエビデンス取得時の工数削減につながっています。
今後の展望
自動化は必須
メリットを感じているというより、自動化は必須だと思っています。UIだけではありません。バックエンドのテストにおいても自動化されていない部分があるとしたら、当然ウィークポイントなので、やらない理由がない。やはり、作業メンバーをどう動機づけするかが最大のポイントだと思います。それさえできれば手動テストより圧倒的に信頼できるので。
また、今後はGitLabのパイプラインにATgoを組み込もうとしています。設計データからソースコードを自動生成するという試みを行っているのですが、六元素さんにご協力いただいて、同時にATgoでテストスクリプトも生成できないかと検証を進めているところです。その他、リグレッションテストの頻度を上げることも考えており、今以上にATgoの活用を進めていきたいと思います。
この記事は2023年11月に取材しました。