リコーグループをITで支えるリコーITソリューションズ。同社において、リコー製品の中枢を担う「組込みソフトウェア」の品質検証をして、改善提案を行っているのがIT検証部である。従来、IT検証部では、ソフトウェア品質の問題点を構造や時系列の観点で可視化しながらも指摘できないことが課題となっていた。課題解決に向けて、IT検証部は「ソフトウェア分析プラットホームEmbold」を導入。ソフトウェア品質の根幹に関わる構造上のリスクを可視化し開発者に指摘するとともに、エビデンスとして残すことで品質のさらなる向上を図っていく。
- ソフトウェアの構造上の問題点を可視化し、改善提案力を高めたい
- 時間の経過に対し、品質がどう変化したのかを把握したい
- AI(人工知能)などを活用し、テスト業務の効率化を図りたい
リコー製品の中枢を担う「組込みソフトウェア」の品質を支える
1977年にOA(Office Automation)を提唱し、オフィスの業務改革に貢献してきたリコー。デジタル時代にさらなる飛躍を目指す同グループをITで支えているのが、リコーITソリューションズだ。同社はプリンタ、複合機、プロジェクタ、TV会議システムなどリコーのオフィス製品の中枢を担う「組込みソフトウェア」の開発・検証・品質保証を行っている。また、グローバルで活躍するリコーグループ社内基幹システムの設計・開発・保守運用や、クラウドを活用したドキュメントソリューションといったデジタルサービスのサポートなど、活躍する領域は幅広い。実践で培った高い技術力と優れた提案力が同社の大きな強みだ。
同社のIT検証部はテストを通じて、リコー製品の使いやすさや付加価値を実現する「組込みソフトウェア」の品質向上に取り組んでいる。その役割と課題について、IT検証部 シニアマネージャー 森 孝司氏にお話を伺った。
「IT検証部は、開発者が設計しプログラミングしたソースコードについて、『静的解析※ツール』を使って分析し、その結果をもとに開発者に改善提案を行う役割を担っています。提案する際の課題として、分析結果が数値として出てくるため、設計者に改善点を説明しても理解を得るのが難しいという点があります」
近年、改善提案ではソフトウェアの肥大化に伴うリスクの指摘や解決策を求められるという。「大規模なプログラムの開発を長期間続けると、急な仕様変更や機能追加などにより、構造が複雑化し、バグのリスクが拡大します。肥大化したソフトウェアの品質向上を図るためには、プログラムの動作や振る舞いを変えることなく、内部の設計や構造を見直すリファクタリングが必要です。これまでリファクタリングを行う際の改善提案は、テストの分析結果から“このソースコードをきれいにしましょう”といった内容にとどまっていました。大事なのは、バグが起こりうる構造的欠陥を見つけ出し、開発者が一目でわかるように可視化して提案することです」(森氏)
※静的解析:静的解析は、コードを実行せずに検証を行うソフトウェア解析手法のこと。
ソフトウェアの構造の問題点を可視化
「Embold」により改善提案力が向上
同社は、ソフトウェア品質の向上を図るべく、さまざまな「静的解析ツール」や「構造解析ツール」を利用している。当時、既存ツールには、構造の問題点を可視化できるものがなかったことから、新たなツールを探していたと、森氏は振り返る。「なかなか見つからなかったのですが、2019年の展示会で“まさに求めていたツール”に出会いました。それが、別のテストツールの提供を受けていたMSYSから紹介された『ソフトウェア分析プラットホームEmbold』でした」
森氏が「Embold」で注目したのが、パーティショニング機能だった。「パーティショニング機能により、ソフトウェアの構造を希望する粒度レベルに分割し、グラフィカルに表示することが可能です。テストエンジニアが開発者に対して、視覚的に構造上の問題点をわかりやすく説明できることから、リファクタリングの際の改善に向けた提案力が向上します」
また、時系列でリスクを発見できる点も、森氏は高く評価する。「一般的な静的解析ツール」は、解析時点のスナップショットでしか把握できませんでした。「Embold」は変更と進捗のモニタリング機能により、変更によってどう改善または劣化したか、時間の経過とともに品質がどのように進行しているかを確認し、変更の詳細に関してドリルダウンを行い、問題点の特定も可能です」
さらに、「Embold」のAI(人工知能)を活用したRE(リコメンデーション・エンジン)機能には可能性を感じると、森氏は付け加える。「「Embold」は、AIにより過去プロジェクトのバグを機械学習し、似通ったバグを指摘するという使い方ができます。しかし、IT検証部はテストによりリスクを見出し、改善を提案する役割を担っているため、広く世の中で問題となったアーキテクチャやコーディングなどを一元化したデータベースと連携し、AI活用によるリコメンデーションでテストの効率化を図ることを期待しています。」森氏は、「Embold」ならではの機能を試すために、実データを使って検証を実施。その結果を評価し、同社は2019年春に「Embold」を導入した。
Webアプリケーションの「Embold」はリモートワーク時代のニーズに対応
同社は、ソースコードやアーキテクチャの複雑さ、プログラムの規約上やパス上の欠陥など目的に応じて、さまざまなテストツールを組み合わせ、ソースコードの品質を定量化している。「今はさまざまなツールを利用していますが、将来的には「Embold」で一元化できるのではないかと考えています。他社ツールは、デスクトップにソフトウェアをインストールする必要があるため、リモートワークが進む中で使いにくさを感じています。Webアプリケーションの「Embold」は、リモートワーク時に自宅などからインターネットを通じてアクセスし利用することが可能なことも大きなメリットです。」
2019年春に、同社は「Embold」を採用したが、テストのプロセスに組み込むことはまだできていないと、森氏は話す。「テストを行う場合、計画を立ててテストケースを設計し実行します。どこでどのツールを利用し、その結果を次のインプットとして使っていくかといったプロセスの中で、「Embold」の効果的な使い方を検討しています」
プロセスには組み込んでいないが、「Embold」の活用はすでに始まっているという。「変更と進捗のモニタリング機能は、スクラムのプロジェクトで利用しています」と、森氏は話す。アジャイル開発の代表的な手法であるスクラム開発は、チームで効率的に開発を進めることができるフレームワークだ。開発プロジェクトを短期間ごとに区切り、その期間内に分析、設計、実装、テストといった一連の活動を行い、段階的に動作可能なシステムを作り上げていく。「スクラム開発のテストツールとしては、時系列で変更と進捗を把握できる「Embold」が適していると考えています」(森氏)
パーティショニング機能は、同社の取引先企業からソフトウェア品質に関して相談があった場合に、解決手段の1つとして提案していると、森氏は話す。「ソフトウェアの構造をどう分割していくかを、視覚的に確認できる点が好評です」
「Embold」を使って問題点を可視化するとともに解析結果をエビデンスに
今後は、「Embold」をプロセスに組み込むことを優先課題として取り組んでいきたいと、森氏は話す。「要件定義後のシステム設計段階から「Embold」を利用し、時系列でモニタリングしていくフローになるのではないかと考えています。IT検証部は、バグを出さない構造という視点から「Embold」を利用し、問題点を可視化して開発者に指摘しつつ、解析結果がエビデンスになるという形を目指しています。製品を作り込む開発部門と、製造工程から納品後まで製品の品質保証業務を行う品質保証部門の両方のニーズに応えていきます」
「Embold」を提供するMSYSのサポートについて、森氏は「1:1であるかのように、質問に対する迅速な回答などきめ細かくサポートをしてもらっています。また、「Embold」もそうですが、世界中から優れたツールを見つけ出し、当社の課題解決に向けた先進的な提案を期待しています」と語り、さらにこう続ける。 「今、セキュリティインシデントにまつわる脆弱性が潜むポイントについてMSYSに相談しています。オープンソースの脆弱性に関しては世界中でデータベースに一元化されており、そのデータベースと連携し、当社のソフトウェア開発において同様の脆弱性のパターンがないかをチェックできる方法を模索しています。現在、人手で行っているのですが、多くの手間を要しています」
企業理念「人・情報・信頼を技術でつなぐイノベーション企業へ」の実現を目指すリコーITソリューションズ。MSYSは、優れた技術力と先進的な提案力で同社の取り組みを支援し、リコーグループの発展に寄与していく。