JP7398068B2 - ソフトウェアテスト - Google Patents
ソフトウェアテスト Download PDFInfo
- Publication number
- JP7398068B2 JP7398068B2 JP2021518903A JP2021518903A JP7398068B2 JP 7398068 B2 JP7398068 B2 JP 7398068B2 JP 2021518903 A JP2021518903 A JP 2021518903A JP 2021518903 A JP2021518903 A JP 2021518903A JP 7398068 B2 JP7398068 B2 JP 7398068B2
- Authority
- JP
- Japan
- Prior art keywords
- user interface
- test
- web application
- version
- failed
- 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
- 238000013522 software testing Methods 0.000 title description 14
- 238000012360 testing method Methods 0.000 claims description 243
- 238000000034 method Methods 0.000 claims description 212
- 238000013515 script Methods 0.000 claims description 89
- 230000009471 action Effects 0.000 claims description 84
- 230000006870 function Effects 0.000 claims description 37
- 238000013528 artificial neural network Methods 0.000 claims description 32
- 238000010801 machine learning Methods 0.000 claims description 29
- 238000012549 training Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 18
- 238000003058 natural language processing Methods 0.000 claims description 8
- 230000001537 neural effect Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 5
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 87
- 238000001514 detection method Methods 0.000 description 52
- 238000004458 analytical method Methods 0.000 description 26
- 230000008859 change Effects 0.000 description 26
- 238000012544 monitoring process Methods 0.000 description 24
- 238000009826 distribution Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 18
- 238000003066 decision tree Methods 0.000 description 14
- 238000010200 validation analysis Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 8
- 238000012015 optical character recognition Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000002474 experimental method Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 239000003086 colorant Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- -1 regions Substances 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013179 statistical model Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000010207 Bayesian analysis Methods 0.000 description 2
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005067 remediation Methods 0.000 description 2
- 229910052711 selenium Inorganic materials 0.000 description 2
- 239000011669 selenium Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Description
本出願は、2018年10月2日に出願された米国仮特許出願第62/740,409号、2018年10月23日に出願された米国仮特許出願第62/749,490号、及び2018年10月23日に出願された米国仮特許出願第62/749,533号の優先権を主張し、これらの各々は、その全体が参照により本明細書に組み込まれる。
本明細書ではテストソフトウェアに関連する技術が提供され、特に動的アプリケーションの失敗の可能性によってテストステップを評価し、ソートするための確率論的グラフィカルモデル及び/又はルールエンジンを用いて、失敗したソフトウェアテストの原因を特定するための方法が提供されるが、これに限定されるものではない。
本技術の理解を容易にするために、いくつかの用語及び句を以下に定義する。詳細な説明の全体にわたって、追加の定義を述べる。
ウェブアプリケーションはしばしば、UI要素の置換及び組み合わせがテストされるべき潜在的なコマンド及びコマンドシーケンスの膨大なフィールドを生み出すため、複雑なUIを有する。更に、ウェブアプリケーションは、時間とともに変更し、以前のテストスクリプトを実行不可能にレンダリングする。したがって、いくつかの実施形態において、本明細書により提供される本技術は、ウェブアプリケーションの自動化されたテスト(例えばウェブアプリケーションのUI)及びソフトウェアテスト失敗の原因であるウェブアプリケーションの変更(例えばウェブアプリケーションのUI)の特定に関する。本明細書で提供されるソフトウェアテスト技術のいくつかの実施形態において、テスト自動化は、テストの実行、及び実際の結果と予測される結果との比較を制御するために、通常、テストされるソフトウェアとは別のソフトウェアを使用する。今日のソフトウェアアプリケーションの多くは、インターネットブラウザ又はブラウザエンジン内で実行するウェブベースのアプリケーションとして書かれている。ソフトウェアテストを自動化することには、例えばテストの再現性及び実行速度に関連して、多くの利点がある。
一つ又は複数の実施形態は、コンピュータ又は任意の命令実行システムを用いた、又は関連して使用するプログラムコードを提供する、コンピュータ使用可能又はコンピュータ読み取り可能媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。コンピュータ使用可能媒体又はコンピュータ読み取り可能な媒体は、命令実行システム、装置、又はデバイスによって、又はそれに関連して使用するためのプログラムを格納、通信、伝搬、又は輸送する任意の装置を含むことができる。媒体は、電子、磁気、光、電磁気、赤外線、又は半導体のシステム(又は装置若しくはデバイス)、又は伝播媒体とすることができる。例えば媒体は、半導体又はソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、リジッド磁気ディスク及び光ディスク等のコンピュータ読み取り可能媒体を含み得る。
いくつかの実施形態において、本技術は、例えばウェブページ上の要素の属性を特定するために、ウェブアプリケーションUIを評価するためのコンピュータビジョンの使用を含む。いくつかの実施形態において、本技術は、ウェブアプリケーションに関連付けられたコードを特徴付けるためのコード分析の使用を含む。いくつかの実施形態において、本技術は、ウェブアプリケーションUIの一つ以上の要素の属性の変更を、あるバージョンから別のバージョンへと特定するための、コンピュータビジョンの使用を含む。いくつかの実施形態において、本技術は、ウェブアプリケーションのあるバージョンから別のバージョンへのウェブアプリケーションに関連付けられたコードの変更を特定するためのコード分析の使用を含む。いくつかの実施形態において、本技術は、ウェブアプリケーションのあるバージョンから別のバージョンへの変更を特定するために、コンピュータビジョン及びコード分析の両方の使用を含む。
本明細書で説明するように、本技術は、UIを含むウェブアプリケーションのテストエラーの原因を特定することに関する。ウェブアプリケーションは、一つ以上のウェブページを含むことができる。ウェブアプリケーションは、データベースと通信することができる。
いくつかの実施形態において、本技術は、ウェブアプリケーション、例えばウェブブラウザの自動化をテストするためのスクリプトを作成し、スクリプトを実行するツールを提供する自動化されたテストユーティリティを提供する。したがって、いくつかの実施形態において、各スクリプトは、ウェブブラウザ内で発生する少なくとも一つのアクション又はイベント(例えば要素との対話)を定義する。いくつかの実施形態において、自動化されたテストユーティリティは、ウェブブラウザのためのプラグインとして提供される。いくつかの実施形態において、自動化されたテストユーティリティは、ユーザ(例えば開発者、ソフトウェアエンジニア)が初めから多数のステップを含むスクリプトを書くことを、要求しない。いくつかの実施形態において、自動化されたテストユーティリティは、特定のアクション又はイベントを記録及び編集するための制御、スクリプトへのテスト特定のコマンドの追加を容易にする制御、及び/又は英語のフレーズをスクリプトステップに翻訳するための自然言語処理を実行する構成要素を含む。
いくつかの実施形態において、本技術は、ウェブアプリケーションの変更をモニタする構成要素を含む。いくつかの実施形態において、自動化されたテストが実行されている間、モニタリング構成要素は、ウェブアプリケーションのスクリーンショットを取得し、記憶する。いくつかの実施形態において、自動化されたテストが行われている間、モニタリング構成要素は、一つ以上のスクリプト、自動化されたテストユーティリティ、及び/又はウェブアプリケーションからメタデータをキャプチャする。いくつかの実施形態において、本技術は、例えば外部プログラム、ブラウザのためのプラグイン、又は自動化されたテストユーティリティの拡張であるモニタリング構成要素を提供する。いくつかの実施形態において、モニタリング構成要素は、自動化されたテストユーティリティによって生成されたスクリーンショット及びデータをキャプチャする。いくつかの実施形態において、モニタリング構成要素は、テストされているアプリケーション又はアプリケーションを実行している環境(例えばウェブブラウザ)を直接モニタする。いくつかの実施形態において、モニタリング構成要素は、スクリーンショットとしてウェブページの写真を格納し、モニタリング構成要素は、スクリーンショットとしてキャプチャされたウェブページの写真に関連付けられたソースコードを格納する。いくつかの実施形態において、スタイルシート及び画像は、ソースコードと共に記録される。いくつかの実施形態において、モニタリング構成要素は、自動化されたテストユーティリティを実行し、ウェブアプリケーションのテスト中にスクリーンショットをキャプチャし、テストが実行されているコンテキストを記述するメタデータをキャプチャする。いくつかの実施形態において、メタデータは、特定の自動化されたテストに特有である(例えばメタデータは、特定の自動化されたテストの実行中に取得されたすべてのスクリーンショット(例えばテストスクリプトの名前、ウェブアプリケーションの名前など))に適用可能である。いくつかの実施形態において、メタデータは、自動化されたテストのステップ又は部分に特有である(例えばメタデータは、一つ以上の特定のスクリーンショットに適用可能である)。
いくつかの実施形態において、本技術は、ウェブアプリケーション(例えばウェブアプリケーションUI(例えばウェブアプリケーションUIのスクリーンショット))を分析するためのコンピュータビジョンの使用を含む。
いくつかの実施形態において、本技術は、コンピュータソフトウェア(例えばウェブアプリケーションに関連付けられたソースコード及び/又はオブジェクトコード)を分析することを含む。いくつかの実施形態において、本技術は、ウェブアプリケーションを実行することなく、ソースコード及び/又はオブジェクトコードを分析することを含む。いくつかの実施形態において、本技術は、ウェブアプリケーションが実行している間、ソースコード及び/又はオブジェクトコードを分析することを含む。いくつかの実施形態において、自然言語処理は、ソース及び/又はオブジェクトコードを分析し、アクションを特定し、ユーザインターフェース要素と関連付けるために使用される(例えばコンピュータビジョン及び/又はソースコードの分析によって特定される)。
1つ又は複数の実施形態は、ウェブアプリケーションの要素のグラフィカルモデルを生成するための技術を提供する。いくつかの実施形態において、グラフィカルモデルは、ウェブアプリケーションの要素間の関係を含む。例えばいくつかの実施形態において、グラフィカルモデルは、ウェブアプリケーションUIの要素の相対位置のマップを含む。いくつかの実施形態において、グラフィカルモデルは、グラフィカルモデル内の要素の属性(例えば位置、タイプ、状態、色、サイズ、形状など)を記述する情報(例えばデータ)を含む。いくつかの実施形態において、本技術は、ウェブアプリケーションをモニタし、ウェブアプリケーションのためのグラフィカルモデルにおける変更を特定する。例えば、ウェブアプリケーションのUI上のボタンの位置を変更は、UIを記述するグラフィカルモデルの変更を生じる。したがって、いくつかの実施形態において、本技術は、ウェブアプリケーションの第2のバージョンを記述する第2のグラフィカルモデルに関連したウェブアプリケーションの第1のバージョンを記述する第1のグラフィカルモデルにおける変更を特定する。いくつかの実施形態において、本技術は、他の変更と相関するグラフィカルモデルの変更を特定する。例えばいくつかの実施形態において、グラフィカルモデルの分析は、グラフィカルモデルにおける第1の変更がグラフィカルモデルにおける第3の変更と共に(例えば計算された第2の確率を用いて)生じるよりも頻繁に、グラフィカルモデルにおける第2の変更と共に(例えば計算された第1の確率を用いて)生じるグラフィカルモデルにおける第1の変更を特定する。いくつかの実施形態において、グラフィカルモデルの変更は、コンピュータビジョンを使用して特定される。いくつかの実施形態において、ソースコードの変更は、分析される。いくつかの実施形態において、グラフィカルモデルの変更は、コンピュータビジョンを用いて特定され、ソースコードの変更が分析される。
いくつかの実施形態において、本技術は、比較構成要素を含む。いくつかの実施形態において、比較構成要素は、入力として第1のグラフィカルモデル及び第2のグラフィカルモデルを受け入れ、出力としてグラフィカルモデル差モデルを生成する。グラフィカルモデル差モデルは、第1のグラフィカルモデル及び第2のグラフィカルモデルから変更した属性を有する要素を特定する要素差エントリを含む。いくつかの実施形態において、グラフィカルモデル差モデルは、第1のグラフィカルモデル及び第2のグラフィカルモデルから変更していない属性を有する要素を特定する要素同一エントリを含む。したがって、いくつかの実施形態において、グラフィカルモデル差モデルは、第1のグラフィカルモデル及び第2のグラフィカルモデルから変更された、いくつかの属性を有し、第1のグラフィカルモデル及び第2のグラフィカルモデルから変更されていない、いくつかの属性を有する要素を特定するエントリを含む。いくつかの実施形態において、ウェブアプリケーションUIの複数のバージョンを記述する複数のグラフィカルモデルは、比較され、差は、特定される。いくつかの実施形態において、確率論的モデル(例えば隠れマルコフモデル)を使用して、複数のグラフィカルモデルの比較に基づいて、スクリーンの要素及び/又は領域の変更の確率を割り当てる。
いくつかの実施形態において、失敗したソフトウェアテストは、失敗したテストの根本原因である可能性に関連付けられた提案されたアクション(例えばテストステップ)を提供するスクリプトを実行するようにトリガする。いくつかの実施形態において、テスト失敗の確率を個々のアクションに割り当てることは、ウェブアプリケーションのバージョン間の各アクションに対する要素属性値の変更を定量化することを含む。いくつかの実施形態において、全ての属性に対して等しい重みが割り当てられる。いくつかの実施形態において、例えば、バージョンからバージョンに変更されたとき、属性は、(例えば知識(例えばデータ、統計、ルール)に基づいて)頻繁にソフトウェアテスト失敗を引き起こす属性に、(例えば知識(例えばデータ、統計、ルール)に基づいて)あまり頻繁には起こらないソフトウェアテスト失敗を引き起こす属性よりも、より多くの重みを割り当てられる。いくつかの実施形態において、本技術は、ニューラルネット及び/又は決定木モデルを含み、ニューラルネット及び/又は決定木モデルは、(例えばトレーニングセットを評価することによって、及び/又は機械学習を使用することによって、決定されるように)ソフトウェアテストの失敗の原因である属性の可能性に応じて、属性及び/又は属性グループに割り当てるための重みを学習する。その上、いくつかの実施形態において、ニューラルネット及び/又は決定木モデルは、例えば、空間又は時間における失敗したアクションに対するテストステップアクションの近さ、アクションのタイプ、要素のタイプ、失敗のタイプといったデータを使用し、属性及び/又は属性グループに重みを割り当てる。
いくつかの実施形態において、本技術は、ページ上の位置(例えばUI内の位置)の機能として要素属性の変更を評価する。いくつかの実施形態において、本技術は、時間の機能として(例えばUIバージョンの機能として)要素属性の変更を評価する。
いくつかの実施形態において、ビジュアルテストは、自動化される。いくつかの実施形態において、テストは、ニューラルネット及び/又は決定木モデル(例えば畳み込みニューラルネット)の使用を含む。いくつかの実施形態において、本技術は、ウェブページが正しくレンダリングされたかどうかを決定することを含む。したがって、本明細書で提供される本技術の実施形態は、例えば静的要素と動的要素とを区別すること、ページ要素(例えばリンク、ボタン、ポップダウンなど)を特定すること、マークアップに入れ子にされた画像を検出することなど、そのビジュアル的な意味を評価することによって、ウェブページレンダリングを評価する。いくつかの実施形態において、本技術は、デザインの幅、デザインの構成要素(例えばフォント)、低レベルブラウザ及び/又はバージョンレンダリングバリエーション、レスポンシブデザインによって駆動される動的レイアウト変更、並びに任意のページ複雑性のためのテスト技術を提供する。本技術は、何十、何百、何千、又はそれ以上のページ、任意選択で複数の言語、を含む頻繁なリリース(例えばウェブサイト及び/又はウェブアプリケーションの新しいバージョンを提供すること)をテストする自動化されたテストを提供する。
いくつかの実施形態において、本技術は、ルールエンジンの使用を含む。いくつかの実施形態において、ルールエンジンは、入力基準を受け入れ、入力基準がルールエンジンのルールと一致するかどうかを決定し、入力基準と一致するルールのアクションを実行する。したがって、いくつかの実施形態において、ルールエンジンは、失敗したテストからのデータを分析及び評価し、テストをどのように修正するかについての提案を提供する構造化された方法を提供する。いくつかの実施形態において、ルールエンジンのルールは、ルール構文言語(例えば「if-then」又は「if-then-else」ロジックとして)で符号化される。したがって、いくつかの実施形態において、ルールエンジンがルール及び提案を含む。
いくつかの実施形態において、本明細書で提供される本技術は、例えば人工知能を使用して、ソフトウェアアプリケーション(例えばウェブアプリケーション)における失敗を特定することに関する。例えばいくつかのウェブベースの技術は、ウェブアプリケーション環境のベースURLでウェブページをロードすることによって、典型的にそのクロールを開始するリンククローラの使用を含む。そのベースページに関する情報(例えばスクリーンショット、ロード時間、エラー情報などを含む)を収集した後、クローラは、ページ上の一つ以上の要素と対話し、例えばそのページ上の最初のハイパーリンクをクリックし、結果を検査することによって、更なるアクションを行うだろう。ハイパーリンクが提供されたベースURLのドメイン内にある場合、クローラは、ページを訪れ、(例えばスクリーンショット、ロード時間、エラー情報などを含む)ベースページに関する情報を収集したのと同じ方法によってリンクされたページに関する情報を収集する。ベースページ上で特定された更なるリンクとその後に訪れたページは、同じ方法で訪問される。本技術は、各ページについて収集される情報を制限するものではなく、例えば本明細書に記載するウェブアプリケーション、スクリーンショット、メタデータ、要素、要素属性、及び/又はグラフィカルモデルデータのいずれかを含む。
いくつかの実施形態において、本技術は、例えば人工知能を使用して、ソフトウェア失敗及び/又はソフトウェアテストケースの自律的な修復(例えば、補正、修正など)に関する。例えば、本明細書で説明するように、(例えばソフトウェアテストによって特定される)ソフトウェア失敗の根本原因は、場合によっては複数の解決方法を用いて解決することができる。例えば正しい解決方法がすぐには明らかにならない場合、本技術は、利用可能な提案された解決方法のそれぞれを使用してソフトウェアテストを自動的に再実行する自己修復機能を提供する。しかしながら、自動化されたテストにおけるテスト失敗のデバッグは、多くの場合、テストのスクリプト化又は記録、失敗するまでの実行、失敗の特定、テストスクリプトの更新、及び再実行の試行が必要になる。多くの場合、このプロセスは、テストが作業する前に繰り返し繰り返される。その後のアプリケーションの変更は、テストを中断させる可能性があり、プロセス全体を繰り返す必要がある。
いくつかの実施形態において、本明細書で提供される本技術は、一つ以上の専用コンピューティングデバイスによって実施される。いくつかの実施形態において、専用コンピューティングデバイスは、本技術の実施形態を実行するために回路設計され、いくつかの実施形態において、ハードウェアは、本技術の実施形態を実行するように永続的にプログラムされる一つ以上の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)といったデジタル電子デバイスを含む。いくつかの実施形態において、ハードウェアは、ファームウェア、メモリ、他の記憶装置、又はその組み合わせにおけるプログラム命令に基づいた本技術の実施形態を実行するようにプログラムされた一つ以上の汎用ハードウェアプロセッサを含む。いくつかの実施形態において、専用コンピューティングデバイスは、カスタムに回路設計されたロジック、ASIC、及び/又はフィールドプログラマブルゲートアレイ、並びに本技術の実施形態を達成するためのカスタムプログラミングの使用を含む。いくつかの実施形態において、専用のコンピューティングデバイスは、例えば、デスクトップPCシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーキングデバイス、又は本技術を実装するために回路設計された及び/又はプログラムロジックを組み込んだ他の任意のデバイスである。
いくつかの実施形態において、本技術は、ウェブアプリケーションの失敗したソフトウェアテストの根本原因(例えばステップ、アクション、要素)を特定するための方法に関する(例えば図3を参照して欲しい)。いくつかの実施形態において、方法は、ウェブアプリケーション(例えば一つ以上の要素を含む)を提供することを含む。いくつかの実施形態において、方法は、ウェブアプリケーションとの一つ以上のユーザ対話(例えばウェブアプリケーションの要素と対話するユーザのアクション)を模倣する一連のテストアクションを提供することを含む。いくつかの実施形態において、スクリプトは、一連のテスト動作を一連のステップとして提供する。いくつかの実施形態において、方法は、ウェブアプリケーションと、ステップがウェブアプリケーション(例えばトレーニングセット)上で実行されるときにウェブアプリケーションの成功したテストをもたらす一連のステップを含むスクリプトとを提供することを含む。いくつかの実施形態において、方法は、ウェブアプリケーションのテストに成功する複数(例えば1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、30、40、50、60、70、80、90、100、又はそれ以上)のスクリプトを提供することを含む。いくつかの実施形態において、方法は、ウェブアプリケーションのソフトウェアテストが失敗したことを決定することを含む。いくつかの実施形態において、方法は、テストが失敗したソフトウェアテストのステップを特定することを含む。いくつかの実施形態において、方法は、テストが失敗したソフトウェアテストのステップのアクションを特定することを含む。いくつかの実施形態において、方法は、失敗したソフトウェアテストを特定及び/又は検出することと、機械学習を使用して、各テストアクションが失敗したテストの根本原因である可能性に従ってテストアクションをランク付けすることとを含む。
いくつかの実施形態は、ウェブアプリケーションの失敗したソフトウェアテストの根本原因(例えばステップ、アクション、要素)を特定するためのシステムに関する(例えば図3を参照して欲しい)。いくつかの実施形態において、システムは、スクリプト(例えばテストアクションを含む)を含む。いくつかの実施形態において、システムは、スクリプトを実行し、ウェブアプリケーション(例えばウェブアプリケーションのUI)上でテストアクションを実行する構成要素を含む。いくつかの実施形態において、システムは、トレーニングセットを含む。いくつかの実施形態において、システムは、複数のスクリプト、ウェブアプリケーションの複数のバージョン、及び/又は複数のトレーニングセットを含む。いくつかの実施形態において、トレーニングセットは、ウェブアプリケーション、テストスクリプト、及びウェブアプリケーション上で実行されるテストスクリプトのテスト結果を含む。いくつかの実施形態において、システムは、各テスト動作がテスト失敗の根本原因である可能性に従ってテスト動作をランク付けするための構成要素を含む。いくつかの実施形態において、テスト失敗の根本原因である各テスト動作の可能性に従ってテスト動作をランク付けするための構成要素は、機械学習の構成要素である。いくつかの実施形態において、機械学習の構成要素は、ニューラルネットを含む。いくつかの実施形態において、システムは、ウェブアプリケーションUIのグラフィカルモデルを含む。いくつかの実施形態において、システムは、ウェブアプリケーションUIの異なるバージョンの複数のグラフィカルモデルを含む。いくつかの実施形態において、一つ以上のグラフィカルモデルは、機械学習を用いて評価され、各テストアクションがテスト失敗の根本原因である可能性を提供する。いくつかの実施形態において、テスト失敗の根本原因である各テストアクションの可能性に従ってテストアクションをランク付けするための機械学習の構成要素がテスト不合格の根本原因である各テストアクションの可能性に従ってランク付けされるテストアクションのリストを生成する。いくつかの実施形態において、システムは、機械学習の提案サービスを提供するように構成された構成要素を含む。いくつかの実施形態において、システムは、ルールエンジンを含む。いくつかの実施形態において、システムは、提案マネージャを含む。いくつかの実施形態において、システムは、提案マネージャによって生成された、マージされフィルタリングされた提案を含む。
〔実施例1-テキストボックス検出〕
本明細書で提供される本技術の実施形態の開発の間、テキストボックス検出のための方法及びシステムをテストするために(例えばウェブアプリケーションUI上のテキストボックスを検出するために)、実験が行われた。図5に示すように、ウェブアプリケーションは、テンプレート検証システムのテキストボックス検出の構成要素に提供された。テキストボックス検出の構成要素の機械学習及び/又は深層学習(ニューラルネットワークなど)は、入力ウェブアプリケーション(ウェブアプリケーションのUIなど)を分析する。テキストボックス検出の構成要素は、UI上のテキストボックスの位置及び寸法を含む出力を生成する。
本明細書で提供される本技術の実施形態の開発の間、(例えばウェブアプリケーションUI上の要素を検出するために)要素検出のための方法及びシステムをテストするための実験が行われた。図7に示すように、ウェブアプリケーションは、テンプレート検証システムのテキストボックス検出の構成要素に提供された。テキストボックス検出の構成要素の機械学習及び/又は深層学習(ニューラルネットワークなど)は、入力ウェブアプリケーション(ウェブアプリケーションのUIなど)を分析する。テキストボックス検出の構成要素は、UI上のテキストボックスの位置及び寸法を含む出力を生成し、その出力を要素検出の構成要素に提供する。要素検出の構成要素グループは、非テキストボックスオブジェクトを検出し、各テキストボックスをベクトルu=(x、y、w、h)として定義することにより、テキストボックスをグループ化する。x及びyは、文書スクリーンショット又はビューポート内のピクセル位置を表す。w及びhは、ボックスの幅と高さを表し、テキストボックス間の距離を決定し、密度ベースのクラスタリングを実行して、テキストボックスをテキストボックスのクラスタにグループ化する。例えば、テキストボックス検出の構成要素は、テキスト「アマゾン(amazon)」を含む第1のテキストボックスを特定し、テキスト「プライム(prime)」を含む第2のテキストボックスを特定した。要素検出の構成要素は、距離計算及びクラスタリングを実行して、「アマゾン(amazon)」テキストボックス及び「プライム(prime)」テキストボックスの両方を含むテキストボックスクラスタリングを生成した。例えば図7を参照して欲しい。同様に、他のテキストボックスは、要素検出の構成要素によってグループ化され、出力された。
本明細書で提供される本技術の実施形態の開発の間、(例えばウェブアプリケーションUI上の非テキストオブジェクトを検出するために)オブジェクト検出のための方法及びシステムをテストするための実験が行われた。図8に示すように、ウェブアプリケーションUIは、テンプレート検証システムのオブジェクト検出の構成要素に提供された。オブジェクト検出の構成要素の機械学習及び/又は深層学習(例えばニューラルネット)はアイコンのトレーニングセット(例えばカートアイコン、矢印アイコン、オープンファイルアイコン、セーブファイルアイコン、ログインアイコン、チェックアイコン、箇条書きアイコン、及びクローズアイコン)を使用してトレーニングされていた。オブジェクト検出の構成要素は、UI上のオブジェクトの位置及び寸法を含む出力を生成する。図8を参照されたい。オブジェクト検出の構成要素は、UI上のオブジェクトの位置及び/又は寸法を特定する。
本明細書に記載の技術の実施形態の開発の間、要素及び/又は要素属性の分布を評価し、ページ全体及び/又は時間によって、要素及び/又は要素属性の分布の確率を決定するシステム及び方法をテストするために実験を行った。要素に使用された背景色の頻度は、2019年6月25日(バージョン1)及び2019年7月20日(バージョン2)のページについて記録された。図9Aを参照されたい。図9Aにおいて、色の頻度(左の列)は、右の列に与えられている。属性分布(例えば色の頻度)を使用して、バージョン間の要素間の確率的関連付けを生成した(例えば図9Aの%を用いて要素を関連付ける矢印を参照されたい)。本明細書に記載の本技術は、バージョン2には存在しなかったバージョン1の色219、219、219を有する要素を特定した。本技術は、色254、249、219を有するバージョン2上の関連する要素を特定した。図9Aに示すように、確率的関連は、90%であった。したがって、本技術は、色219、219、219を有するバージョン1の要素が色254、249、219を有する要素に変更された確率(例えば高い確率)(例えばその要素の色属性がバージョン1からバージョン2に変更された確率)を算出した。ページバージョンの後続の分析において、ソフトウェアは、その新しい色254、249、219を使用することによって、部品の要素を特定した。本技術は、ユーザに変更を警告した。全ての要素及び全ての要素の全ての属性について分析を繰り返した。いくつかの実施形態において、本技術は、例えばテンソルを使用して、より高次元の要素及び/又は要素属性の特定及び評価を実行することを含む。同様の実験において、15ピクセルから5ピクセルに変更する高さ属性を持つ要素が特定された。図9Bを参照して欲しい。図9Bは、列1内にある特定の色を有し、列2~7内の要素について0、1、5、10、13、及び15画素の高さの分布を有する要素を示す。属性分布(例えば、高さの頻度)を使用して、バージョン間の要素間の確率的関連付けを生成した。確率的関連付けは、変更した高さを有する要素を特定するために使用された。
更に、追加の実験において、本技術は、二つの異なるページ上の要素の幅の分布を決定した。図9Cを参照して欲しい。いくつかの実施形態において、UIの第1のページ又は第1のバージョンの幅の第1の分布が決定され、UIの第2のページ又は第2のバージョンの幅の第2の分布が決定される。属性分布(例えば、幅の頻度)を使用して、二つのページ間の要素間の確率的関連付けを生成した。本技術は、幅の分布又は任意の特定の要素属性を決定することに限定されない。したがって、本技術は、ページ又はUIのバージョンのための要素属性の分布を決定することを含む。いくつかの実施形態において、本技術は、UIの第1のページ又は第1のバージョンの要素属性の第1の分布を決定するステップと、UIの第2のページ又は第2のバージョンの要素属性の第2の分布を決定するステップと、UIの第1のページ又はバージョンの要素とUIの第2のページ又はバージョンの要素との間の確率的関連付けを割り当てるステップとを含む。上述した実験は色、幅、及び高さの分布の使用を記載しているが、本技術は、一つのページ又はUIバージョン上の要素を第2のページ又はUIバージョンに関連付けるために、任意の要素属性の分布を生成及び評価することを含む。
上記明細書に記載された全ての刊行物及び特許は、全ての目的のためにその全体が参照により本明細書に組み込まれる。記載された構成要素、方法、及び技術の使用の種々の改変及びバリエーションは、記載された技術の範囲及び精神から逸脱することなく、当業者に明らかである。本技術は、特定の例示的な実施形態に関連して説明されてきたが、クレームされる本発明は、そのような特定の実施形態に過度に限定されるべきではないことを理解されたい。実際に、当業者に明らかな、本発明を実施するための記載されたモードの種々の改変は、以下の特許請求の範囲内であることが意図される。
Claims (31)
- ユーザインターフェースを含むウェブアプリケーションの失敗したソフトウェアテストの根本原因を特定するための方法であって、前記方法は、
ユーザインターフェースを含むウェブアプリケーションを提供するステップ、
各テストステップは、前記ユーザインターフェースの要素上で行われるアクションを含む一連のテストステップを含むスクリプトを提供するステップで、
前記ウェブアプリケーション上で前記スクリプトを実行するステップ、
失敗したソフトウェアテストが失敗を報告する前記スクリプトのエラーステップを特定するステップ、
コンピュータビジョンを用いて、前記ユーザインターフェースの第1のバージョンの第1の要素を特定し、前記第1の要素の各要素に要素属性を決定するステップ、
コンピュータビジョンを用いて、前記ユーザインターフェースの第2のバージョンの第2の要素を特定し、前記第2の要素の各要素に要素属性を決定するステップ、
前記第1の要素の各要素のための前記要素属性を前記第2の要素の各要素のための前記要素属性と比較するステップにより、前記ユーザインターフェースの前記第1のバージョンと前記ユーザインターフェースの前記第2のバージョンとの間の差を特定するステップ、
トレーニングされた確率論的モデルを生成するために、前記差を使用する確率論的モデルをトレーニングするステップ、
各テストステップ及び/又は前記ユーザインターフェースの各要素に、各テストステップ及び/又は各要素が前記失敗したソフトウェアテストの根本原因である可能性を割り当てるステップ、並びに
各提案されたテストステップ及び/又は要素が前記失敗したソフトウェアテストの前記根本原因である可能性によってランク付けされた、提案されたテストステップ及び/又は要素のリストを生成するステップ、
を含む、方法。 - 前記提案されたテストステップは、前記エラーステップに先行する、請求項1に記載の方法。
- コンピュータビジョンを用いることは、テキストボックスを検出すること、文字を認識すること、要素を検出すること、オブジェクトを検出すること、及び/又はレイアウトを検出することを含む、請求項1に記載の方法。
- 前記トレーニングするステップは、前記ユーザインターフェースの1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、又はそれ以上のバージョンを比較することにより、特定される差を入力として受信するステップを含む、請求項1に記載の方法。
- 前記ユーザインターフェースの前記第1のバージョンと前記ユーザインターフェースの前記第2のバージョンとの間の差を特定するステップは、前記ユーザインターフェースの前記第1のバージョンの第1のグラフィカル及び/又は属性モデルを、前記ユーザインターフェースの前記第2のバージョンの第2のグラフィカル及び/又は属性モデルと比較して、確率論的グラフィカル及び/又は属性モデルを生成するステップを含む、請求項1に記載の方法。
- 前記トレーニングは、属性カテゴリ、要素、及び/又はテストステップに、重み付けされたスコアを割り当てるステップを含む、請求項1に記載の方法。
- 前記割り当てるステップは、各テストステップ及び/又は各要素が前記失敗したソフトウェアテストの根本原因である前記可能性を決定するために、前記確率論的モデルを評価するステップを含む、請求項1に記載の方法。
- 前記トレーニングは、機械学習を用いることを含む、請求項1に記載の方法。
- 前記トレーニングは、ニューラルネットを用いることを含む、請求項1に記載の方法。
- 前記第1の要素の各要素の要素属性を決定するステップ、及び/又は前記第2の要素の各要素の要素属性を決定するステップは、前記第1の要素の各要素に関連付けられたソースコードを分析するステップ、及び/又は前記第2の要素の各要素に関連付けられたソースコードを分析するステップを含む、請求項1に記載の方法。
- 前記根本原因を訂正するための提案された訂正を提供するために、各提案されたテストステップ及び/又は要素は、ルールエンジンによって評価される、請求項1に記載の方法。
- 失敗したテストステップを含む、失敗したソフトウェアテストケース構成を訂正するための方法であって、前記方法は、
失敗したテストステップの各候補が失敗したソフトウェアテストの根本原因である可能性によってランク付けされた、失敗したテストステップの候補のリストを受信するステップ、
失敗したテストステップの各候補のための複数の試行テストケース構成を生成するために、失敗したテストステップの候補のリストの失敗したテストステップの各候補を、マルコフ決定プロセスに提供するステップ、
失敗したテストステップの各候補のための各試行テストケース構成を実行するステップ、
成功するソフトウェアテストを特定するステップ、
前記成功するソフトウェアテストを生成した試行テストケース構成を特定するステップ、
前記失敗したソフトウェアテストケースに関連する前記試行テストケース内の差を特定するために、前記失敗したソフトウェアテストケース構成と、前記成功するソフトウェアテストを生成した前記試行テストケース構成を比較するステップ、
失敗したステップを訂正されたステップに置き換えることによって、前記失敗したソフトウェアテストケース構成を訂正するステップであって、前記訂正されたステップは、前記失敗したソフトウェアテストケースに関係する前記試行テストケース内の前記差を実装するステップと、
を含む、方法。 - 前記実行するステップは、失敗したテストステップの各候補のための各試行テストケース構成を並列に実行するステップを含む、請求項12に記載の方法。
- 失敗したテストステップの候補の前記リストは、
ユーザインターフェースを含むウェブアプリケーションを提供するステップ、
一連のテストステップを含むスクリプトを含むソフトウェアテストケース構成を提供するステップであって、各テストステップは、前記ユーザインターフェースの要素上で行われるアクションを含み、
前記ウェブアプリケーション上で前記スクリプトを実行するステップ、及び
失敗したテストステップの各候補が前記失敗したソフトウェアテストの前記根本原因である可能性によってランク付けされた失敗したテストステップの候補の前記リストを生成するステップ、
を含む方法によって生成される、請求項12に記載の方法。 - 失敗したテストステップの候補の前記リストを生成するステップは、
コンピュータビジョンを用いて、前記ユーザインターフェースの第1のバージョンの第1の要素を特定し、前記第1の要素の各要素の要素属性を決定するステップ、
コンピュータビジョンを用いて、前記ユーザインターフェースの第2のバージョンの第2の要素を特定し、前記第2の要素の各要素の要素属性を決定するステップ、
前記第1の要素の各要素のための前記要素属性を、前記第2の要素の各要素のための前記要素属性と比較することにより、前記ユーザインターフェースの前記第1のバージョンと前記ユーザインターフェースの前記第2のバージョンとの間の差を特定するステップ、
トレーニングされた確率論的モデルを生成するために、前記差を用いて確率論的モデルをトレーニングするステップ、及び
各テストステップ及び/又は前記ユーザインターフェースの各要素に、各テストステップ及び/又は各要素が前記失敗したソフトウェアテストの根本原因である前記可能性を割り当てるステップ、
を含む、請求項14に記載の方法。 - ユーザインターフェースを含むウェブアプリケーションにおける失敗を自律的に特定するための方法であって、前記方法は、
前記ユーザインターフェースの要素を特定するために、ウェブアプリケーションユーザインターフェースを分析するステップ、
1つ又は複数の要素機能を特定するために、ウェブアプリケーションのソースコードを分析するステップ、
要素-機能の関連付けを生成するために、要素機能を前記ユーザインターフェースの要素に関連付けるステップ、
ニューラルネットワークをトレーニングするためにウェブアプリケーションユーザインターフェースの形状、テキスト、及び画像を入力するステップ、
前記ウェブアプリケーションにおいて失敗を生成する前記ウェブアプリケーションユーザインターフェースにおける異常を特定するために、前記要素、複数の要素機能、及び要素-機能の関連付けを前記トレーニングされたニューラルネットワークに入力するステップ、
を含む、方法。 - 前記ユーザインターフェースの要素を特定するためにウェブアプリケーションユーザインターフェースを分析するステップは、コンピュータビジョンの使用を含む、請求項16に記載の方法。
- 複数の要素機能を特定するためにウェブアプリケーションのソースコードを分析するステップは、自然言語処理の使用を含む、請求項16に記載の方法。
- ウェブアプリケーションユーザインターフェースを提供するために並列ウェブクローラを提供するステップを更に含む、請求項16に記載の方法。
- 前記ウェブアプリケーションの複数のウェブアプリケーションユーザインターフェースを提供するために、並列ウェブクローラを提供するステップを更に含む、請求項16に記載の方法。
- 前記方法は、ウェブアプリケーションユーザインタフェースを検証するために、テストスクリプトの各ステップについて行われる、請求項16に記載の方法。
- ウェブアプリケーションユーザインターフェースの新しい要素である要素を特定するための方法であって、前記方法は、
ユーザインターフェースを含むウェブアプリケーションを提供するステップ、
各テストステップは、前記ユーザインターフェースの要素上で行われるアクションを含む一連のテストステップを含むスクリプトを提供するステップ、
前記ウェブアプリケーション上で前記スクリプトを実行するステップ、
失敗したソフトウェアテストが失敗を報告する前記スクリプトのエラーステップを特定するステップ、及び
各提案された要素が前記ユーザインターフェースの新しい要素である、及び/又は変更された要素属性が要素機能に関連する可能性によってランク付けされた提案された要素のリストを生成するステップ、
を含む、方法。 - 前記生成するステップは、
コンピュータビジョンを用いて、前記ユーザインターフェースの第1のバージョンの第1の要素を特定し、前記第1の要素の各要素の要素属性を決定するステップ、
コンピュータビジョンを用いて、前記ユーザインターフェースの第2のバージョンの第2の要素を特定し、前記第2の要素の各要素の要素属性を決定するステップ、
前記第1の要素の各要素についての前記要素属性と前記第2の要素の各要素についての前記要素属性を比較することにより、前記ユーザインターフェースの前記第1のバージョンと前記ユーザインターフェースの前記第2のバージョンとの間の差を特定するステップ、
トレーニングされた確率論的モデルを生成するために、前記差を用いて確率論的モデルをトレーニングするステップ、及び
各要素が前記ユーザインターフェースの新しい要素であること、及び/又は変更された要素属性が要素機能に関連することの前記可能性を、前記ユーザインターフェースの各要素に割り当てるステップ、
を含む、請求項22に記載の方法。 - 前記トレーニングされた確率論的モデルは、前記ユーザインターフェースの前記第1のバージョンと前記ユーザインターフェースの前記第2のバージョンとの間の差を、以下の 1)ソフトウェアテストの失敗の根本原因、
2)新しいユーザインターフェース要素、又は
3)要素機能に関連する要素属性における変更、
として分類する、請求項23に記載の方法。 - 新しいウェブアプリケーションユーザインターフェース要素、又はウェブアプリケーションユーザインターフェース要素の変更された属性を説明するために、テストスクリプトの前記エラーステップを訂正するステップを更に含む、請求項23に記載の方法。
- ウェブアプリケーションユーザインターフェースが新しい要素を含むこと、又はユーザインターフェース要素の属性が変更されたことを、ユーザに警告するステップを更に含む、請求項23に記載の方法。
- ウェブアプリケーションユーザインタフェースが新しい要素を含むこと、又はユーザインターフェース要素の属性が変更されたことのユーザ確認を受信するステップを、更に含む、請求項26に記載の方法。
- 請求項1に記載の方法を行うように構成されたシステム。
- 請求項12に記載の方法を行うように構成されたシステム。
- 請求項16に記載の方法を行うように構成されたシステム。
- 請求項22に記載の方法を行うように構成されたシステム。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862740409P | 2018-10-02 | 2018-10-02 | |
US62/740,409 | 2018-10-02 | ||
US201862749490P | 2018-10-23 | 2018-10-23 | |
US201862749533P | 2018-10-23 | 2018-10-23 | |
US62/749,533 | 2018-10-23 | ||
US62/749,490 | 2018-10-23 | ||
PCT/US2019/054366 WO2020072701A1 (en) | 2018-10-02 | 2019-10-02 | Software testing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022514155A JP2022514155A (ja) | 2022-02-10 |
JP7398068B2 true JP7398068B2 (ja) | 2023-12-14 |
Family
ID=70055477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021518903A Active JP7398068B2 (ja) | 2018-10-02 | 2019-10-02 | ソフトウェアテスト |
Country Status (9)
Country | Link |
---|---|
US (1) | US11645139B2 (ja) |
EP (1) | EP3861437A4 (ja) |
JP (1) | JP7398068B2 (ja) |
KR (1) | KR20210100600A (ja) |
CN (1) | CN113168339A (ja) |
AU (1) | AU2019355933B2 (ja) |
CA (1) | CA3114899A1 (ja) |
IL (1) | IL281921A (ja) |
WO (1) | WO2020072701A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2019355933B2 (en) | 2018-10-02 | 2024-04-18 | Functionize, Inc. | Software testing |
US20200225927A1 (en) * | 2018-11-02 | 2020-07-16 | Nilesh Pachpande | Methods and systems for automating computer application tasks using application guides, markups and computer vision |
US10984066B2 (en) * | 2019-01-02 | 2021-04-20 | Zyte Group Limited | System and method for a web scraping tool and classification engine |
US11909100B2 (en) | 2019-01-31 | 2024-02-20 | Userzoom Technologies, Inc. | Systems and methods for the analysis of user experience testing with AI acceleration |
US11106525B2 (en) * | 2019-02-04 | 2021-08-31 | Servicenow, Inc. | Systems and methods for classifying and predicting the cause of information technology incidents using machine learning |
JP7211229B2 (ja) * | 2019-04-10 | 2023-01-24 | 日本電信電話株式会社 | 入力値設定補助装置、入力値設定補助方法及びプログラム |
WO2021030636A1 (en) * | 2019-08-15 | 2021-02-18 | Userzoom Technologies, Inc. | Systems and methods for the analysis of user experience testing with ai acceleration |
US20210056395A1 (en) * | 2019-08-22 | 2021-02-25 | TestCraft Technologies LTD. | Automatic testing of web pages using an artificial intelligence engine |
US20210136059A1 (en) * | 2019-11-05 | 2021-05-06 | Salesforce.Com, Inc. | Monitoring resource utilization of an online system based on browser attributes collected for a session |
EP3889777A1 (en) * | 2020-03-31 | 2021-10-06 | Accenture Global Solutions Limited | System and method for automating fault detection in multi-tenant environments |
US12013776B2 (en) * | 2020-04-03 | 2024-06-18 | International Business Machines Corporation | Intelligent application scenario testing and error detection |
US11308213B2 (en) * | 2020-04-14 | 2022-04-19 | Sap Se | Dynamic generation of automation tags |
US11546277B2 (en) * | 2020-09-09 | 2023-01-03 | Snap Inc. | Third-party resource coordination |
US11994976B2 (en) | 2020-10-26 | 2024-05-28 | Capital One Services, Llc | Methods, systems, and media for a microservices orchestration engine |
US11789852B2 (en) * | 2020-10-26 | 2023-10-17 | Capital One Services, Llc | Generating test accounts in a code-testing environment |
CN112965897B (zh) * | 2021-02-19 | 2022-07-05 | 浙江理工大学 | 一种基于mRMR算法挑选可疑度公式的程序错误定位方法 |
US11656977B2 (en) * | 2021-04-06 | 2023-05-23 | EMC IP Holding Company LLC | Automated code checking |
JP2023005300A (ja) * | 2021-06-28 | 2023-01-18 | 日立Astemo株式会社 | 解析装置、解析方法 |
WO2023078742A1 (en) * | 2021-11-05 | 2023-05-11 | Orange | Automated maintenance of an object repository file for automation testing |
CN114579025A (zh) * | 2022-03-02 | 2022-06-03 | 深圳前海环融联易信息科技服务有限公司 | 一种基于css选择器的ie浏览器元素定位方法 |
US20230350654A1 (en) * | 2022-04-28 | 2023-11-02 | Bank Of America Corporation | Systems and methods for convolutional neural network object detection and code repair |
US20230377309A1 (en) * | 2022-05-17 | 2023-11-23 | Fmr Llc | Methods and systems for automated cross-browser user interface testing |
CN116048682A (zh) * | 2022-08-02 | 2023-05-02 | 荣耀终端有限公司 | 一种终端***界面布局对比方法及电子设备 |
KR102614650B1 (ko) * | 2022-11-28 | 2023-12-19 | 쿠팡 주식회사 | 전자 장치 및 그의 api 관리 방법 |
KR102617002B1 (ko) * | 2022-11-28 | 2023-12-27 | 쿠팡 주식회사 | 애플리케이션의 성능을 측정하는 장치 및 방법 |
KR102669784B1 (ko) * | 2023-09-27 | 2024-05-28 | 오케스트로 주식회사 | 이종 가상화 환경에서의 근본원인 분석 시스템 및 근본원인 분석 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000112784A (ja) | 1998-09-30 | 2000-04-21 | Hitachi Software Eng Co Ltd | プログラムテスト支援装置及びプログラムテスト支援プログラムを記録した記録媒体 |
JP2016033716A (ja) | 2014-07-31 | 2016-03-10 | 日本電気株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP2017102912A (ja) | 2015-12-02 | 2017-06-08 | 富士通株式会社 | 機械学習ベースのソフトウェアプログラム修復 |
JP2018116496A (ja) | 2017-01-18 | 2018-07-26 | 日本電信電話株式会社 | 差異検出装置及びプログラム |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040260678A1 (en) * | 2003-06-18 | 2004-12-23 | Microsoft Corporation | State based configuration failure detection using checkpoint comparison |
US8365147B2 (en) * | 2008-02-27 | 2013-01-29 | Accenture Global Services Limited | Test script transformation architecture |
US8943478B2 (en) | 2009-07-14 | 2015-01-27 | International Business Machines Corporation | Fault detection and localization in dynamic software applications |
US8266091B1 (en) * | 2009-07-21 | 2012-09-11 | Symantec Corporation | Systems and methods for emulating the behavior of a user in a computer-human interaction environment |
US20110320228A1 (en) * | 2010-06-24 | 2011-12-29 | Bmc Software, Inc. | Automated Generation of Markov Chains for Use in Information Technology |
US8782606B1 (en) * | 2010-08-22 | 2014-07-15 | Panaya Ltd. | Method and system for identifying non-executable human-readable test scenarios to be updated due to code changes |
WO2012088623A1 (en) | 2010-12-27 | 2012-07-05 | Yahoo! Inc. | Selecting advertisements for placement on related web pages |
US9396094B2 (en) * | 2011-07-21 | 2016-07-19 | International Business Machines Corporation | Software test automation systems and methods |
US9003234B2 (en) * | 2013-03-08 | 2015-04-07 | Infineon Technologies Ag | Machine and methods for reassign positions of a software program based on a fail/pass performance |
US9424167B2 (en) | 2014-05-21 | 2016-08-23 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
US10474565B2 (en) * | 2015-01-16 | 2019-11-12 | Micro Focus Llc | Root cause analysis of non-deterministic tests |
US9959199B2 (en) * | 2015-06-17 | 2018-05-01 | Oracle International Corporation | Diagnosis of test failures in software programs |
US9507700B1 (en) * | 2015-12-22 | 2016-11-29 | Sap Se | Generic method for automated software testing |
US10838849B2 (en) * | 2016-03-08 | 2020-11-17 | International Business Machines Corporation | Analyzing software test failures using natural language processing and machine learning |
US9946629B2 (en) * | 2016-05-24 | 2018-04-17 | International Business Machines Corporation | System, method and apparatus for deriving root cause for software test failure |
US10552296B2 (en) * | 2017-10-20 | 2020-02-04 | Google Llc | Human-readable, language-independent stack trace summary generation |
US11599445B2 (en) * | 2018-06-15 | 2023-03-07 | Board Of Regents, The University Of Texas System | Watcher: precise and fully-automatic on-site failure diagnosis |
US11748245B2 (en) * | 2018-07-27 | 2023-09-05 | Oracle International Corporation | Object-oriented regression-candidate filter |
AU2019355933B2 (en) | 2018-10-02 | 2024-04-18 | Functionize, Inc. | Software testing |
-
2019
- 2019-10-02 AU AU2019355933A patent/AU2019355933B2/en active Active
- 2019-10-02 KR KR1020217013226A patent/KR20210100600A/ko unknown
- 2019-10-02 US US17/281,566 patent/US11645139B2/en active Active
- 2019-10-02 CN CN201980079602.1A patent/CN113168339A/zh active Pending
- 2019-10-02 JP JP2021518903A patent/JP7398068B2/ja active Active
- 2019-10-02 CA CA3114899A patent/CA3114899A1/en active Pending
- 2019-10-02 EP EP19869864.9A patent/EP3861437A4/en active Pending
- 2019-10-02 WO PCT/US2019/054366 patent/WO2020072701A1/en unknown
-
2021
- 2021-03-31 IL IL281921A patent/IL281921A/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000112784A (ja) | 1998-09-30 | 2000-04-21 | Hitachi Software Eng Co Ltd | プログラムテスト支援装置及びプログラムテスト支援プログラムを記録した記録媒体 |
JP2016033716A (ja) | 2014-07-31 | 2016-03-10 | 日本電気株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP2017102912A (ja) | 2015-12-02 | 2017-06-08 | 富士通株式会社 | 機械学習ベースのソフトウェアプログラム修復 |
JP2018116496A (ja) | 2017-01-18 | 2018-07-26 | 日本電信電話株式会社 | 差異検出装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
IL281921A (en) | 2021-05-31 |
CA3114899A1 (en) | 2020-04-09 |
AU2019355933B2 (en) | 2024-04-18 |
US20210390011A1 (en) | 2021-12-16 |
CN113168339A (zh) | 2021-07-23 |
WO2020072701A1 (en) | 2020-04-09 |
JP2022514155A (ja) | 2022-02-10 |
US11645139B2 (en) | 2023-05-09 |
EP3861437A1 (en) | 2021-08-11 |
EP3861437A4 (en) | 2022-09-28 |
AU2019355933A1 (en) | 2021-06-03 |
KR20210100600A (ko) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7398068B2 (ja) | ソフトウェアテスト | |
US20240177007A1 (en) | Software test case maintenance | |
US9424167B2 (en) | Automated testing of an application system | |
US10970097B2 (en) | Adaptive web-based robotic process automation | |
Grigera et al. | Automatic detection of usability smells in web applications | |
US11461689B2 (en) | Techniques for automatically testing/learning the behavior of a system under test (SUT) | |
US20180137424A1 (en) | Methods and systems for identifying gaps in predictive model ontology | |
JP7385740B2 (ja) | ユーザ入力を使用したgui要素の取得プロセスの改善 | |
US11221833B1 (en) | Automated object detection for user interface generation | |
US10365995B2 (en) | Composing future application tests including test action data | |
Yang et al. | UIS-hunter: Detecting UI design smells in Android apps | |
US20240086165A1 (en) | Systems and methods for building and deploying machine learning applications | |
US20230195825A1 (en) | Browser extension with automation testing support | |
WO2020055615A1 (en) | Ai software testing system and method | |
Walsh | Automatic Identification of Presentation Failures in Responsive Web Pages | |
US11790892B1 (en) | Voice-driven application prototyping using machine-learning techniques | |
Bajammal | Automated visual analysis of non-functional web app properties | |
Macklon et al. | A taxonomy of HTML5 canvas bugs | |
US20240184692A1 (en) | Software testing | |
Vesikkala | Visual regression testing for web applications | |
Leno | Robotic Process Mining: Accelerating the Adoption of Robotic Process Automation | |
Chuphal et al. | Benchmarking Deep Learning Testing Techniques A Methodology and Its Application | |
Chen et al. | Research on Page Object Generation Approach for Web Application Testing. | |
Watanabe et al. | Towards cross-browser incompatibilities detection: A systematic literature review | |
Xu | WebEvo: Taming Web Application Evolution Via Semantic Change Detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20220916 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220916 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230801 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231024 |
|
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: 20231031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231122 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7398068 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |