JP6514244B2 - 差異検出装置及びプログラム - Google Patents
差異検出装置及びプログラム Download PDFInfo
- Publication number
- JP6514244B2 JP6514244B2 JP2017006984A JP2017006984A JP6514244B2 JP 6514244 B2 JP6514244 B2 JP 6514244B2 JP 2017006984 A JP2017006984 A JP 2017006984A JP 2017006984 A JP2017006984 A JP 2017006984A JP 6514244 B2 JP6514244 B2 JP 6514244B2
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
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 JP2018116496A (ja) | 2018-07-26 |
JP6514244B2 true 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) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6626946B1 (ja) * | 2018-09-19 | 2019-12-25 | みずほ情報総研株式会社 | テスト支援システム、テスト支援方法及びテスト支援プログラム |
EP3861437A4 (en) * | 2018-10-02 | 2022-09-28 | Functionize, Inc. | PERFORMING TESTS ON SOFTWARE |
JP7260150B2 (ja) * | 2019-03-26 | 2023-04-18 | Necソリューションイノベータ株式会社 | Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム |
JP7211228B2 (ja) * | 2019-04-09 | 2023-01-24 | 日本電信電話株式会社 | 解析装置、解析方法、及びプログラム |
JP7127601B2 (ja) * | 2019-04-10 | 2022-08-30 | 日本電信電話株式会社 | 類似遷移特定装置、類似遷移特定方法及びプログラム |
JPWO2020213371A1 (ja) * | 2019-04-16 | 2021-11-04 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置 |
CN111221728B (zh) * | 2019-12-31 | 2022-08-23 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本***及方法 |
JP7390070B1 (ja) * | 2022-09-20 | 2023-12-01 | 株式会社エーアイセキュリティラボ | ウェブサイトを検査するためのシステム、方法、及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3008872B2 (ja) * | 1997-01-08 | 2000-02-14 | 日本電気株式会社 | Guiシステム自動操作装置および操作マクロ実行装置 |
JP2005115582A (ja) * | 2003-10-07 | 2005-04-28 | Hitachi Ltd | テスト・スクリプト部品の自動生成システム及び自動生成方法 |
JP4395761B2 (ja) * | 2005-03-04 | 2010-01-13 | 日本電気株式会社 | プログラムテスト支援装置およびその方法 |
JP4846029B2 (ja) * | 2010-02-05 | 2011-12-28 | 株式会社野村総合研究所 | 動作検証装置、動作検証方法および動作検証プログラム |
JP6354457B2 (ja) * | 2014-08-27 | 2018-07-11 | 日本電気株式会社 | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム |
JP6491959B2 (ja) * | 2015-06-03 | 2019-03-27 | 新日鉄住金ソリューションズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
-
2017
- 2017-01-18 JP JP2017006984A patent/JP6514244B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018116496A (ja) | 2018-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6514244B2 (ja) | 差異検出装置及びプログラム | |
US10331758B2 (en) | Digital communications platform for webpage overlay | |
CN107729475B (zh) | 网页元素采集方法、装置、终端与计算机可读存储介质 | |
US20190303269A1 (en) | Methods and systems for testing visual aspects of a web page | |
CN107688664B (zh) | 图表生成方法、装置、计算机设备和存储介质 | |
US9959257B2 (en) | Populating visual designs with web content | |
CN110688600A (zh) | 基于html页面的在线编辑方法、装置、设备及存储介质 | |
JP6535038B2 (ja) | 画面判定装置、画面判定方法及びプログラム | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
US20220342518A1 (en) | Card-based information management method and system | |
WO2020235085A1 (ja) | 操作ログ可視化装置、操作ログ可視化方法および操作ログ可視化プログラム | |
CN113688288B (zh) | 数据关联分析方法、装置、计算机设备和存储介质 | |
CN112817817B (zh) | 埋点信息查询方法、装置、计算机设备和存储介质 | |
JP6723976B2 (ja) | テスト実行装置及びプログラム | |
CN112835579A (zh) | 确定界面代码的方法、装置、电子设备和存储介质 | |
CN110968314A (zh) | 一种页面生成方法及装置 | |
US10289613B2 (en) | Element identifier generation | |
CN113656737A (zh) | 网页内容展示方法、装置、电子设备以及存储介质 | |
US9824140B2 (en) | Method of creating classification pattern, apparatus, and recording medium | |
US20230401265A1 (en) | Cross-application componentized document generation | |
US20240054174A1 (en) | Methods and systems for obtaining and storing web pages | |
CN111522737B (zh) | 一种前端界面的自动化测试校验方法、装置及存储介质 | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof | |
CN104809101A (zh) | 通信对象的查找方法和设备 | |
US20220405196A1 (en) | Operation pattern generation apparatus, operation pattern generation method and program |
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 |