JP2018116496A - 差異検出装置及びプログラム - Google Patents
差異検出装置及びプログラム Download PDFInfo
- Publication number
- JP2018116496A JP2018116496A JP2017006984A JP2017006984A JP2018116496A JP 2018116496 A JP2018116496 A JP 2018116496A JP 2017006984 A JP2017006984 A JP 2017006984A JP 2017006984 A JP2017006984 A JP 2017006984A JP 2018116496 A JP2018116496 A JP 2018116496A
- Authority
- JP
- Japan
- Prior art keywords
- screen
- test
- transition
- information
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
・Capture and Replay技術を用いたテストスクリプトの自動生成(非特許文献2)
・モデルベーステストによるテストスクリプトの自動生成(非特許文献3)
(1)テスト対象を解析し、仕様としてテスト対象を構成する画面と画面間の繋がり、各画面に到達するための手段を抽出する。
(2)(1)で取得した仕様から機能テストにおける画面遷移テストに適した画面遷移図を生成する。
(3)(2)で生成した画面遷移図の各遷移に対応するテストスクリプトを、(1)で抽出した画面に到達するための手段の情報に基づいて、出力したいスクリプト形式に合わせて出力する。
技術課題1:テスト対象から仕様をリバースする方法の検討。
技術課題2:画面遷移を実現するための適切な入力値生成方法の検討。
技術課題3:機能テストにおける適切な画面識別方法の検討。
<従来技術と問題点>
アプリケーションから仕様をリバースする技術として、静的解析を用いた技術が存在する(例えば、「"Reconstructing Software Architecture for J2EE Web Applications" Minmin Han, Christine Hofmeister, Robert L. Nord,Proceedings of the 10th Working Conference on Reverse Engineering 2003」)。しかし、jspファイルから動的に生成されるHTMLのように、実行しないと生成できない情報を取得することができないため、仕様を完全にリバースすることができない。このような欠点を補うため、静的解析と動的解析を組み合わせた技術も存在する(例えば、「Silva CE, Campos JC. 2013. "Combining Static and Dynamic Analysis for the Reverse Engineering of Web Applications". Proceedings of the 5th Symposium on Engineering Interactive Computing Systems - EICS. :107-112.」)。本技術では静的解析でプログラム中のパスを洗い出し、動的解析でそれらのパスを全て網羅するようなテストケースを生成することでWebアプリケーションの振る舞いの網羅を目指している。しかし、動的解析で通過したパスを取得するためには入力値が通過しうる全ての箇所にログが取得できるようなコードを挿入する必要があり、ユーザは、クライアントサイドからサーバサイドまで、システム構成を正確に把握し、プログラムが通過した場所を表すログを出力するための環境を用意しなくてはならないため、ツール導入のための追加稼働の削減を目指している本実施の形態の目的とは合致しない。また、テスト対象に手を加えることで振る舞いが変わる可能性もあり、そのようなテスト対象から生成したテストケースを実際のテストに用いた場合、想定していたテストシナリオと異なる内容のテストをしてしまうリスクが存在する。
本実施の形態では、Webアプリケーションにおいて一般的に用いられているデザインパターンであるMVC(Model View Controller)の構成において、クライアントサイドからのリクエストに対して実行する処理を決定するコントローラに着目する。例えば、サーブレットがコントローラの一例である。コントローラが割り振る遷移を静的解析で全て把握し、その後の動的解析でそれらの遷移を網羅することで、テスト対象を構成する画面と画面間の繋がり、各画面に到達するための手段を漏れなくリバースすることができる。従来手法との違いとして、本実施の形態ではコントローラにのみ着目するため、クライアントサイドの情報からコントローラの示す遷移先をどの程度網羅できたかを推測することができ、ログを取得するための環境を用意する稼働を不要、又は少なくすることができるといった利点が挙げられる。従来のプログラムの実行パスを取得する方法では、実行パスの詳細な情報をクライアントサイドから推測することは不可能である。
<従来技術と問題点>
画面遷移を実現するための適切な入力値を生成するための方法として、Concolic Testingという手法が存在する(例えば、"Concolic testing" Koushik Sen. 2007. In Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering (ASE '07). ACM, New York, NY, USA, 571-572.」)。Concolic Testingでは、入力値を記号と置き、プログラムを実行しながらパスを通るための制約情報(パス式)を入手する。得られたパス式を反転させて生成される新たなパス式を制約ソルバで解くことで、所望のパスを通るために必要なテスト入力値を生成することができる。しかし、Concolic Testingは、入力値を記号と置いて追跡していく手法であるため、記号と置いた入力値がどこでどのような処理がされたのかのログを取得する必要がある。そのような情報を取得するためには、入力値が通過しうる箇所全てにログが取得できるようなコードを挿入する必要があり、ユーザは、クライアントサイドからサーバサイドまで、システム構成を正確に把握し、ログを出力するための環境を用意しなくてはならないため、導入の敷居が高いという欠点が存在する。特に、サーバサイドにおいては、業務用のWebアプリケーションでは、Webサーバ、アプリケーションサーバ、DBサーバなど、様々なシステムから構成されていることが一般的であり、それら全てのシステムに対し、ログを取得するための環境を用意することは多くの稼働がかかるため、ツール導入のための追加稼働の削減を目指している本実施の形態の目的とは合致しない。
一般的にWebアプリケーションにおいて、入力値によって画面遷移が決定されるパターンとしては以下の2通りが存在する。
(1)仕様に対して適切な入力値が入力された場合の正常系画面遷移
(2)仕様に対して不適切な入力値が入力された場合の準正常系画面遷移
(2)に対しては、無作為な値を入力、又は入力値を与えないことで実現できるケースが多くを占めることが経験的にわかる。しかし、(1)に対しては適切な入力値を与える必要があるため、無作為なテスト入力値を与えるだけでは画面遷移を実現できない可能性が高い。本実施の形態では、クライアントサイドの情報を用いて、入力フォームに対してどのような種類の入力値が求められているのかを推測し、適切な入力値を与えることで(1)に対するテスト入力値生成を実現する。
<従来技術と問題点>
本実施の形態では、機能テストにおける画面遷移テストを、機能テストの中でも、「クライアントサイドからのインタラクションに対し、クライアントサイドに表示される画面から、仕様通りに実装されているかどうかを確認することができる機能に対するテスト」と定義する。一般的に画面はURLで識別されるが、本定義における画面遷移テストでは、同一URLの画面同士でも画面によっては異なる画面としてテストすることが重要である。例えば、検索サイトにおいて、図1のように検索結果が無かったときの画面と検索結果が有ったときの画面はURLで見た場合、同一となることがあるが、機能テストの観点では別々の画面としてみなす。このような場合、URLではなく、表示される画面から識別するべきである。しかし、単純に表示された画面同士を画像として比較すると、確認したい機能部分が同一でも、それ以外の箇所が異なっていた場合、異なる画面と判別されてしまう。したがって、画面全体ではなく、画面を構成する要素の一部を比較する必要がある。画面は主にHTML、DOM(Document Object Model )構造、テキスト、画像、CSS(Cascading Style Sheets)等の要素で構成されている。
原因1:機能テストにおける画面の識別に影響を与えないノードの存在
原因2:並列化されたノードの存在
原因1については、太字タグ<b>など、機能テストにおいて画面の識別に影響を与えないノードが存在することが挙げられる。原因2については、見出しタグなどが挙げられる。例えば、ニュースサイトにおいて、見出しの数が異なっている場合でもニュースを表示するという機能は同一であるため、見出しの数は機能に影響を与えないということがいえる。このように画面の識別に影響を与えないノードが存在し、それらのノードによってTEDの値が増加するため、閾値を設ける必要がある。
本実施の形態では、原因1に関わるノードを削除し、原因2に関わるノードを集約することでHTMLを抽象化し、抽象化されたHTMLを比較することで、閾値の設定を必要とせずに機能テストにおける適切な画面識別を可能とする。
11 画面遷移情報抽出部
12 テストシナリオ生成部
13 画面自動操作部
14 画面評価部
15 テスト資材生成部
20 サーバ装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス
Claims (6)
- Webアプリケーションのソースコードから、前記ソースコードにおいて定義された第1の画面遷移の情報を抽出する抽出部と、
前記Webアプリケーションに関して表示される画面を自動的に操作する操作部と、
自動的な操作によって実現される第2の画面遷移の情報を生成する生成部と、
前記第1の画面遷移の情報と前記第2の画面遷移の情報との差異を検出する検出部と、
を有することを特徴とする差異検出装置。 - 前記生成部は、前記第2の画面遷移の情報に係る第1の画面の記述情報と第2の画面の記述情報とのそれぞれに対して所定の編集を行い、編集後の記述情報を比較して、前記第1の画面と前記第2の画面との同一性を判定する、
ことを特徴とする請求項1記載の差異検出装置。 - 前記所定の編集は、並列関係を有する画面要素を集約することである、
ことを特徴とする請求項2記載の差異検出装置。 - 前記所定の編集は、画面の識別に影響を与えない画面要素を削除することである、
ことを特徴とする請求項2記載の差異検出装置。 - 前記Webアプリケーションに関して表示される画面において値の入力先とされる画面要素について、当該画面の記述情報において当該画面要素について定義されている情報に基づいて、入力値を生成する生成部を有し、
前記操作部は、前記生成部によって生成された入力値を入力する、
ことを特徴とする請求項1乃至4いずれか一項記載の差異検出装置。 - Webアプリケーションのソースコードから、前記ソースコードにおいて定義された第1の画面遷移の情報を抽出する抽出部と、
前記Webアプリケーションに関して表示される画面を自動的に操作する操作部と、
自動的な操作によって実現される第2の画面遷移の情報を生成する生成部と、
前記第1の画面遷移の情報と前記第2の画面遷移の情報との差異を検出する検出部と、
としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017006984A JP6514244B2 (ja) | 2017-01-18 | 2017-01-18 | 差異検出装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017006984A JP6514244B2 (ja) | 2017-01-18 | 2017-01-18 | 差異検出装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018116496A true JP2018116496A (ja) | 2018-07-26 |
JP6514244B2 JP6514244B2 (ja) | 2019-05-15 |
Family
ID=62983914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017006984A Active JP6514244B2 (ja) | 2017-01-18 | 2017-01-18 | 差異検出装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6514244B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020046897A (ja) * | 2018-09-19 | 2020-03-26 | みずほ情報総研株式会社 | テスト支援システム、テスト支援方法及びテスト支援プログラム |
CN111221728A (zh) * | 2019-12-31 | 2020-06-02 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 |
JP2020160746A (ja) * | 2019-03-26 | 2020-10-01 | Necソリューションイノベータ株式会社 | Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム |
WO2020209227A1 (ja) * | 2019-04-09 | 2020-10-15 | 日本電信電話株式会社 | 解析装置、解析方法、及びプログラム |
JP2020173615A (ja) * | 2019-04-10 | 2020-10-22 | 日本電信電話株式会社 | 類似遷移特定装置、類似遷移特定方法及びプログラム |
WO2020213371A1 (ja) * | 2019-04-16 | 2020-10-22 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置 |
JP2022514155A (ja) * | 2018-10-02 | 2022-02-10 | チェール,タマス | ソフトウェアテスト |
JP7390070B1 (ja) * | 2022-09-20 | 2023-12-01 | 株式会社エーアイセキュリティラボ | ウェブサイトを検査するためのシステム、方法、及びプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198586A (ja) * | 1997-01-08 | 1998-07-31 | Nec Corp | Guiシステム自動操作装置および操作マクロ実行装置 |
JP2005115582A (ja) * | 2003-10-07 | 2005-04-28 | Hitachi Ltd | テスト・スクリプト部品の自動生成システム及び自動生成方法 |
JP2006244195A (ja) * | 2005-03-04 | 2006-09-14 | Nec Corp | プログラムテスト支援装置およびその方法 |
JP2011164783A (ja) * | 2010-02-05 | 2011-08-25 | Nomura Research Institute Ltd | 動作検証装置、動作検証方法および動作検証プログラム |
JP2016048471A (ja) * | 2014-08-27 | 2016-04-07 | 日本電気株式会社 | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム |
JP2016224868A (ja) * | 2015-06-03 | 2016-12-28 | 新日鉄住金ソリューションズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
-
2017
- 2017-01-18 JP JP2017006984A patent/JP6514244B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198586A (ja) * | 1997-01-08 | 1998-07-31 | Nec Corp | Guiシステム自動操作装置および操作マクロ実行装置 |
JP2005115582A (ja) * | 2003-10-07 | 2005-04-28 | Hitachi Ltd | テスト・スクリプト部品の自動生成システム及び自動生成方法 |
JP2006244195A (ja) * | 2005-03-04 | 2006-09-14 | Nec Corp | プログラムテスト支援装置およびその方法 |
JP2011164783A (ja) * | 2010-02-05 | 2011-08-25 | Nomura Research Institute Ltd | 動作検証装置、動作検証方法および動作検証プログラム |
JP2016048471A (ja) * | 2014-08-27 | 2016-04-07 | 日本電気株式会社 | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム |
JP2016224868A (ja) * | 2015-06-03 | 2016-12-28 | 新日鉄住金ソリューションズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
堀旭宏、外3名: "「Webアプリケーションに対する,画像比較に基づいた回帰テスト結果自動合否判定」", 情報処理学会研究報告 [ONLINE], vol. 第2016-SE-194巻,第10号, JPN6017017815, 2016, pages 1 - 8, ISSN: 0004010739 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020046897A (ja) * | 2018-09-19 | 2020-03-26 | みずほ情報総研株式会社 | テスト支援システム、テスト支援方法及びテスト支援プログラム |
JP2022514155A (ja) * | 2018-10-02 | 2022-02-10 | チェール,タマス | ソフトウェアテスト |
JP7398068B2 (ja) | 2018-10-02 | 2023-12-14 | ファンクショナイズ,インコーポレイテッド | ソフトウェアテスト |
JP7260150B2 (ja) | 2019-03-26 | 2023-04-18 | Necソリューションイノベータ株式会社 | Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム |
JP2020160746A (ja) * | 2019-03-26 | 2020-10-01 | Necソリューションイノベータ株式会社 | Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム |
JP2020173570A (ja) * | 2019-04-09 | 2020-10-22 | 日本電信電話株式会社 | 解析装置、解析方法、及びプログラム |
WO2020209227A1 (ja) * | 2019-04-09 | 2020-10-15 | 日本電信電話株式会社 | 解析装置、解析方法、及びプログラム |
JP7211228B2 (ja) | 2019-04-09 | 2023-01-24 | 日本電信電話株式会社 | 解析装置、解析方法、及びプログラム |
JP2020173615A (ja) * | 2019-04-10 | 2020-10-22 | 日本電信電話株式会社 | 類似遷移特定装置、類似遷移特定方法及びプログラム |
JP7127601B2 (ja) | 2019-04-10 | 2022-08-30 | 日本電信電話株式会社 | 類似遷移特定装置、類似遷移特定方法及びプログラム |
WO2020213371A1 (ja) * | 2019-04-16 | 2020-10-22 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置 |
JPWO2020213371A1 (ja) * | 2019-04-16 | 2021-11-04 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置 |
CN111221728B (zh) * | 2019-12-31 | 2022-08-23 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 |
CN111221728A (zh) * | 2019-12-31 | 2020-06-02 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 |
JP7390070B1 (ja) * | 2022-09-20 | 2023-12-01 | 株式会社エーアイセキュリティラボ | ウェブサイトを検査するためのシステム、方法、及びプログラム |
WO2024062798A1 (ja) * | 2022-09-20 | 2024-03-28 | 株式会社エーアイセキュリティラボ | ウェブサイトを検査するためのシステム、方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6514244B2 (ja) | 2019-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6514244B2 (ja) | 差異検出装置及びプログラム | |
CN107729475B (zh) | 网页元素采集方法、装置、终端与计算机可读存储介质 | |
US8281284B2 (en) | Method and software for editing web documents | |
US20170357486A1 (en) | Enhancing a crowdsourced integrated development environment application | |
WO2020235085A1 (ja) | 操作ログ可視化装置、操作ログ可視化方法および操作ログ可視化プログラム | |
US20220342518A1 (en) | Card-based information management method and system | |
CN113382083B (zh) | 一种网页截图方法和装置 | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
JP6723976B2 (ja) | テスト実行装置及びプログラム | |
CN114328276A (zh) | 测试用例生成方法和装置,显示测试用例的方法和装置 | |
JP6535038B2 (ja) | 画面判定装置、画面判定方法及びプログラム | |
CN110968314A (zh) | 一种页面生成方法及装置 | |
CN110365776B (zh) | 图片批量下载方法、装置、电子设备及存储介质 | |
CN109815243B (zh) | 一种文档界面化修改时的结构化存储方法和装置 | |
JP6505849B2 (ja) | 要素識別子の生成 | |
US10198408B1 (en) | System and method for converting and importing web site content | |
US9824140B2 (en) | Method of creating classification pattern, apparatus, and recording medium | |
US20230401265A1 (en) | Cross-application componentized document generation | |
JP2018120256A (ja) | 設定操作入力支援装置、設定操作入力支援システム | |
CN113590564A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN110515618A (zh) | 页面信息录入优化方法、设备、存储介质及装置 | |
US20230196009A1 (en) | Systems and methods for browser rendering | |
CN111143186A (zh) | 用于应用程序接口api测试的方法和设备 | |
CN111143189A (zh) | 用于应用程序接口api测试的方法和设备 | |
CN111522737B (zh) | 一种前端界面的自动化测试校验方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180727 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190328 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190411 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6514244 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |