CI/CDと自動テストの活用で、手動対応していたテスト・リリースを自動化
8ヶ月に一度リリースのウォーターフォール型からアジャイル型にシフト
既存テストのうち1/3にあたる80のテストケースは人手不要に
概要
株式会社NTTドコモ
所在地:東京都千代田区永田町2丁目11番1号 山王パークタワー
国内最大規模の移動体通信事業者。NTT(日本電信電話)から分離して1992年に営業を開始し、国内の携帯電話、スマートフォン事業を牽引してきた。1999年には携帯電話でメールやWebサイト閲覧ができる「iモード」サービスを世界に先駆けて開始。その後もLTE、5Gと最新世代の通信サービスを提供してきた。現在では通信領域の事業だけでなく、スマートライフの実現を目指したスマートライフ領域の事業で、各種のコンテンツのdマーケットでの提供、d払いなどの金融・決済サービス、ショッピングサービスなどにもビジネスを拡大している。
日本を代表する携帯電話事業者のNTTドコモ。同社は通信事業を中核とした多彩なサービスやアプリを提供し、私たちの暮らしや仕事を支えている。一方で、サービスやアプリの提供の歴史は長いもので30年以上を数え、基盤システムのレガシー化が課題となっている。こうした状況を改善するために、システムのモダナイズ(現代化)を進めているのが同社のサービスデザイン部である。サービスデザイン部では、モダナイズ実現に不可欠な要素として、テスト環境の自動化に着手。UiPath Test Suiteを採用することで、テストの属人化からの脱却や、大規模テスト時の負荷軽減を実現させつつある。
スマートフォン向けの移動体通信サービスにとどまらず、アプリを通じて通信からライフスタイルまで多方面にわたるサービスを提供しているNTTドコモ(以下、ドコモ)。多彩なサービスやアプリを提供するサービス基盤は、通信基盤と並んでドコモにとって最重要インフラの1つである。
同社のサービスやアプリの開発から基盤の維持・運用までを担うのが、サービスデザイン部である。
「開発も重要ですが、運用を維持してお客様に不便を感じさせないことが最大のミッションです」と、サービスデザイン部のアプリケーション開発担当主査である永原崇範氏は話す。「30年の歴史を重ねたことで、サービスやアプリの仕組みにもレガシー化したものが多くありますが、お客さまにとって重要なサービスであれば、簡単に停止はできません。レガシー化したサービスやアプリを円滑に現代化、すなわちモダナイズしていくことが私の仕事です」(永原氏)。
NTTドコモのシステムは多くの基盤システムで支えられているが、アプリ配信基盤もその1つ。永原氏は、初期構築から10年以上経過し、EOL(製品サポート終了)を迎えるレガシーシステムをモダナイズする「レガシーシステム構造改革」に2019年から取り組んでいる。より良い運用が可能になる基盤づくりへ向けて改革の舵を取る。
レガシーシステム構造改革では、クラウドネイティブな環境への対応やアジャイル型の開発にシフトすることで、レガシーシステムにあった課題の解決を目指す。例えば、機能追加で膨れあがったシステムは、断捨離して機能を選別した。生産性はコンテナ化などにより向上を図る。そして「これまで手動で行っていたテストを自動化することで、テスト作業に多大な時間と労力を掛けていたそれまでの課題の根本解決に踏み切ることにしました」(永原氏)。
手動で行うテストには多くの問題があった。ウォーターフォール型開発のレガシーシステムではリリース機会は多くても年に4回。年に1回か2回という年もある。こうした頻度では、システムのテストに関する知見がドキュメントに残っても、テストする人間の側には蓄積されにくい。「毎回一からドキュメントを読み込んだり、知見のある人を尋ねて回ったりする必要がありました。自動で動くテストケースが蓄積されていればそのような労力は必要なく、誰でもすぐにテストを実行することができます」と永原氏は説明する。
こうした頻度で行われるサービスやアプリのリリースだけでなく、テスト自動化の効果を最も期待したのが、基盤システムのマイグレーションという5年に1回行われる一大イベントだ。ハードやOSなどのバージョンアップへの対応で、膨大な量のテストが集中する。「毎回、数々の不具合や想定外の事態を覚悟して臨んでおり、テスト作成には多大な負荷が掛かっていました」(永原氏)。
サービスデザイン部がレガシーシステム構造改革の中核要素としてテストの自動化に取り組むにあたって、ツールとして選んだのはUiPath Test Suiteだった。
永原氏は、「Test Suiteを選んだ一番のポイントは、モバイルアプリのテストができることでした」と語る。サービスデザイン部ではモバイル端末のアプリとサーバーを接続して両者の動作を確認する接続テストが多い。ところが、モバイルアプリは別部署や外部が開発しており、詳細のテストノウハウがサービスデザイン部にはない。モバイルアプリのテストを自動化して、そのノウハウを継承することは不可欠な要件だった。
「私たちが試したテストツールの中で、モバイルアプリのテストができるのはUiPath Test Suiteだけでした。また、多くはオープンソースのソフトで、モバイルアプリへの対応は標準で備えていませんでした」(永原氏)。サーバー側のテストツールもTest Suiteには当然用意されており、アプリとサーバーを一気通貫で動作確認できることが選定の最大の決め手になった。
同時に、Test Suiteはオープンソースのソフトと異なり、UiPathによるベンダーサポートが受けられる点にも期待した。永原氏は「実際に利用してみて、UiPathの手厚いサポートには助けられました。現場の技術者から高い頻度で質問を重ねても、テストシナリオ作成時につまずきがちなポイントを踏まえて、丁寧に教えてくれました。助けを得られることで技術者は安心して自動化に取り組むことができ、人材の育成という面でも支援してもらいました」と語る。
開発テストはドキュメントベースではなく、動くテストケースの形で残していく。蓄積されたテスト資産の随時活用により、システムのモダナイズを効率的に推進できるはずです
株式会社NTTドコモ サービスデザイン部 アプリケーション開発担当 主査 永原 崇範氏
サービスデザイン部がTest Suiteを導入したのは2021年の春。2022年秋の取材時点で1年半ほどの利用実績を重ねてきた。現状は「まだ道半ば」という永原氏だが、これまでの導入効果に今後への期待を膨らませる。
1つは、テストの稼働時間である。「新規機能については、担当者がTest Suiteの使い方を学習し、テストケースを作成し、自動化したテストを実行しています。一方、既存機能についてはデグレ確認の観点から、有識者のノウハウも使いながら、徐々に自動テストを増やしています。このような方式でも、1年半経った現在、トータルの所要時間は、全て手作業で行っていた従来と同程度になってきました。今後は学習やシナリオ作成にかかる時間が徐々に短縮されるため、自動化による効果が累積的に利いてくるはずです」(永原氏)。実際、Test Suite導入当初は1つのテストで学習から仕様作成、実行までに2週間ほどかかっていたが、最近では数日にまで短縮できているという。
2025年に実施予定の5年に1回のマイグレーションでは、さらに一段大きな効果を見込んでいる。永原氏は、「UiPathTest Suiteで作ったテストに関しては、マイグレーション時に再度実行しても追加の労力は掛かりません。自動化したテストをマイグレーションに使うことができれば大きな効果が期待できます」と意気込む。
具体的には、配信基盤のテストとしては、基本のシナリオとして80シナリオがすでに構築済みである。マイグレーション時に必要なテスト数は、様々な組み合わせを踏まえその3倍と推定されるという。「すでにテスト全体の3分の1が、自動化によって人手が不要になる計算」(永原氏)というわけだ。
テスト自動化は、日常的なサービスやアプリの開発からリリースまでの所要時間短縮にも貢献している。「これまでは手作業でのテスト実行に1日かかっていたところが、Test Suiteを使えば1時間で完了します。開発体制をウォーターフォール型からアジャイル型へと変更する中で、開発体制の変更も含めて、開発からテスト完了までのトータル時間が短くでき、リリース時間も1/8に短縮できると見積もっています」(永原氏)。
さらに永原氏はアジャイル型開発におけるテスト自動化のメリットをこう語る。「ウォーターフォール型の開発では1回のテストで手戻りなしが前提ですが、アジャイル型ではテストを繰り返します。こうした開発プロセスの変化においてもTest Suiteは威力を発揮してくれています。1つのリリースに8カ月かかっていたウォーターフォール型開発に比べて、アジャイル型開発では2週間に1回、隔週でのリリースとなりますが、品質維持のためにはテスト自動化が必要となります」。
人材面における効果も見えてきた。GUIベースで操作できるTest Suiteの活用を通して、新入社員でもすぐに複数のテストケースを作成できるようになっており、業務ノウハウ共有や人材育成にも役立っているのだ。
こうした状況から、現場のメンバーのTest Suiteに対する印象はとてもポジティブだ。「途中でつまずいても、UiPathの手厚いサポートによりテストを完遂できます。それによってテストに対して自信が持てるようになったというポジティブな声を多く聞きます」(永原氏)。
人材の育成はテストシナリオの充実にもつながっている。"テストマスター"と呼ばれる熟練者が1人ですべてテストを仕切っていた手作業の時代から、自動化により複数人でテスト作成を分担できるようになったことで、作成できるシナリオ数が着実に増えてきた。従前のテスト体制の効率化のネックになっていた属人性も排除されつつある。
今後について、永原氏は「配信基盤で導入したテスト自動化を、他の基盤へと展開していくことを想定しています」と語る。さらに、現在は配信基盤のサーバー側だけで対応しているCI/CD(継続的インテグレーション/継続的デリバリー)を、モバイルアプリ側へも適用することも課題に挙げる。テスト自動化とCI/CDの環境が、モバイルアプリからサーバーまで一貫して構築できれば、人間はより難しい課題にだけ注力することができるからである。
テスト自動化ツールの選定について、永原氏はこう話す。「解決したい課題を明確にすることが大切です。当社の場合はモバイルアプリのテスト自動化という課題解決に、Test Suiteがマッチしました。もしUiPathでその課題が解決できると見極められれば、後はTest Suiteの機能とUiPathの手厚いサポートにより解決の道筋が見えてくるでしょう」。永原氏の先達としての示唆である。