テスト自動化事例
株式会社日立ソリューションズ東日本様

■お客様情報

1984年創業。
日立グループのソフトウェア関連サービスを展開する株式会社日立ソリューションズの子会社として、東北、北海道を中心に全国、そしてグローバルにビジネス展開を行っている。
システムエンジニアリングサービスとソフトウェアエンジニアリングサービスを展開する企業。

https://www.hitachi-solutions-east.co.jp/

■事例概要

取引先や仕入先のような、社外の関係者との企業間連携や社外からのリモートアクセスなど、企業のDXを実現し、加速させるクラウドサービス基盤「appSQUARE DX」にて、日本ナレッジのテスト自動化支援サービスを採用し、利用者視点でのテスト(E2Eテスト)の自動化を実現しました。

手動でも自動テストでも共通化した当社独自のテスト設計技法を活用して自動化のレバレッジを活かし、当社比でテストケース1件あたり平均18分の生産性向上を実現しました。
また、日々の開発ビルドに対して翌朝にはデグレード発生を知らせる仕組みの構築により、テスト自動化のメリットである「テスト速度」、「網羅的なテスト設計」、「品質の見える化」の相乗効果を提供し、開発生産性の向上にも貢献しました。

■事例インタビュー

●インタビュー参加者

  • 産業ソリューション事業部 開発本部本部長
    加賀 雅弘様(左)
     

  • 産業ソリューション事業部 開発本部
    第一パッケージ開発部 チーフITスペシャリスト
    門司 太郎様(右)

インタビューは20年以上のテスト自動化経験とテスト自動化に関する様々な講演や執筆を行っているソフトウェア品質のスペシャリストである当社エグゼクティブコンサルタントの加藤大受が実施しました。

●なぜ、テスト自動化を考えたのかを教えてください

加賀様:

日立ソリューションズ東日本の開発本部では、自社パッケージ及びサービス開発を通じてお客様に様々なソリューションを提供しています。
今回リリースした企業のDXを加速するサービスである『appSQUARE DX』は、すでにパッケージ製品として提供している『AppSQUARE』がベースになっています。

『AppSQUARE』はワークフローやフォームなどの部分で、様々なお客様のニーズに対応するための機能を備えた製品です。本製品の開発時、APIを実装する際にテストプログラムで再利用可能なものを用意し、それをエンハンスしていく流れを作ることで品質確保を目指す仕組みを考え取り組んでいました。
しかし、継続して機能追加を進めるときに、フロントエンドのUIおよび画面の品質確保に課題が生じていました。

そこで『AppSQUARE』ベースの『appSQUARE DX』では、アーキテクチャーを見直し、フロントエンドの品質確保を実現するプロセス構築づくりを検討したいと考えたため、日本ナレッジさんにご協力を頂きました。

門司様:

UIのテストはユニットテストとの親和性が低いのでフロントエンドの品質確保のため、手動の組み合わせテストに比重を置き、組み合わせテストのフェーズで1万を超えるテストを行っていましたが、一回の機能追加で画面が変わったり、機能が追加されたりするとテストの再実施の必要性が発生するため、大きな負担となっていました。

10年前のオンプレミス製品の開発では今ほどセキュリティ要求も厳しくなく、お客様のOSなどを含めた環境も固定環境での運用が受け入れられ、機能と安定性についてお客様と合意すれば頻繁な機能追加も要求されず、半年や1年での製品提供が可能でした。

しかし、現在ではOSを含めたインフラ環境はセキュリティパッチの適用は当然であり、ソフトウェア製品の提供形態もクラウドサービスとなりました。
また、リリースサイクルの短縮化というプレッシャーを感じて製品開発を行っており、機能追加、セキュリティ対応、プラットフォーム対応までを考えると、10年前の10倍くらいの圧力を感じるため、自動化することが当たり前だと考えています。

『AppSQUARE』は典型的なウォーターフォールプロセスでしたが、『appSQUARE DX』では開発のスピードアップを意識し、アジャイル手法を一部取り入れ、これまで積み上げてきた品質データ等の過去の資産を品質保証として活かし、半分ウォーターフォール開発・半分アジャイル開発というハイブリッドな開発プロセスを取り入れました。

●自動テストの割合について教えてください

門司様:

『appSQUARE DX』のテストフェーズは次の6種類となっています。

  • ユニットテスト
  • APIテスト
  • 組み合わせテスト
  • E2Eテスト
  • ロードテスト(負荷系テスト)
  • セキュリティテスト

この中で現時点で自動化しているのが、ユニットテストとE2Eテストとなります。
現在は少しずつAPIテストについても自動化を進めておりますが、一斉に自動化はできないので、だんだんとカバレッジを上げていく予定です。


●自動化による効率化に対する開発者のモチベーションや進め方はどうでしたか

門司様:

開発者は開発することが好きなので、当然ながら何もしないとモチベーションは上がらないと思います。
ただ、自動化はある意味コードを書くなど、開発に関連する部分があります。
自動化のコードについても設計が必須なこと、自動テストの全体像を描く必要性を理解してもらうことで、プロジェクト内の雰囲気としては協力的になり、今は開発者は前向きにとらえて進めています。

リソース配分の面では、機能実装では必ずバグが摘出されるため、プロジェクト内の工数をどれだけ自動テストの取り組みに配分するかを考えることに苦労しました。

基本的にどんどん自動化を進め、APIテスト、負荷テスト、環境セットアップなどのデプロイを含め、自動化を進めていきますが、探索的テストも重要であるため、品質確保を明確に意識して進めていくつもりです。

自動化はテストを単に自動で動かすだけでなく、テスト結果や失敗したテストの迅速な情報配信などを進めることで、品質の見える化に寄与します。
これらを既存の開発プロセスにしっかりと定着させ、品質の見える化を実現していければと思っています。最終的にはダッシュボードなどで一元化できればと考えています。

●日本ナレッジのテスト自動化支援サービスを利用していかがでしたか

門司様:

組み合わせテストを大量に手動でやっていたので、スピード感的に遅く、画面テストを自動化できたらいいのではないかと考えたのがきっかけで日本ナレッジさんにご相談しました。

自動化することで、夜間に回して翌朝にはある程度の品質確保が確認でき、手動でのテスト実施による品質の積み上げや機能エンハンス時の自動テストによる影響確認などを組み合わせることで開発スピードを上げられると考えました。

当社では最初はSeleniumを使って自前でやっていましたが、テストスクリプトの修正が頻繁に発生してしまい、E2Eテストでよくある”定着しない”という問題に遭遇しました。
テストは作ったがそのテストが使われなくなるという課題です。

その時に日本ナレッジさんにテスト自動化のツール選定からご依頼し、E2Eテストの定着化についてご協力を頂くことにしました。

日本ナレッジさんの伴奏型の支援サービスは、両社で同じ課題に取り組み、当社にきちんとトランスファーしてくれるので、ブラックボックスにならないこと、自動化に適したテスト設計手法の提供、スクリプト作成プロセスの構築など当社に足りない部分をきちんと教授してくれました。
また、当社の若手メンバーが日本ナレッジさんのテスト自動化支援チームに参画し、E2Eテストを定着化できるエンジニアを育成することにもご協力頂きました。

E2Eテストの基盤としてRanorexを活用できただけでなく、スマートデバイス対応も含めたE2Eテストの定着化とE2EテストのプロセスをJiraやConfluenceのAtlassianツールで見える化できたことなど、知識面・技術面とも高く評価しているとともに、『appSQUARE DX』のサービス開発に非常に貢献頂いています。

加賀様:

『appSQUARE DX』は、2023年2月にリリースしたばかりなので、実際のお客様の品質での評価はこれからだと思っています。

これまで以上に、日本ナレッジさんには継続的にテストチームと自動化の開発プロセスの定着化というところでご支援してもらいたいと考えています。

また、日立ソリューションズ東日本の開発本部では、開発する製品が増えてきており、今後は、主力製品の一つであるサプライチェーン分野の製品開発も担当するので、具体的にはそこでテスト自動化を活用や展開ができないかを一緒に考えて頂ければと思います。