特集

データセントリック時代のソフトウェア技術

ソフトウェアテスト

探索的テストテスト
スクリプト

繰り返し型の効率的なテストを実現するテスト活動データ分析技術
近年，コストを抑えながらソフトウェアを早期にリリースすることへの要求が増しています．そのため，開発全体のコストに占める割合が大きく，ソフトウェアの一定の品質を確保するために必要となるソフトウェアテストは，開発における QCD（Quality, Cost,Delivery）の要といえます．本稿では，NTTソフトウェアイノベーションセンタ（SIC）が研究開発を行い OSS 化した，テストを飛躍的に効率化する技術について紹介します．

はると

きりぬきひろゆき

丹野治門

切貫弘之

かわぐちたかひろ

たじままさき

川口敬宏

但馬将貴

おいぬま

もりひで

むらもと

たつや

生沼守英

村本達也

NTT ソフトウェアイノベーションセンタ

えて，新規機能追加等による既存機能リプト作成を行います．そしてテストの劣化が引き起こされていないかを確実施では，テストケースごとに，入力ウォーターフォールモデルによるソ認するためのテスト（回帰テスト）を，データを与え，ソフトウェアを動作さフトウェア開発は図 1 のように行われリリースのたびに旧機能全体に対してせ，それぞれのテストケースでソフトます＊．テストで摘出できなかったソ行う必要があり，これにも大きなコスウェアの振る舞いが期待どおりである

フトウェアの不具合はそのままユーザトがかかります．NTT ソフトウェアかを確認します．現状のテストでは大の元へリリースされてしまうため，ソイノベーションセンタ（SIC）では，きく 3 つの課題があると考えています．

フトウェアの品質確保においてテスト

ソ フ ト ウ ェ ア 開 発 に お け る QCD

1 番目の課題は，従来の事前計画しは欠くことのできない大事な工程で（Quality，Cost，Delivery）の要とた指標値に基づいた網羅的かつ詳細なす．しかし，これらを手動ですべて行なっているテストを変革し，ソフトウェ

テスト設計には大きなコストがかかる

おうとすると大きなコストがかかってア開発の生産性を飛躍的に向上させるという点です．品質向上をめざして網しまいます．また，近年ではユーザのことをめざしています．

羅性を追求すると膨大な時間がかかりソフトウェアテストの重要性ニーズの変化や，動作環境となるソフトウェア，ハードウェアの進化のスピーソフトウェアテストの現状ます．加えて，テストの再現性や監査性の確保のために，各テストケースにドが早いため，必要に応じて素早くソ

ソフトウェアテストの目的は，ソフついて，テスト手順など詳細に記述す

フトウェアを改良し短期で繰り返してトウェアが正常に振る舞うことを確認るような重厚長大なテストケース表のリリースすることも求められていましたり，ソフトウェアの不具合数を減作成にも大きな稼働がかかります．

す．しかし，一定の品質を確保しながらしたりすることです．テスト工程に2 番目の課題は，テストの実施にはらソフトウェアのリリースを繰り返しおける主要なタスクはテスト設計，テ膨大な稼働とスキルを要するという点行うためには，新規部分のテストに加スト実施となります．テスト設計でです．多数あるテストケースそれぞれは，行うべきテストのバリエーションについて，手順に沿って，テスト対象の洗い出しを行い，テストケースを網アプリへの操作や入力，そして結果の要件
定義

図1

18たんの設計

製造

テスト

羅的に設計し，各テストケースそれぞれについて具体的にテスト実施可能なソフトウェア開発プロセス

2022.2

手順への詳細化や，自動実施用のスク＊ 図 1 はウォータフォール開発におけるプロセスとなっており，アジャイル開発ではこのようなプロセスを短期で繰り返すこととなります．

特集確認を行う必要があります．手順どお開発技術を確立し，AI と人が協働しりにすべてを実施していくことに多大て開発を行うというアプローチをとっ

そして，最終的には，大量に蓄積しな時間がかかります．ています．超高速開発におけるテストたテスト活動データを解析することで，については図 2 に示すような世界をめ

過去のテスターの知見を再利用し，テざしています．

スト実施中に繰り返し行われる手順に3 番目の課題は，短期で繰り返しリリースを行うために必要となる回帰テす（ 3 番目の課題の解決）．

ストの自動化にコストがかかる点で私たちのアプローチでは，闇雲に網ついては自動実施による補助を行うこす．JUnit，Selenium など，テスト羅性を追求せず，テストすべき個所をとに加え，テスト品質を向上させるたを自動実行するための既存のフレーム選択し，そこに集中します．そして，めにテスト推薦を行うことで，テストワークやライブラリは多く存在します

どこへ選択・集中するかについては，実施についても大幅に省力化することが，自動実行のためにはスクリプト作テスト実施状況・結果のデータを収をめざします（ 2 番目の課題の解決）．

成が必要となり，スクリプト作成に大集，分析して逐次判断します．これに今回，本稿では，NTT グループ内きな手間がかかります．そのうえ，スより，従来の網羅的なテストの課題をでも多く開発されている，Web アプ

クリプトは一度作成したら終わりでは解決し，テストの飛躍的な効率化を実リケーションをフロントエンドとしてなく，テスト対象ソフトウェアの修正現します．収集したテスト実施状況・持つ業務アプリケーションにおける，に合わせてスクリプトを修正するとい結果のデータに詳細なテスト手順も含効率化のニーズが高い結合テストを対う保守作業にも大きな手間がかかりまれるため，テストの再現性と監査性象とした技術「LatteArt」が，どのます．

も担保することができます（ 1 番目のように 1 番目と 3 番目の課題を解決し課題の解決）．加えて，収集したテスているかについて説明します．

めざす世界

ト活動データを活用し，保守しやすい

SIC では，多様化・曖昧化するビジ

テストスクリプトの自動生成も行うこネスの要件とビジネスの進化スピードとで，回帰テストの自動化を容易に行に対応した超高速開発の実現のため，えるようにし，ソフトウェアを改良し人の作業の一部を代替・超越する AI

たあとに迅速なリリースを可能にしま

繰り返し型の効率的なテストを実現するテスト活動データ分析技
術 LatteArt
業務アプリケーションは，多くのユー

テスト活動の分析結果に基づくテスト設計・実施 （短期で繰り返しのフィードバックループ）
テスト設計

テスト実施• おおまかなテスト設計を行ったうえで，分析結果に基づき随時追加でテスト設計を行うことで選択・集中

LatteArt

機能 観点 1
機能A 対象機能B 対象観点 2
対象外
対象• 過去のテスターの知見を再利用し，機械支援でテスト作業の省力化• 自動生成されたテストスクリプトを活用可能・・• 分析結果をレビュー

テスター

・・

テスト
管理者

#
1
2

テスト報告

テストスクリプト
データ
収集

テスト
実施支援

スクリプト生成テスト活動データ
データ価値化へ

図2

分析結果（テストレポート）

データ分析

めざす世界

2022.2

19

特集

データセントリック時代のソフトウェア技術

スケースシナリオ，機能，画面があり，分析し，さまざまなデータモデルす．これにより，随時人がテスト

各画面における入力のパターンも多くで可視化することが可能です．例の充分性を確認し，必要最低限のの組み合わせが存在し，従来の網羅的えば，図 3 ， 4 に示すようなシーテストを補うことで効率的なテスなテストには大きなコストがかかりま

ケンス図，画面遷移図といったモトを実現できます．加えて，テスす．なんらかのモデル（例えば，ソフデルで可視化することが可能でト活動データに基づき，テストトウェアの設計モデル）から網羅的なテストを自動設計することでテスト設

画面計を支援するツールも存在しますが，ソフトウェアの設計モデルの作成という追加のコストが発生してしまうという課題がありました．また，Web ア

テスト目的

プリケーションのテストを自動化する
ためには，画面の操作を自動で行うテ画面遷移

ストスクリプトの作成が必要となります．このようなテストスクリプトは，例えば，既存のキャプチャ＆リプレイツール（例：SeleniumIDE）を使う

テスト中の気付きことで，高いスキルがなくてもスクリプトを作成することはできますが，スクリプト作成の手間はかかりますし，キャプチャ＆リプレイツールで記録したテストスクリプトはモジュール化さ

テスト中に発見したバグれていないため，修正しづらく保守性が低いという課題もあります．
このような課題を解決するため，私たちは，繰り返し型の効率的なテスト

図3シーケンス図を実現するテスト活動データ分析技術
LatteArt の開発を進めてきました．
LatteArt には以下のような特徴があります．

画面① テスト活動データの収集：テス
ターの Web アプリケーション画
面 上 の 操 作 ロ グ， ス ク リ ー ンショット，およびテスターがテスト実施中に入力したテスト目的，

画面遷移

バグ，気付きなどを自動で収集し，テスト活動データとしてデータ化します．
② テスト活動データの分析：自動で収集されたテスト活動データを

20

2022.2

図4

画面遷移図

特集

対応する画面要素がプレビュー表示される

図5

テストスクリプト
図6

テストスクリプトのドキュメント

ケース表とテスト結果相当の情報をテスト活動データから自動で生繰り返し型のテストは新しいテスト手成するので，従来作成していた詳法であるため，NTT グループ内外の細なテスト手順を含む重厚長大なステークホルダ（開発者・システムオー

テストケース表も不要となります．

ナ）により，新しいテスト手法が理解

回帰テスト向けテストスクリプされ，広く受け入れられる土壌をつく

ト生成：テスト活動データから，り上げることが重要と考えます．そのページオブジェクトパターンに基ために，LatteArt の OSS コミュニ

づいてモジュール化した保守性のテ ィ を 立 上 げ， ソ ー ス コ ー ド を高いテストスクリプトの雛形を自Github で公開しました（5）．

③

動生成（3）します．さらに，ドキュ今後は，実践で得たデータも武器

メントも合わせて一緒に自動生に，大量に蓄積されたテスト活動デー成（4）することで，編集の際のテスタから，過去のテスターの知見を抽出

トスクリプトの可読性を向上させすることにより，テスト実施時に繰ります．ドキュメントには，テスト返し行われる事前手順作業の自動化やがどういう画面遷移を行うかを示

テスト推薦を行うことで，テスト実施す画面遷移図や，操作される要素についても大幅な省力化を実現し，テを示したスクリーンショットも含スト全体のさらなる効率化をねらいままれています．図 5 ， 6 にテストす．加えて，ＮＴＴグループに閉じず，スクリプトの例を示します．これＮＴＴグループ外の企業，大学等ともにより，テストスクリプトの実装，連携し，産学のさまざまな知見をいた保守が容易になり，手間をかけずだきながら進めることで，LatteArtに回帰テストを自動化することをの OSS コミュニティを中心としたテ可能とします．

スト変革のエコシステムを育てていく

到達点と今後の展望
現在，NTT グループ会社との共同実験で LatteArt の適用評価を行っており，開発現場から好感触を得ています．また，LatteArt の技術については国内の学会における発表でも高い評価を受け，複数の賞をいただくことができました．LatteArt を用いた短期つもりです．めざす世界の実現のため，一歩一歩着実に研究開発を進めていきたいと考えています．
■参考文献（1） 熊川 ･ 峯尾 ･ 丹野 ･ 切貫 ･ 倉林：“SONARTesting 効率 と客観性を両立した新たなテスト手法，” 日本科学技術連盟 ソフトウェア
品質シンポジウム2019，2019.
（2） H.Kirinuki, T.Kurabayashi, H.Tanno, andI.Kumagawa: “Poster: SONAR Testing Novel Testing Approach Based on Operation

Recording and Visualization，” ICST 2020,
pp. 410-413, Oct．2020．
（3） 切貫 ･ 丹野 : “ 手動テストのログを用いた有用な End-to-End テストスクリプトの自動生成，” ソフトウェアエンジニアリングシンポ
ジウム2020論文集，pp. 106-114，2020．
（4） 但馬 ･ 切貫 ･ 丹野 : “ ドキュメントの自動生成による End-to-End テストスクリプトの理解支援，” ソフトウェア工学の基礎28，pp.
177-178，2021．
（5） https://github.com/latteart-org/latteart/（上段左から）丹野 治門/ 切貫 弘之/
川口 敬宏（下段左から）但馬 将貴/ 生沼 守英/
村本 達也
私たちはテストを飛躍的に効率化することをめざし，繰り返し型の効率的なテストを実現するテスト活動データ分析技術の研究開発を進めています．今後も，開発現場のフィードバックを得ながら技術を磨いていきます．

◆問い合わせ先NTT ソフトウェアイノベーションセンタ
ソフトウェア開発技術プロジェクト
TEL 03-6712-9638
FAX 03-6712-8372
E-mailiso-tool-support-p-ml

2022.2hco.ntt.co.jp

21