説明

ビジュアル比較方法

【課題】クロスブラウザテストを実行するときに、ビジュアル比較及びエラー予測を改善する方法を提供する。
【解決手段】第1の複数の画像対が評価され、エラーと見なすのに適格な視覚的な対的相違が検出される。視覚的な対的相違は、位置、大きさ、色又はスタイルのうちの少なくとも1つに関する違いとし得る。評価された視覚的な対的相違に基づいて予測エンジンが訓練される。第2の複数の画像対に関する情報が受信される。これらの画像対の各々は、クライアントティア環境において実行されたイベント・ドリブン・アプリケーションの視覚的なエンドユーザ体験画面の少なくとも一部を有する。予測エンジンを用いて、これらの画像対の各々が評価され、エラーと見なすのに適格な視覚的な対的相違が検出される。少なくとも1つの評価された対的相違がエラーと見なされるべきでなかったことを指し示すユーザフィードバックに基づいて予測エンジンが再訓練される。

【発明の詳細な説明】
【技術分野】
【0001】
この開示は、概して、異なる複数のクライアントティア(クライアント層)環境においてアクセスされるイベント・ドリブン・アプリケーションにおける相違を決定することに関する。
【背景技術】
【0002】
ウェブアプリケーションは、典型的なクライアント−サーバ計算モデルに従っており、大抵、幾つかのサーバ側コンポーネント及びクライアント側コンポーネントで構成される。サーバ側コンポーネントは、ウェブサーバが(典型的に、ウェブブラウザを介して遠隔ユーザから)リクエスト(要求)を受信するときに呼び出される。サーバ側での実行の結果として、様々なクライアント側コンポーネントが動的に生成され、HTML(ハイパーテキスト・マークアップ言語)ページの形態でウェブブラウザに送り返される。これらのページは、ブラウザによってレンダリングされるが、例えば画像、アニメーション、スタイル情報(例えば、カスケーディング・スタイル・シート(Cascading Style Sheets;CSS))及びスクリプト(例えば、ジャバスクリプト又はVBスクリプト)などのリソースを参照あるいは包含している。
【0003】
ウェブブラウザは、例えばクライアント側コンポーネントを処理すること及びこれらのコンポーネントのシステムリソース(例えば、ネットワーク、ディスプレイ、ファイルシステム)とのインタラクションを管理することなど、様々な機能を取り扱う異なる複数のサブシステムで構成される。ブラウザの一部サブシステムにおいて、主なコンポーネントのうちの1つはレイアウトエンジンであり、これは、ページ内のHTMLタグを解析し、且つそのページのCSSスタイルシートに含まれるスタイル情報を関連要素に適用することによって、ウェブページをレンダリングすることを担うものである。ブラウザはまた、ページに関連付けられたスクリプトがウェブページ要素に対してクエリー及び変更を行うことを可能にするため、そのメモリ内に、ウェブページの文書オブジェクトモデル(Document Object Model;DOM)を維持する。DOMフォーマットには標準定義が存在するが(http://www.w3.org/DOM/を参照)、ウェブブラウザはしばしば標準から逸脱する。また、大抵のウェブページは異なる複数のブラウザ及びプラットフォーム上で当該ページを正常機能させるためにブラウザに固有のコードを有するので、異なるブラウザによって生成されるDOMは非常に異なったものとなり得る。このため、異なる複数のウェブブラウザにおいて単純にDOMを比較することは、そのような複数のブラウザによってレンダリングされるウェブページを比較するときに理想的でないものになり得る。
【0004】
2つの画像を比較する基本技術は、それらのヒストグラムを比較することである。画像ヒストグラムは、その画像内の或る特定の特性の値の分布を表す。具体的には、画像のカラーヒストグラムは、その画像内の色の分布、すなわち、固定リスト内の複数の色範囲(瓶(bin))の各々に属する色を持つ画像内の画素の数を表す。明らかなように、2つの画像が同一であるとき、それらの色分布も合致することになる。その逆は真ではなく、2つの異なる画像が同じヒストグラムを有することがあり得るが、この問題は我々の問題領域には特に関係しない。
【0005】
基本的なヒストグラムマッチング技術は、2つの画像の対応し合う瓶間の差を見出すが、これは、小さいシフトの場合に誤判定(false-positive)を生じさせ得る。アースムーバーズ距離(Earth Mover’s Distance;EMD)の使用はこの問題を軽減し得る。EMDは、2つの分布の間の距離の大きさであり、直観的には、異なる瓶内の量をあちこち移動させることによって2つのヒストグラムを相等しくするのに必要な“仕事”の最小量からなる。画像内の小さい変化を無視することができるので、EMDはコンピュータ・ビジョンにおいて広く使用されている。同じ理由で、EMDは、複数のウェブブラウザの間でグラフィカルレンダリングを比較する問題(我々は、取るに足らない違いを問わずに、より大きい違い捕らえることができることを望んでいる)にとっても好ましいアプローチである。
【0006】
イベント・ドリブン・アプリケーションは典型的に、異なる複数のクライアントティア環境においてアクセスされ得る。しかしながら、多くの場合、第1のクライアントティア環境は、第2のクライアントティア環境とは異なった、イベント・ドリブン・アプリケーションのエンドユーザ体験をもたらし得る。このような種類の問題は決して珍しくない。何故なら、開発者は大抵、開発中は1つのブラウザを用い、その後、コードをその他のブラウザに移植する傾向にあるからである。最初から複数のブラウザが考慮される場合であっても、考え得る全てのブラウザ及びバージョンについてテストを行うことは困難である。また、そのようなテストは、大抵は手動で行われ、故に、極めて時間を消費する(そして、しばしば、おざなりにされる)ものである。実際、特定ブラウザに依存しないものにしようとするクロスブラウザ問題は、殆どのウェブアプリケーション開発者によって、主要な問題であると考えられている。
【0007】
レイアウト問題は、ウェブアプリケーションにおいて非常に一般的であり、複数のブラウザの間で、ウェブページをレンダリングすることにおいて、ユーザの目に見える違いをもたらす。これらの問題は、要素の位置、大きさ、視認性、又は外観における違いとして分類されることができる。位置及び大きさの違いは、読んで字の通りである。視認性の違いは、1つ以上のブラウザで視認できない要素からなる。最後に、要素のスタイル又はコンテンツがブラウザ間で異なるときを外観の違いとして定義することとする。
【0008】
機能性の問題は、ウェブアプリケーションの機能に関係し、しばしば、ウェブページ内のスクリプト要素を相異なるブラウザが実行する際のそれら手法間の相違に起因する。機能性問題は典型的に、例えばウィジェットなどの特定のウェブページ要素にユーザがアクセス可能なことを制限してしまう。ユーザは、その影響を受けた要素を実行しようとするときにこの問題を確認することになるが、これらの問題は、如何なる視覚的な影響も有しないことがあるので(例えば、ボタンが、正常に機能しないながらも、正しく表示されることがある)、確認が困難なときがある。
【0009】
不適合ブラウザ:クライアント側テクノロジは関連付けられた規格を有するが、それら規格は進化し続けている。故に、如何なる時点においても、仕様内ではあるが一部のブラウザには実装されていないか正しく実装されていないかの何れかである機能が存在する。これら問題となる機能は知られていることが多く、そのような機能のリストを維持管理して、ウェブ開発者がそれらを認識する助けとなり且つそれらのコードの好適な回避策を提供するウェブサイト(例えば、http://quirksmode.org)が存在する。図2のscript.jsスクリプトによって第6行で実行されるチェックが、1つのそのような回避策の典型例である。
【0010】
ブラウザの追加機能:多くのブラウザは、開発者により大きな柔軟性を提供するために、規格の一部でない追加機能を実装している。ウェブ開発者はこれらの機能を使用することを可能な限り避けようとはしているが、利便上それらを使用している。例えば、インターネットエクスプローラは、条件付きコメント、すなわち、コメントアウトされたコードが条件付きでインターネットエクスプローラにて実行されることを可能にするコメントをサポートしている。高品質のユーザ体験を確保するため、典型的にクロスブラウザテスト及び再帰テストが取り組まれている。しかしながら、多数のビジュアル比較を伴うそのようなテストを実行する従来手法は、時間を消費するのみならず、エラーが発生しやすいものである。
【発明の概要】
【発明が解決しようとする課題】
【0011】
開示の実施形態は、イベント・ドリブン・アプリケーションのクロスブラウザテスト及び/又は回帰テストを実行するときに、機械学習を利用して、ビジュアル比較及びエラー予測を改善する方法を提供する。
【課題を解決するための手段】
【0012】
一部の実施形態において、種々の要因が分析され、意味のあるエラーと見なすのに適格な対的相違(対を為す違い)が検出される。
【図面の簡単な説明】
【0013】
【図1】2つの異なるクライアントティア環境において実行されるときのイベント・ドリブン・アプリケーションの画面例を示す図である。
【図2】クロスブラウザテスト及び/又は回帰テストを実行するプロセスの概観を例示する図である。
【図3】ビジュアル比較及びエラー予測を改善するために機械学習を組み入れる一実施形態例の概観を示す図である。
【図4】ビジュアル比較及びエラー予測を改善するために機械学習を利用する方法の一例を示す図である。
【図5a】イベント・ドリブン・アプリケーション例に関して、様々なクライアントティア環境にて現れ得る典型的なエラーの例を示す図である。
【図5b】イベント・ドリブン・アプリケーション例に関して、様々なクライアントティア環境にて現れ得る典型的なエラーの例を示す図である。
【図6】エラー検出に使用され得るエラーの種類及び要因を記述するマトリクスの一例を示す図である。
【図7】図6のマトリクスに列挙される要因を計算するアルゴリズムの例を示す図である。
【図8】ここに開示される実施形態に関するシステムの一例を示す図である。
【図9】ここに開示される実施形態に関するコンピュータシステムを例示する図である。
【発明を実施するための形態】
【0014】
図1は、2つの異なるクライアントティア環境におけるイベント・ドリブン・アプリケーションの状態のエンドユーザ体験を表示する2つの画面例の比較を示しており、画面110は、ファイアフォックス(Firefox(登録商標))環境によってレンダリングされる画面を示し、画面120は、インターネットエクスプローラ(Internet Explorer(登録商標))環境によってレンダリングされる画面を示している。これら2つの画面の比較は、ビジュアル比較を必要とする4つの領域を指し示している。
【0015】
図2は、クロスブラウザテスト及び/又は回帰テストを実行するプロセスの概観を例示している。2つの画面例は、2つの異なるクライアントティア環境におけるイベント・ドリブン・アプリケーションの状態のエンドユーザ体験を表示している(Firefox(登録商標)環境210及びInternet Explorer(登録商標)環境220)。各々のエンドユーザ体験画面210、220から、画面の構造化表現(それぞれ、230、240)が抽出される。一部の実施形態において、画面の構造化表現は、文書オブジェクトモデル(DOM)ツリーを有し得る。各DOMツリーは複数のDOMノード又はDOM要素を有する。一部の実施形態において、各DOMノード又はDOM要素はHTMLタグを有する。
【0016】
構造化表現230及び240から、画面に関して、対応するノード対の組250が決定される。目標は、各対応ノード対を視覚的に比較することである。例えば、画面の構造化表現260が、Firefox(登録商標)環境230とInternet Explorer(登録商標)環境240との間で比較されるとき、各比較処理270が、ノード対を評価して、各ノードの画像が何らかの対を為す違い(対的相違)を表示しているかを決定する。
【0017】
図3は、ビジュアル比較及びエラー予測を改善するために機械学習を組み入れる一実施形態例の概観を示している。初期のトレーニングフェーズにおいて、複数のクライアントティア環境で実行される多数の訓練用ウェブアプリケーション310による画面からの画像が比較・評価され、各画像が各クライアントティア環境におけるエンドユーザ体験画面の少なくとも一部を表すものとして、それらの画像対間の対的相違が決定される。機械学習訓練モジュール320が、評価された対的相違に基づいて、予測エンジン330を訓練する。
【0018】
一部の実施形態において、予測エンジン330は、多数の相違特徴を計算あるいは評価するアルゴリズムを組み入れた決定木(デシジョンツリー)分類部に基づいて対的相違を分類する方法を学習する。
【0019】
テストフェーズにおいて、予測エンジン330を使用してウェブアプリケーション340がテストされ、それからエラーレポート350が生成される。エラーレポート350は、幾らかの数の誤判定エラーを含むことがあり、予測エンジン330を再訓練するために、誤判定エラーを検出するユーザフィードバック360が適用される。
【0020】
図4は、ビジュアル比較及びエラー予測を改善するために機械学習を利用する方法の一例を示している。ステップ410でトレーニングフェーズが開始し、訓練用の画像対を用いて予測エンジンが訓練される。訓練用画像対は、画像対間の対的相違を適格なエラー(又はそうではない)として分類することによって評価される(ステップ420)。ステップ430にて、予測エンジンが、機械学習技術及び様々な分類アルゴリズムを用いて、評価された対的相違から学習する。そして、ステップ440でテストフェーズが開始し、複数のクライアントティア環境において実行されたイベント・ドリブン・アプリケーションの状態を表すエンドユーザ体験画面からの画像が受信されて対を為すようにマッチングされる。ステップ450にて、予測エンジンを用いてマッチングされた画像対が評価されてエラー検出される。エラーのログの検査を受け、ユーザは、予測エンジンの補正及び再訓練(ステップ430)のためにフィードバックを送り得る(ステップ460)。
【0021】
図5a及び5bは、イベント・ドリブン・アプリケーション例に関して、様々なクライアントティア環境にて現れ得る典型的なエラーの例を示している。図5aのエラー例1に示されるように、一部のクライアントティア環境においては、そのクライアントティア環境におけるイベント・ドリブン・アプリケーションの挙動によって画像が隠されてしまい得る。
【0022】
図6は、エラー検出に使用され得るエラーの種類及び要因を記述するマトリクスの一例を示している。図6に示すように、画像、幾何学構成、及びDOM/ブラウザ環境という、3つの大範疇の要因群が評価され得る。これらの要因の様々な組み合わせを評価することで、位置、大きさ、スタイル、これらの組み合わせなどを含む複数の範疇のエラーが検出され得る。
【0023】
図7は、図6のマトリクスに列挙される要因を計算するアルゴリズムの例を示している。
【0024】
特定の実施形態は、ネットワーク環境内に実装され得る。図8は、ウェブベースのサービスとしてクロスブラウザ互換性チェックを提供するのに好適な、一例に係るネットワーク環境600を示している。ネットワーク環境600は、1つ以上のサーバ620と1つ以上のクライアント630とを相互に結合するネットワーク610を含んでいる。特定の実施形態において、ネットワーク610は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、若しくはその他のネットワーク、又は2つ以上のこれらネットワークの組み合わせである。この開示は、如何なる好適なネットワーク610をも意図している。
【0025】
1つ以上のリンク650が、サーバ620又はクライアント630をネットワーク610に結合する。特定の実施形態において、1つ以上のリンク650は各々、1つ以上の有線リンク、無線リンク、又は光リンクを含む。特定の実施形態において、1つ以上のリンク650は各々、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部、若しくはその他のリンク、又は2つ以上のこれらリンクの組み合わせを含む。この開示は、サーバ620及びクライアント630をネットワーク610に結合する如何なる好適なリンク650をも意図している。
【0026】
特定の実施形態において、各サーバ620は、単一のサーバであってもよいし、複数のコンピュータ又は複数のデータセンターに跨る分散サーバであってもよい。サーバ620は、例えば、限定ではなく、ウェブサーバ、ニュースサーバ、メイルサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、又はプロキシサーバなど、様々な種類のサーバとし得る。特定の実施形態において、各サーバ620は、そのサーバ620によって実現あるいは支援される適切な機能を実行するための、ハードウェア、ソフトウェア、若しくは埋込ロジック要素、又は2つ以上のこれら要素の組み合わせを含み得る。例えば、ウェブサーバは一般的に、ウェブページ、又はウェブページの特定の要素、を含むウェブサイトのホストを務めることが可能である。より具体的には、ウェブサーバは、HTMLファイル又はその他のファイルタイプのホストとなることができ、あるいは要求を受けてファイルを動的に作成あるいは構成して、クライアント630からのHTTP又はその他の要求に応答して該ファイルをクライアント630に通信することができる。メイルサーバは一般的に、様々なクライアント630に電子メイルサービスを提供することができる。データベースサーバは一般的に、1つ以上のデータ庫に格納されたデータを管理するためのインタフェースを提供することができる。
【0027】
特定の実施形態において、1つ以上のサーバ620に、1つ以上のリンク650を介して、1つ以上のデータストレージ640が通信可能に結合され得る。特定の実施形態において、データストレージ640は、様々な種類の情報を保管するために使用され得る。特定の実施形態において、データストレージ640に格納される情報は、特定のデータ構造に従って編成され得る。特定の実施形態において、各データストレージ640はリレーショナルデータベースとし得る。特定の実施形態は、サーバ620又はクライアント630が、データストレージ640に格納された情報を管理する(例えば、検索、修正、追加あるいは消去する)ことを可能にするインタフェースを提供し得る。
【0028】
特定の実施形態において、各クライアント630は、ハードウェア、ソフトウェア、若しくは埋込ロジック要素、又は2つ以上のこれら要素の組み合わせを含み、クライアント630によって実現あるいは支援される適切な機能を実行することが可能である。例えば、限定ではなく、クライアント630は、デスクトップ型コンピュータシステム、ノート型コンピュータシステム、ネットブック型コンピュータシステム、手持ち式電子機器、又は携帯電話とし得る。この開示は、如何なる好適なクライアント630をも意図している。クライアント630は、クライアント630の位置のネットワークユーザがネットワーク610にアクセスすることを可能にし得る。クライアント630は、そのユーザが、その他のクライアント630の他ユーザと通信することを可能にしてもよい。
【0029】
クライアント630は、例えば、マイクロソフト・インターネットエクスプローラ、グーグル・クローム又はモジラ・ファイアフォックスなどのウェブブラウザ632を有することができ、また、1つ以上のアドオン、プラグイン、又は例えばツールバー若しくはヤフー・ツールバーなどのその他のエクステンションを有していてもよい。クライアント630のユーザは、URL又はウェブブラウザ632をサーバ620に導くその他のアドレスを入力することができ、ウェブブラウザ632は、ハイパーテキスト転送プロトコル(HTTP)要求を生成して、該HTTP要求をサーバ620に通信し得る。サーバ620は、HTTP要求を受理し、該HTTP要求に応じた1つ以上のハイパーテキスト・マークアップ言語(HTML)ファイルをクライアント630に通信し得る。クライアント630は、サーバ620からのHTMLファイルに基づいて、ユーザへの提示にためにウェブページを表示し得る。この開示は、如何なる好適なウェブページファイルをも意図している。非限定的な一例として、ウェブページは、具体的なニーズに従って、HTMLファイル、拡張可能ハイパーテキスト・マークアップ言語(XHTML)ファイル、又は拡張マークアップ言語(XML)ファイルから表示を行い得る。このようなページはまた、例えば、限定ではなく、JAVAスクリプト(登録商標)、JAVA(登録商標)、マイクロソフト・シルバーライトで記述されたものなどのスクリプト、例えばAJAX(Asynchronous JavaScript and XML)などのマークアップ言語とスクリプトとの組み合わせ、及びこれらに類するものを実行し得る。ここでは、適宜、ウェブページへの言及は、(ブラウザがウェブページを表示するために使用する)1つ以上の対応するウェブページファイルを包含し、その逆も然りである。
【0030】
特定の実施形態において、クロスブラウザ互換性チェックサービスがサーバ620に常駐し且つ実行される。このサービスのユーザは、該ユーザに関するクライアント630上で実行されるウェブブラウザ632を介して該サービスにアクセスし得る。
【0031】
特定の実施形態は、1つ以上のコンピュータシステム上で実現され得る。図9は、一例に係るコンピュータシステム700を示している。特定の実施形態において、1つ以上のコンピュータシステム700が、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを実行する。特定の実施形態において、1つ以上のコンピュータシステム700が、ここに記載あるいは図示した機能を提供する。特定の実施形態において、1つ以上のコンピュータシステム700上で起動されるソフトウェアが、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを実行し、あるいは、ここに記載あるいは図示した機能を提供する。特定の実施形態は、1つ以上のコンピュータシステム700の1つ以上の部分を含む。
【0032】
この開示は、如何なる好適な数のコンピュータシステム700をも意図している。この開示は、如何なる物理形態を採るコンピュータシステム700をも意図している。非限定的な一例として、コンピュータシステム700は、組込型コンピュータシステム、システム・オン・チップ(SOC)、シングルボード・コンピュータシステム(SBC)(例えば、コンピュータ・オン・モジュール(COM)若しくはシステム・オン・モジュール(SOM)など)、デスクトップ型コンピュータシステム、ラップトップ型又はノート型のコンピュータシステム、対話式キオスク端末、メインフレーム、メッシュ状コンピュータシステム、携帯電話、携帯情報端末(PDA)、サーバ、又はこれらの2つ以上の組み合わせとし得る。必要に応じて、コンピュータシステム700は、単一あるいは分散型の;複数の位置にまたがる;複数の機械にまたがる;あるいはクラウド(1つ以上のネットワーク内に1つ以上のクラウド要素を含み得る)内の;1つ以上のコンピュータシステム700を含んでいてもよい。必要に応じて、1つ以上のコンピュータシステム700は、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを、空間的あるいは時間的な実質的な制約なく実行し得る。非限定的な一例として、1つ以上のコンピュータシステム700は、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを、リアルタイムあるいはバッチモードで実行し得る。必要に応じて、1つ以上のコンピュータシステム700は、相異なる時点で、あるいは相異なる位置で、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを実行してもよい。
【0033】
特定の実施形態において、コンピュータシステム700は、プロセッサ702、メモリ704、ストレージ706、入力/出力(I/O)インタフェース708、通信インタフェース710、及びバス712を含んでいる。この開示は、特定の構成にされた特定数の特定の構成要素を有する特定のコンピュータシステムを図示して説明しているが、この開示は、如何なる好適配置にされた如何なる好適数の如何なる好適構成要素を有する如何なる好適なコンピュータシステムをも意図している。
【0034】
特定の実施形態において、プロセッサ702は、例えばコンピュータプログラムを構築する命令などの命令を実行するハードウェアを含む。非限定的な一例として、命令を実行するために、プロセッサ702は、内部レジスタ、内部キャッシュ、メモリ704、又はストレージ706から命令を取り出し(すなわち、フェッチし);それを復号化して実行し;その後、1つ以上の結果を内部レジスタ、内部キャッシュ、メモリ704、又はストレージ706に書き込み得る。特定の実施形態において、プロセッサ702は、データ、命令又はアドレス用の1つ以上の内部キャッシュを含み得る。この開示は、プロセッサ702が必要に応じて、如何なる好適数の如何なる好適な内部キャッシュを含むことも意図している。非限定的な一例として、プロセッサ702は、1つ以上の命令キャッシュと、1つ以上のデータキャッシュと、1つ以上のトランスレーション・ルックアサイド・バッファ(TLB)とを含み得る。命令キャッシュ内の命令は、メモリ704又はストレージ706内の命令の複製としてもよく、命令キャッシュは、プロセッサ702によるこれら命令の取り出しを高速化し得る。データキャッシュ内のデータは、メモリ704又はストレージ706内の、プロセッサ702にて実行されている命令が処理すべきデータの複製;プロセッサ702にて実行される後続の命令によるアクセスのための、あるいはメモリ704又はストレージ706に書き込むための、プロセッサ702にて実行された以前の命令の結果;又はその他の好適データとし得る。データキャッシュは、プロセッサ702による読み出し処理又は書き込み処理を高速化し得る。TLBは、プロセッサ702のために仮想アドレス変換を高速化し得る。特定の実施形態において、プロセッサ702は、データ、命令又はアドレス用の1つ以上の内部レジスタを含み得る。この開示は、プロセッサ702が適宜、如何なる好適数の如何なる好適な内部レジスタを含むことをも意図している。必要に応じて、プロセッサ702は、1つ以上の演算論理ユニット(ALU)を含んでいてもよく;マルチコアプロセッサであってもよく;あるいは1つ以上のプロセッサ702を含んでいてもよい。この開示は特定のプロセッサを図示して説明しているが、この開示は如何なる好適なプロセッサをも意図している。
【0035】
特定の実施形態において、メモリ704は、プロセッサ702が実行する命令、又はプロセッサ702が処理するデータを格納するメインメモリを含む。非限定的な一例として、コンピュータシステム700はストレージ706又は別のソース(例えば、別のコンピュータシステム700など)からメモリ704に命令をロードし得る。その後、プロセッサ702は、メモリ704から内部レジスタ又は内部キャッシュに命令をロードし得る。命令を実行するため、プロセッサ702は、内部レジスタ又は内部キャッシュから命令を取り出し、取り出した命令を復号化する。命令の実行中又は実行後、プロセッサ702は、1つ以上の結果(中間結果又は最終結果とし得る)を内部レジスタ又は内部キャッシュに書き込み得る。そして、プロセッサ702は、それらの結果のうちの1つ以上をメモリ704に書き込み得る。特定の実施形態において、プロセッサ702は、1つ以上の内部レジスタ若しくは内部キャッシュ又はメモリ704内の命令のみを実行してもよく(ストレージ706又はその他の場所の命令を実行するのとは異なる)、また、1つ以上の内部レジスタ若しくは内部キャッシュ又はメモリ704内のデータのみを処理してもよい(ストレージ706又はその他の場所のデータを処理するのとは異なる)。1つ以上のメモリバス712(各々がアドレスバス及びデータバスを含み得る)が、プロセッサ702をメモリ704に結合してもよい。バス712は、後述のように、1つ以上のメモリバスを含み得る。特定の実施形態において、1つ以上のメモリ管理装置(MMU)が、プロセッサ702とメモリ704との間に存在し、プロセッサ702により要求されるメモリ704へのアクセスを容易にし得る。特定の実施形態において、メモリ704は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適当であれば、揮発性メモリであってもよい。必要に応じて、このRAMはダイナミックRAM(DRAM)又はスタティックRAM(SRAM)にされ得る。また、必要に応じて、このRAMは、シングルポート又はマルチポートのRAMにされ得る。この開示は、如何なる好適なRAMをも意図している。メモリ704は、必要に応じて、1つ以上のメモリ704を含んでいてもよい。この開示は特定のメモリを図示して説明しているが、この開示は如何なる好適なメモリをも意図している。
【0036】
特定の実施形態において、ストレージ706は、データ又は命令用の大容量記憶装置を含む。非限定的な一例として、ストレージ706は、HDD、フロッピーディスク(登録商標)ドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープ、若しくはユニバーサル・シリアル・バス(USB)ドライブ、又はこれらの2つ以上の組み合わせを含み得る。ストレージ706は、必要に応じて、リムーバブル(取り外し可能)あるいは非リムーバブル(すなわち、固定)のメディアを含み得る。ストレージ706は、必要に応じて、コンピュータシステム700の内部にあってもよいし、外部にあってもよい。特定の実施形態において、ストレージ706は、不揮発性のソリッドステートメモリである。特定の実施形態において、ストレージ706は、読み出し専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的消去再書込可能ROM(EAROM)、若しくはフラッシュメモリ、又はこれらの2つ以上の組み合わせとし得る。この開示は、如何なる好適な物理形態を有する大容量記憶装置706をも意図している。ストレージ706は、必要に応じて、プロセッサ702とストレージ706との間での通信を容易にする1つ以上のストレージ制御装置を含み得る。必要に応じて、ストレージ706は1つ以上のストレージ706を含んでいてもよい。この開示は特定のストレージを図示して説明しているが、この開示は如何なる好適なストレージをも意図している。
【0037】
特定の実施形態において、I/Oインタフェース708は、コンピュータシステム700と1つ以上のI/O装置との間での通信のための1つ以上のインタフェースを提供するハードウェア、ソフトウェア、又はこれら双方を含む。コンピュータシステム700は、必要に応じて、これらI/O装置のうちの1つ以上を含んでいてもよい。これらI/O装置のうちの1つ以上は、個人とコンピュータシステム700との間での通信を可能にし得る。非限定的な一例として、I/O装置は、キーボード、キーパッド、マイク、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラスペン、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、その他の好適なI/O装置、又はこれらの2つ以上の組み合わせを含み得る。I/O装置は、1つ以上のセンサを含んでいてもよい。この開示は、如何なる好適なI/O装置、及びそれ用の如何なる好適なI/Oインタフェース708をも意図している。必要に応じて、I/Oインタフェース708は、プロセッサ702がこれらのI/O装置のうちの1つ以上を駆動することを可能にする1つ以上の装置又はソフトウェアドライバを含んでいてもよい。I/Oインタフェース708は、必要に応じて、1つ以上のインタフェース708を含んでいてもよい。この開示は特定のI/Oインタフェースを図示して説明しているが、この開示は如何なる好適なI/Oインタフェースをも意図している。
【0038】
特定の実施形態において、通信インタフェース710は、コンピュータシステム700と、1つ以上のその他のコンピュータシステム若しくは1つ以上のネットワークとの間での通信(例えば、パケットベースの通信など)のための1つ以上のインタフェースを提供するハードウェア、ソフトウェア、又はこれら双方を含む。非限定的な一例として、通信インタフェース710は、イーサネット(登録商標)若しくはその他のワイヤベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)若しくはネットワークアダプタ、又は例えばWi−Fiネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)若しくは無線アダプタを含み得る。この開示は、如何なる好適なネットワーク及びそれ用の如何なる好適な通信インタフェース710をも意図している。非限定的な一例として、コンピュータシステム700は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、若しくはインターネットの1つ以上の部分、又はこれらの2つ以上の組み合わせと通信し得る。これらのネットワークのうちの1つ以上の1つ以上の部分は、有線であってもよいし、無線であってもよい。一例として、コンピュータシステム700は、無線PAN(WPAN)(例えば、ブルートゥース(登録商標)WPANなど)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(例えば、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM(登録商標))ネットワークなど)、若しくはその他の好適な無線ネットワーク、又はこれらの2つ以上の組み合わせと通信し得る。コンピュータシステム700は、必要に応じて、これらのネットワークの何れかのための如何なる好適な通信インタフェース710を含んでいてもよい。この開示は特定の通信インタフェースを図示して説明しているが、この開示は如何なる好適な通信インタフェースをも意図している。
【0039】
特定の実施形態において、バス712は、コンピュータシステム700の構成要素を相互に結合するための、ハードウェア、ソフトウェア、又はこれら双方を含む。非限定的な一例として、バス712は、アクセラレーテッド・グラフィクス・ポート(AGP)若しくはその他のグラフィック専用バス、EISA(Extended Industry Standard Architecture)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)インターコネクト、業界標準アーキテクチャ(ISA)バス、インフィニバンド・インターコネクト、LPC(low-pin-count)バス、メモリバス、マイクロ・チャネル・アーキテクチャ(MCA)バス、コンピュータ用拡張バスアーキテクチャ(PCI)バス、PCIエクスプレス(PCI−X)バス、シリアルATA(SATA)バス、VLB(Video Electronics Standards Association local)バス、若しくはその他の好適なバス、又はこれらの2つ以上の組み合わせを含み得る。バス712は、必要に応じて、1つ以上のバス712を含んでいてもよい。この開示は特定のバスを図示して説明しているが、この開示は如何なる好適なバス又はインターコネクトをも意図している。
【0040】
ここで、コンピュータ読み取り可能記憶媒体への言及は、1つ以上の一過性でない有形のコンピュータ読み取り可能記憶媒体保有構造をも包含するものである。非限定的な一例として、コンピュータ読み取り可能記憶媒体は、必要に応じて、半導体ベースあるいはその他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又は特定用途向けIC(ASIC)など)、ハードディスク、HDD、ハイブリッド式ハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、磁気光ディスク、磁気光ドライブ、フロッピーディスク(登録商標)、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタル(SD)カード、セキュアデジタルドライブ、若しくはその他の好適なコンピュータ読み取り可能記憶媒体、又はこれらの2つ以上の組み合わせを含み得る。コンピュータ読み取り可能な一過性でない記憶媒体は、必要に応じて、揮発性、不揮発性、又は揮発性と不揮発性との組み合わせとし得る。
【0041】
この開示は、何らかの好適なストレージを実現する1つ以上のコンピュータ読み取り可能記憶媒体を意図している。特定の実施形態において、コンピュータ読み取り可能記憶媒体は、必要に応じて、プロセッサ702の1つ以上の部分(例えば、1つ以上の内部レジスタ若しくはキャッシュなど)、メモリ704の1つ以上の部分、ストレージ706の1つ以上の部分、又はこれらの組み合わせを実現してもよい。特定の実施形態において、コンピュータ読み取り可能記憶媒体はRAM又はROMを実現する。特定の実施形態において、コンピュータ読み取り可能記憶媒体は揮発性あるいは永続的なメモリを実現する。特定の実施形態において、1つ以上のコンピュータ読み取り可能記憶媒体がソフトウェアを具現化する。ここで、ソフトウェアへの言及は適宜、1つ以上のアプリケーション、バイトコード、1つ以上のコンピュータプログラム、1つ以上の実行ファイル、1つ以上の命令、ロジック、機械語、1つ以上のスクリプト、又はソースコードを包含するものであり、この逆もまた然りである。特定の実施形態において、ソフトウェアは、1つ以上のアプリケーション・プログラミング・インタフェース(API)を含む。この開示は、如何なる好適なプログラミング言語又は複数のプログラミング言語の組み合わせで書き込まれ、あるいはその他の方法で表現された、如何なる好適なソフトウェアをも意図している。特定の実施形態において、ソフトウェアはソースコード又はオブジェクトコードとして表現され得る。特定の実施形態において、ソフトウェアは、例えばC、Perl又はこれらの好適な拡張版など、より高級(高水準)なプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、例えばアセンブリ言語(又は機械語)など、より低水準のプログラミング言語で表現される。特定の実施形態において、ソフトウェアはJAVA(登録商標)で表現される。特定の実施形態において、ソフトウェアはハイパーテキスト・マークアップ言語(HTML)、拡張マークアップ言語(XML)、又はその他の好適なマークアップ言語で表現される。
【0042】
ここでは、“又は”は、その他のことが明示的或いは文脈的に指し示されない限り、両立的なものであって排他的なものではない。故に、“A又はB”は、その他のことが明示的或いは文脈的に指し示されない限り、“A、B、又は双方”を意味する。また、“及び”は、その他のことが明示的或いは文脈的に指し示されない限り、結合及びそれぞれの双方である。故に、ここでは、“A及びB”は、その他のことが明示的或いは文脈的に指し示されない限り、“結合的あるいは個別的にA及びB”を意味する。
【0043】
この開示は、ここで例示した実施形態への、当業者に理解されるであろう全ての変更、代用、変形、改変及び改良を包含するものである。同様に、添付の請求項は適宜、ここで例示した実施形態への当業者に理解されるであろう全ての変更、代用、変形、改変及び改良を包含するものである。また、特定の機能を実行するように適応され、構成され、可能にされ、設定され、有効にされ、動作可能にされ、あるいは動作する装置若しくはシステム又はそれらの構成要素への、請求項中での参照は、装置、システム又は構成要素がそのように適応、構成、可能化、設定、有効化、動作可能化あるいは動作される限り、それ又はその特定機能が活性化され、オンにされ、あるいは解除されようとなかろうと、その装置、システム又は構成要素を包含するものである。
【符号の説明】
【0044】
110、120、210、220 画面
230、240 構造化表現
250 ノード対
270 比較処理
310 訓練用ウェブアプリケーション
320 機械学習訓練モジュール
330 予測エンジン
340 ウェブアプリケーション
350 エラーレポート
360 ユーザフィードバック
600 ネットワーク環境
610 ネットワーク
620 サーバ
630 クライアント
632 ウェブブラウザ
640 データストレージ
650 リンク
700 コンピュータシステム
702 プロセッサ
704 メモリ
706 ストレージ
708 I/Oインタフェース
710 通信インタフェース
712 バス

【特許請求の範囲】
【請求項1】
1つ以上のコンピュータシステムによって実行される方法であって、
第1の複数の画像対に関する情報を受信するステップと、
前記第1の複数の画像対の中の各画像対を評価して、エラーと見なすのに適格な視覚的な対的相違を検出するステップであり、視覚的な対的相違は、位置、大きさ、色又はスタイルのうちの少なくとも1つに関する違いを有する、ステップと、
評価された前記視覚的な対的相違に基づいて予測エンジンを訓練するステップと、
第2の複数の画像対に関する情報を受信するステップであり、該第2の複数の画像対の中の各画像対は、クライアントティア環境において実行されたイベント・ドリブン・アプリケーションの視覚的なエンドユーザ体験画面の少なくとも一部を有する、ステップと、
前記予測エンジンを用いて、前記第2の複数の画像対の中の各画像対を評価して、エラーと見なすのに適格な視覚的な対的相違を検出するステップと、
エラーと見なすのに適格な少なくとも1つの対的相違を有すると評価された前記第2の複数の画像対のうちの少なくとも1つの画像対に関して、評価された該対的相違はエラーと見なされるべきでなかったとのユーザフィードバックを受信するステップと、
前記ユーザフィードバックに基づいて前記予測エンジンを再訓練するステップと、
を有する方法。
【請求項2】
前記視覚的な対的相違は、位置に関する違いを有し、画像対を評価して該視覚的な対的相違を検出するステップは、該画像対の各画像について、変位比、大きさ、色差比、色濃度、又はアースムーバーズ距離(EMD)のうちの少なくとも1つに関する情報を評価することを有する、請求項1に記載の方法。
【請求項3】
前記視覚的な対的相違は、大きさに関する違いを有し、画像対を評価して該視覚的な対的相違を検出するステップは、該画像対の各画像について、サイズ差比、大きさ、色濃度、又はアースムーバーズ距離(EMD)のうちの少なくとも1つに関する情報を評価することを有する、請求項1に記載の方法。
【請求項4】
前記視覚的な対的相違は、スタイルに関する違いを有し、画像対を評価して該視覚的な対的相違を検出するステップは、該画像対の各画像について、HTMLタグ、前記クライアントティア環境のブラウザ、大きさ、色濃度、又はアースムーバーズ距離(EMD)のうちの少なくとも1つに関する情報を評価することを有する、請求項1に記載の方法。
【請求項5】
検出された対的相違が許容可能であると決定することは、該検出された対的相違が、重大なものでなく且つ前記イベント・ドリブン・アプリケーションのブラウザ固有レンダリングに関するものであると決定することを有する、請求項1に記載の方法。
【請求項6】
前記イベント・ドリブン・アプリケーションはウェブアプリケーションである、請求項1に記載の方法。
【請求項7】
各クライアントティア環境は、
特定のウェブブラウザと、
前記特定のウェブブラウザのバージョンと、
前記特定のウェブブラウザの設定と、
前記特定のウェブブラウザが動作するコンピュータシステムの特定のオペレーティングシステム(OS)と、
前記コンピュータシステムのディスプレイの画面解像度と
を有する、請求項1に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5a】
image rotate

【図5b】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−77301(P2013−77301A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2012−214352(P2012−214352)
【出願日】平成24年9月27日(2012.9.27)
【公序良俗違反の表示】
特許法第64条第2項第4号の規定により図面の一部または全部を不掲載とする。
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】