(57)【特許請求の範囲】
【請求項１】
文書オブジェクトモデル（以下、ＤＯＭという）ツリーとカスケーディング・スタイル・シート（以下、ＣＳＳという）とが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するための方法であって、コンピュータが、
画面状態をチェックしたい少なくとも１つのタイミングごとに、前記アプリケーション上でのユーザの１以上の入力操作と、ＤＯＭツリーと、ＣＳＳとを保存するステップと、
前記ソースコードの変更が行われた後に、前記タイミングごとに前記入力操作を当該操作順にエミュレートするステップと、
前記タイミングごとにＤＯＭツリー及びＣＳＳを取得するステップと、
前記保存するステップで保存したＤＯＭツリー及びＣＳＳと、前記取得するステップで取得したＤＯＭツリー及びＣＳＳとを前記タイミングごとにそれぞれ比較するステップと、
前記比較の結果を出力するステップと
を実行することを含む、前記方法。
【請求項２】
前記出力するステップが、
前記同じタイミングにおいて、前記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分がどのＣＳＳファイルのどの位置に定義されているかを表示するステップ
を含む、請求項１に記載の方法。
【請求項３】
前記比較するステップが、
前記保存したＣＳＳ中の又は前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記画面状態をチェックしたい前記少なくとも１つのタイミングのうちの特定の１つのタイミングでの実際の画面表示に適用されている第１のＣＳＳプロパティを特定するステップと
前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている第２のＣＳＳプロパティを特定するステップと
前記第１のＣＳＳプロパティと前記第２のＣＳＳプロパティとを比較するステップと
を含む、請求項１に記載の方法。
【請求項４】
前記出力するステップが、
前記第１のＣＳＳプロパティと前記第２のＣＳＳプロパティとの比較の結果を出力するステップ
を含む、請求項３に記載の方法。
【請求項５】
前記出力するステップが、
前記保存したＣＳＳ中のＣＳＳプロパティのうちから、前記特定の１つのタイミングでの実際の画面表示に適用されている値を定義する前記第１のＣＳＳプロパティに対応し且つ当該実際の画面表示に適用されていない値を定義するＣＳＳプロパティを強調表示するステップ
を含む、請求項３に記載の方法。
【請求項６】
前記出力するステップが、
前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている値を定義する前記第２のＣＳＳプロパティに対応し且つ当該実際の画面表示に適用されていない値を定義するＣＳＳプロパティを強調表示するステップ
を含む、請求項３に記載の方法。
【請求項７】
前記保存するステップが、
前記保存したＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを保存するステップ、又は、
前記保存したＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合に、初期値として適用される値を取得するステップ
を含み、
前記取得するステップが、
前記取得したＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを取得するステップ、又は、
前記取得したＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合に、初期値として適用される値を取得するステップ
を含む、
請求項１に記載の方法。
【請求項８】
前記出力するステップが、
前記保存したＤＯＭツリーを表示するステップであって、当該ステップにより表示されたＤＯＭツリーと前記取得したＤＯＭツリーとの間で相違するＤＯＭ要素を強調表示するステップを含む、前記表示するステップ
を含む、請求項７に記載の方法。
【請求項９】
前記出力するステップが、
前記強調表示するステップにより強調表示されたＤＯＭ要素が選択されることに応じて、当該選択されたＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを表示するステップ
を含む、請求項８に記載の方法。
【請求項１０】
前記出力するステップが、
前記取得したＤＯＭツリーを表示するステップであって、前記表示されたＤＯＭツリーと前記取得したＤＯＭツリーとの間で相違するＤＯＭ要素を強調表示するステップを含む、前記取得されたＤＯＭツリーを表示するステップ
を含む、請求項９に記載の方法。
【請求項１１】
前記出力するステップが、
前記強調表示されたＤＯＭ要素が選択されることに応じて、当該選択されたＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを表示するステップ
を含む、請求項１０に記載の方法。
【請求項１２】
前記出力するステップが、
前記同じタイミングにおいて、前記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分を出力するステップ
を含む、請求項１に記載の方法。
【請求項１３】
前記保存するステップが、
前記画面状態をチェックしたい少なくとも１つのタイミングごとに前記アプリケーション上でのスクリーンショットを撮影するステップ
をさらに含み、
前記取得するステップが、
前記画面状態をチェックしたい前記少なくとも１つのタイミングと同じタイミングごとに前記アプリケーション上でのスクリーンショットを撮影するステップ
をさらに含み、
前記出力するステップが、
前記比較の結果が相違することに応じて、前記保存するステップで撮影したスクリーンショットと、前記取得するステップで取得したスクリーンショットとをそれぞれ表示するステップ
を含む、請求項１に記載の方法。
【請求項１４】
前記出力するステップが、
前記比較の結果が相違することに応じて、前記保存するステップで撮影したスクリーンショットと、前記取得するステップで取得したスクリーンショットとの差分を強調表示するステップ
を含む、請求項１３に記載の方法。
【請求項１５】
前記出力するステップが、不可視領域の差分を表示するステップを含む、請求項１に記載の方法。
【請求項１６】
前記コンピュータが、
前記ソースコードに対する更なる変更が行われた後に、前記入力操作を当該操作順にエミュレートし、前記画面状態をチェックしたい前記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得するステップと、
前記ソースコードの変更が行われた後に保存したＤＯＭツリー及びＣＳＳと、前記ソースコードに対する更なる変更が行われた後に保存したＤＯＭツリー及びＣＳＳとを前記同じタイミングごとにそれぞれ比較するステップと、
前記ソースコードの変更が行われた後に保存したＤＯＭツリー及びＣＳＳと、前記ソースコードに対する更なる変更が行われた後に保存したＤＯＭツリー及びＣＳＳとの前記同じタイミングにおける前記比較の結果を出力するステップと
を実行することをさらに含む、請求項１に記載の方法。
【請求項１７】
文書オブジェクトモデル(以下、ＤＯＭという)ツリーとカスケーディング・スタイル・シート（以下、ＣＳＳという）ツリーとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するためのコンピュータであって、
画面状態をチェックしたい少なくとも１つのタイミングごとに、前記アプリケーション上でのユーザの１以上の入力操作と、ＤＯＭツリーと、ＣＳＳとを保存する保存手段と、
前記ソースコードの変更が行われた後に、前記タイミングごとに前記入力操作を当該操作順にエミュレートするエミュレート手段と、
前記タイミングごとにＤＯＭツリー及びＣＳＳを取得する取得手段と、
前記保存手段が保存したＤＯＭツリー及びＣＳＳと、前記取得手段が取得したＤＯＭツリー及びＣＳＳとを前記タイミングごとにそれぞれ比較する比較手段と、
前記比較の結果を出力する出力手段と
を備えている、前記コンピュータ。
【請求項１８】
前記比較する手段が、
前記保存したＣＳＳ中の又は前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記画面状態をチェックしたい前記少なくとも１つのタイミングのうちの特定の１つのタイミングでの実際の画面表示に適用されている第１のＣＳＳプロパティを特定すること、
前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている第２のＣＳＳプロパティを特定すること、
前記第１のＣＳＳプロパティと前記第２のＣＳＳプロパティとを比較すること
を実行する、請求項１７に記載のコンピュータ。
【請求項１９】
文書オブジェクトモデル(以下、ＤＯＭという)ツリーとカスケーディング・スタイル・シート（以下、ＣＳＳという）とが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するためのコンピュータ・プログラムであって、コンピュータに、
前記アプリケーション上でのユーザの１以上の入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存するステップと、
前記ソースコードの変更が行われた後に、前記タイミングごとに前記入力操作を当該操作順にエミュレートするステップと、
前記タイミングごとにＤＯＭツリー及びＣＳＳを取得するステップと、
前記保存するステップで保存したＤＯＭツリー及びＣＳＳと、前記取得するステップで取得したＤＯＭツリー及びＣＳＳとを前記タイミングごとにそれぞれ比較するステップと、
前記比較の結果を出力するステップと
を実行させる、前記コンピュータ・プログラム。
【請求項２０】
前記比較するステップが、
前記保存したＣＳＳ中の又は前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記画面状態をチェックしたい前記少なくとも１つのタイミングのうちの特定の１つのタイミングでの実際の画面表示に適用されている第１のＣＳＳプロパティを特定するステップと
前記取得したＣＳＳ中のＣＳＳプロパティのうちから、前記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている第２のＣＳＳプロパティを特定するステップと
前記第１のＣＳＳプロパティと前記第２のＣＳＳプロパティとを比較するステップと
を含む、請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書オブジェクトモデル（以下、ＤＯＭともいう）ツリーとカスケーディング・スタイル・シート（以下、ＣＳＳともいう）とが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するための技法に関する。
【背景技術】
【０００２】
ウェブ・アプリケーションが表示する画面は、当該ウェブ・アプリケーションのソースコードを変更すること（例えば、バグ修正をすること、又は仕様変更をすること）によって変わりうる。そこで、ウェブ・アプリケーションのソースコードの変更をした場合に、リグレッション乃至はデグレードが発生していないかどうかを確認する必要がある。当該確認の為に、上記ソースコードが変更されるたびに、テスターがウェブ・ブラウザを操作しながら目視でリグレッション・テスト（回帰試験）を行っているのが通常である。
【０００３】
しかしながら、人手によるリグレッション・テストにより全てのテストを行うと非常にコストが掛かる。そこで、通常は、ウェブ・アプリケーションのソースコードを変更することによって影響を及ぼすと思われる箇所のみリグレッション・テストを行う。しかしながら、このようなリグレッション・テストでは、影響を及ぼすと思われる箇所の洗い出し漏れにより、リグレッション乃至はデグレードがしばしば発生する。
【０００４】
また、ウェブ・アプリケーション全体に影響を及ぼすような例えば共通的なJavaScript（登録商標）フレームワーク（例えば、Dojo Toolkit、jQuery、及びprototype.js）を変更した場合に、全ての画面に対してリグレッション・テストをやり直す必要がある。しかしながら、ウェブ・ページが、例えば上記JavaScript（登録商標）フレームワークを用いて階層化され且つ動的に生成されている場合、上記ソースコードを変更することによって生じる上記ウェブ・ページに対する影響範囲の調査は非常に困難である。また、ウェブ・アプリケーションのリグレッション・テストは、同じような操作を何度も何度も繰り返す作業になる為に、テスターにとって非常に退屈な作業である。
【０００５】
そこで、ウェブ・アプリケーションのリグレッション・テストを自動化する為のソフトウェアが提供されている。当該ソフトウェアは例えば、オープン・ソース・ソフトウェアであるSelenium（下記非特許文献１、並びに、下記非特許文献２〜４を参照）、並びに、商用製品であるIBM  Rational Functional Tester（インターナショナル・ビジネス・マシーンズ・コーポレーション）（下記非特許文献５及び６を参照）、SmartBear  TestComplete（下記非特許文献７を参照）、及びHP  QuickTest Professional（下記非特許文献８を参照）である。上記Selenium、IBM  Rational Functional Tester、SmartBear  TestComplete、及びHP  QuickTest Professionalのいずれも、比較箇所を明示的に指定してリグレッション・テストを行うホワイトリスト方式を採用している。
【０００６】
Seleniumでは、ウェブ・アプリケーションのテストケースを作成することによって、リグレッション・テストをほぼ自動的に行うことが可能である。また、Seleniumでは複数のウェブ・ブラウザでのリグレッション・テストも簡単にできる為に、ウェブ・アプリケーションのリグレッション・テストを効率化できる。
【０００７】
下記特許文献１はアプリケーションプログラムのテストプログラムを記載し、当該テストプログラムは、アプリケーションプログラムが搭載されたコンピュータを、前記アプリケーションプログラムに対してテストケースを実行したときに前記アプリケーションプログラムで発生したユーザイベント及び画面イベントを記録装置に累積記録する記録制御手段と、前記記録装置に累積記録された前記ユーザイベント及び画面イベントを読み出し、テスト対象の前記アプリケーションプログラムで前記ユーザイベントを順次実行する実行手段と、テスト対象の前記アプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、前記記録装置から読み出した前記一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントとを比較し、一致していない前記画面イベントをエラーとして出力するエラー出力制御手段として機能させることを記載する（請求項１）。また、引用文献１は、前記記録制御手段により前記記録装置に累積記録される前記画面イベントは、画面変更の差分であり、ＤＯＭ（Document Object Model）で取得する情報であること（請求項４）、及び、前記記録制御手段により前記記録装置に累積記録される前記画面イベントは、Ｘｐａｔｈで表現される変更された箇所と、ＤＯＭの部分木とで表された情報であること（請求項５）を記載する。
【０００８】
下記特許文献２はリグレッション・テスト支援プログラムを記載し、当該リグレッション・テスト支援プログラムは、ディプレイ上に表示されている一以上のブラウザ画面のいずれかの表示内容の更新を検知し、前記更新が検知されるたびに、表示されている全ての前記ブラウザ画面の表示内容を示す情報と、当該更新に係る前記ブラウザ画面の識別情報とを含むデータを第一の記憶部に記録し、前記データの編集指示に応じ、前記第一の記憶部を参照し、前記識別情報に係る前記ブラウザ画面の表示内容を示す画像の一覧を表示させる処理をコンピュータに実行させることを記載する（請求項１）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−１４０１５５号公報
【特許文献２】特開２０１３−５４６９３号公報
【非特許文献】
【００１０】
【非特許文献１】「Selenium HQ」、［online］、［平成２５年９月２６日検索］、インターネット〈URL：http://docs.seleniumhq.org/〉
【非特許文献２】岡本  隆史、「ブラウザを選ばすＷｅｂテストを自動化するSelenium(1/3)」、［online］、［平成２５年９月２７日検索］、インターネット〈http://www.atmarkit.co.jp/ait/articles/0908/19/news109.html〉
【非特許文献３】岡本  隆史、「ブラウザを選ばすＷｅｂテストを自動化するSelenium(2/3)」、［online］、［平成２５年９月２７日検索］、インターネット〈http://www.atmarkit.co.jp/ait/articles/0908/19/news109_2.html〉
【非特許文献４】岡本  隆史、「ブラウザを選ばすＷｅｂテストを自動化するSelenium(3/3)」、［online］、［平成２５年９月２７日検索］、インターネット〈http://www.atmarkit.co.jp/ait/articles/0908/19/news109_3.html〉
【非特許文献５】「Rational Functional Tester （機能テスト/回帰テスト）」、［online］、［平成２５年９月２７日検索］、インターネット〈URL：http://www-06.ibm.com/software/jp/rational/products/test/rft/〉
【非特許文献６】寳生  一成等、「ツールによる効果的なシステム開発−よりスマートなシステム開発を目指して−」、日本アイ・ビー・エム、PROVISION Spring  No.69、2011年、インターネット〈URL：http://www-06.ibm.com/ibm/jp/provision/no69/pdf/69_article3.pdf〉より入手可能
【非特許文献７】「SMARTBEAR  TestComplete  GUIテストの自動化で超すと削減」、［online］、［平成２５年９月２７日検索］、インターネット〈URL：http://www.xlsoft.com/jp/products/smartbear/testcomplete.html?tab=0〉
【非特許文献８】「HP QuickTest Professional 10.0 software」、［online］、［平成２５年９月２７日検索］、インターネット〈URL：http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html〉
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションにおいて、当該アプリケーションのソースコードを変更することによって生じる影響を検知することは、例えば、当該アプリケーションのリグレッション・テスト、当該アプリケーションのユニット・テスト、又は、当該アプリケーションを構築するためのコード・スタディにとって重要である。そこで、本発明は、上記アプリケーションのソースコードを変更することによって生じる影響を自動的に検知することを可能にすることを目的とする。
【００１２】
また、上記アプリケーションが、各種のウェブ・ブラウザや同じウェブ・ブラウザの異なるバージョンに対応していることを確認する為には、ブラウザ数×バージョン数のテスト回数が必要となり、そのコストは多大である。また、ウェブ・ブラウザが同じであっても、例えばＷｉｎｄｏｗｓ（登録商標），Ｍａｃ  ＯＳ（登録商標）  Ｘ，Ｌｉｎｕｘ（登録商標），Ａｎｄｒｏｉｄ（登録商標）又はｉＯＳなどのオペレーティング・システム毎に、さらにサポートするバージョン毎に上記アプリケーションの挙動（画面表示及びそれ以外の不可視領域での挙動を含む）を確認することになると、さらにそのコストは増大する。そこで、本発明は、上記コストを削減するために、上記アプリケーションのソースコードを変更することによって生じる影響を自動的に検知することを可能にすることを目的とする。
【００１３】
また、本発明は、従来のウェブ・アプリケーションのリグレッション・テストを自動化する為のソフトウェアがホワイトリスト方式である為に当該ホワイトリスト方式において求められるような定義（例えば、「項目Ｘの値（value）がＡＢＣであるはず」というような定義）、テストケース、又は統一モデリング言語（ＵＭＬ）を別途に書く必要をなくすことを目的とする。
【００１４】
また、本発明は、デザイン上の問題（例えば、罫線のズレ、塗り忘れ、又は項目の重なり）も検出することを可能にすることを目的とする。特には、本発明は、画面表示に表れない違い（例えば、不可視領域の差分又は表示サイズによる違い）の検知を可能にすることを目的とする。
【００１５】
また、本発明は、上記ホワイトリスト方式において求められるような定義が困難であり、ユーザの目視に頼っていた部分を自動的に判断することを可能にすることを目的とする。
【００１６】
さらに、本発明は、ユーザが介入する機会がなるべく少なくなるようにして、上記アプリケーションのソースコードを変更することによって生じる影響の検知を可能にすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響を検知するための技法を提供する。当該技法は、上記アプリケーションのソースコードを変更することによって生じる影響を検知するための方法、並びに、当該影響を検知するためのコンピュータ、コンピュータ・プログラム及びコンピュータ・プログラム製品を包含しうる。
【００１８】
本発明に従う第１の態様において、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響を検知するための方法であって、コンピュータが、
上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存するステップと、
上記ソースコードの変更が行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得するステップと、
上記保存するステップで保存したＤＯＭツリー及びＣＳＳと、上記取得するステップで取得したＤＯＭツリー及びＣＳＳとを上記同じタイミングごとにそれぞれ比較するステップと、
上記比較の結果を出力するステップと
を実行することを含む。
【００１９】
本発明に従う第２の態様において、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響を検知するための方法であって、上記アプリケーション上でのユーザの入力操作履歴と、画面状態をチェックしたい少なくとも１つのタイミングでのＤＯＭツリー及びＣＳＳとを保存した記憶媒体にアクセス可能であるコンピュータが、
上記ソースコードの変更が行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得するステップと、
上記記憶媒体に保存したＤＯＭツリー及びＣＳＳと、上記取得するステップで取得したＤＯＭツリー及びＣＳＳとを上記同じタイミングごとにそれぞれ比較するステップと、
上記比較の結果を出力するステップと
を実行することを含む。
【００２０】
本発明の一つの実施態様において、上記第１の態様及び上記第２の態様における上記方法は、上記コンピュータが、
上記ソースコードに対する更なる変更が行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得するステップと、
上記ソースコードの変更が行われた後に保存したＤＯＭツリー及びＣＳＳと、上記ソースコードに対する更なる変更が行われた後に保存したＤＯＭツリー及びＣＳＳとを上記同じタイミングごとにそれぞれ比較するステップと、
上記ソースコードの変更が行われた後に保存したＤＯＭツリー及びＣＳＳと、上記ソースコードに対する更なる変更が行われた後に保存したＤＯＭツリー及びＣＳＳとの上記同じタイミングにおける上記比較の結果を出力するステップと
をさらに実行することを含みうる。
【００２１】
本発明に従う第３の態様において、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響を検知するためのコンピュータは、
上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存する保存手段と、
上記ソースコードの変更が行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得する取得手段と、
上記保存する手段が保存したＤＯＭツリー及びＣＳＳと、上記取得手段が取得したＤＯＭツリー及びＣＳＳとを上記同じタイミングごとにそれぞれ比較する比較手段と、
上記比較の結果を出力する出力手段と
を備えている。
【００２２】
本発明の一つの実施態様において、上記第３の態様の上記コンピュータにおいて、
上記保存手段は、上記保存されたＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを保存することを実行しうる。
【００２３】
本発明の一つの実施態様において、上記第３の態様の上記コンピュータにおいて、
上記取得手段は、上記取得されたＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを取得することを実行しうる。または、上記取得手段は、上記取得されたＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合に、初期値として適用される値を取得しうる。
【００２４】
本発明の一つの実施態様において、上記第３の態様の上記コンピュータにおいて、
上記保存手段は、上記画面状態をチェックしたい少なくとも１つのタイミングごとに上記アプリケーション上でのスクリーンショットを撮影することを実行し、
上記取得手段は、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとに上記アプリケーション上でのスクリーンショットを撮影し、
上記出力手段は、上記比較の結果が相違することに応じて、上記保存するステップで撮影したスクリーンショットと、上記取得するステップで取得したスクリーンショットとをそれぞれ表示しうる。
【００２５】
本発明の一つの実施態様において、上記第３の態様の上記コンピュータにおいて、
上記出力手段は、上記比較の結果が相違することに応じて、上記保存するステップで撮影したスクリーンショットと、上記取得するステップで取得したスクリーンショットとの差分を強調表示しうる。
【００２６】
本発明に従う第４の態様において、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響を検知するためのコンピュータは、上記アプリケーション上でのユーザの入力操作履歴と、画面状態をチェックしたい少なくとも１つのタイミングでのＤＯＭツリー及びＣＳＳとを保存した記憶媒体にアクセス可能であり、上記コンピュータは、
上記ソースコードの変更が行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得する取得手段と、
上記記憶媒体に保存したＤＯＭツリー及びＣＳＳと、上記取得手段が取得したＤＯＭツリー及びＣＳＳとを上記同じタイミングごとにそれぞれ比較する比較手段と、
上記比較の結果を出力する出力手段と
を備えている。
【００２７】
本発明の一つの実施態様において、上記第４の態様の上記コンピュータがアクセス可能な上記記録媒体は、上記保存されたＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とをさらに保存しており、
上記取得手段は、上記取得したＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを上記記録媒体から取得すること、又は、上記取得したＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合に、初期値として適用される値を取得することを実行しうる。
【００２８】
本発明の一つの実施態様において、上記第４の態様の上記コンピュータがアクセス可能な上記記録媒体は、上記画面状態をチェックしたい少なくとも１つのタイミングごとに撮影した上記アプリケーション上でのスクリーンショットをさらに保存しており、
上記取得手段は、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとに上記アプリケーション上でのスクリーンショットを撮影し、
上記出力手段は、上記比較の結果が相違することに応じて、上記保存するステップで撮影したスクリーンショットと、上記取得するステップで取得したスクリーンショットとをそれぞれ表示しうる。
【００２９】
本発明の一つの実施態様において、上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記比較の結果が相違することに応じて、上記保存するステップで撮影したスクリーンショットと、上記取得するステップで取得したスクリーンショットとの差分を強調表示しうる。
【００３０】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記比較手段は、
上記保存したＣＳＳ中のＣＳＳプロパティのうちから、上記画面状態をチェックしたい上記少なくとも１つのタイミングのうちの特定の１つのタイミングでの実際の画面表示に適用されている第１のＣＳＳプロパティを特定すること、
上記取得したＣＳＳ中のＣＳＳプロパティのうちから、上記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている第２のＣＳＳプロパティを特定すること
上記第１のＣＳＳプロパティと上記第２のＣＳＳプロパティとを比較すること
を実行しうる。
【００３１】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記同じタイミングにおいて、上記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分がどのＣＳＳファイルのどの位置に定義されているかを表示することを実行しうる。
【００３２】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記第１のＣＳＳプロパティと上記第２のＣＳＳプロパティとの比較の結果を出力することを実行しうる。
【００３３】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記保存したＣＳＳ中のＣＳＳプロパティのうちから、上記特定の１つのタイミングでの実際の画面表示に適用されている値を定義する上記第１のＣＳＳプロパティに対応し且つ当該実際の画面表示に適用されていない値を定義するＣＳＳプロパティを強調表示することを実行しうる。
【００３４】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記取得したＣＳＳ中のＣＳＳプロパティのうちから、上記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている値を定義する上記第２のＣＳＳプロパティに対応し且つ当該実際の画面表示に適用されていない値を定義するＣＳＳプロパティを強調表示することを実行しうる。
【００３５】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記保存したＤＯＭツリーを表示し、当該ＤＯＭツリーの表示において、表示されたＤＯＭツリーと上記取得したＤＯＭツリーとの間で相違するＤＯＭ要素を強調表示することを実行しうる。
【００３６】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、強調表示されたＤＯＭ要素が選択されることに応じて、当該選択されたＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを表示することを実行し、
上記出力手段は任意的に、上記取得されたＤＯＭツリーを表示することをさらに実行し、上記表示されたＤＯＭツリーと上記取得したＤＯＭツリーとの間で相違するＤＯＭ要素を強調表示するステップをさらに実行しうる。
【００３７】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段はさらに任意的に、強調表示されたＤＯＭ要素が選択されることに応じて、当該選択されたＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを表示することをさらに実行しうる。
【００３８】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、上記同じタイミングにおいて、上記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分を出力することを実行しうる。
【００３９】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記出力手段は、不可視領域の差分を表示しうる。
【００４０】
本発明の一つの実施態様において、上記第３の態様及び上記第４の態様の上記コンピュータにおいて、
上記取得手段が、上記ソースコードに対する更なる変更が行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得することをさらに実行し、
上記比較手段が、上記ソースコードの変更が行われた後に保存したＤＯＭツリー及びＣＳＳと、上記ソースコードに対する更なる変更が行われた後に保存したＤＯＭツリー及びＣＳＳとを上記同じタイミングごとにそれぞれ比較することをさらに実行し、
上記出力手段が、上記ソースコードの変更が行われた後に保存したＤＯＭツリー及びＣＳＳと、上記ソースコードに対する更なる変更が行われた後に保存したＤＯＭツリー及びＣＳＳとの上記同じタイミングにおける上記比較の結果を出力することをさらに実行しうる。
【００４１】
本発明に従う第５の態様において、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響を検知するためのコンピュータ・プログラム又はコンピュータ・プログラム製品は、コンピュータに、上記第１の態様又は上記第２の態様に記載の方法の各ステップを実行させる。
【００４２】
本発明の実施態様に従うコンピュータ・プログラムはそれぞれ、一つ又は複数のフレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ＢＤ、ハードディスク装置、ＵＳＢに接続可能なメモリ媒体、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。当該コンピュータ・プログラムは、上記記録媒体への格納のために、通信回線で接続する他のコンピュータ、例えばサーバ・コンピュータからダウンロードしたり、又は他の記録媒体から複製したりすることができる。また、本発明の実施態様に従うコンピュータ・プログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。また、様々な形態で、本発明の実施態様に従うコンピュータ・プログラム製品を提供することも勿論可能であることにも留意されたい。本発明の実施態様に従うコンピュータ・プログラム製品は、例えば、上記コンピュータ・プログラムを記録した記憶媒体、又は、上記コンピュータ・プログラムを伝送する伝送媒体を包含しうる。
【００４３】
本発明の上記概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーション又はサブコンビネーションもまた、本発明となりうることに留意すべきである。
【００４４】
本発明の実施態様において使用されるコンピュータの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００４５】
また、本発明は、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアとの組み合わせによる実行において、上記コンピュータ・プログラムのインストールされたコンピュータにおける実行が典型的な例として挙げられる。かかる場合、当該コンピュータ・プログラムが当該コンピュータのメモリにロードされて実行されることにより、当該コンピュータ・プログラムは、当該コンピュータを制御し、本発明にかかる処理を実行させる。当該コンピュータ・プログラムは、任意の言語、コード、又は、表記によって表現可能な命令群から構成されうる。そのような命令群は、当該コンピュータが特定の機能を直接的に、又は、１．他の言語、コード若しくは表記への変換及び、２．他の媒体への複製、のいずれか一方若しくは双方が行われた後に、本発明の実施態様に従う処理を実行することを可能にするものである。
【発明の効果】
【００４６】
本発明の実施態様に従うと、ＤＯＭツリーとＣＳＳとが取り出されることが可能な任意のアプリケーションのソースコードを変更することによって生じる影響の検知を、項目（又は要素）の値がこうあるはずであるとするホワイトリスト方式でなく、（差がないという前提で）差分を検出するというブラックリスト方式により可能にする。当該ブラックリスト方式による上記影響の検知は、上記ホワイトリスト方式において求められるような定義（例えば、「項目Ｘの値（value）がＡＢＣであるはず」というような定義）、又は、テストケースや統一モデリング言語（ＵＭＬ）を別途に書く必要をなくす点で有用である。また、上記定義を別途に書くことが不要になることから、定義情報の正確性を検証する必要がなくなる点で有用である。さらには、上記テストケースやＵＭＬを別途に書くことが不要になることから、テストケースの作成者の主観が排除されるという点で有用である。
【００４７】
また、本発明の実施態様に従うと、上記ホワイトリスト方式において求められるような上記定義が困難であり、且つユーザの目視に頼っていた部分を自動的に判断することが可能である。
【００４８】
さらに、本発明の実施態様に従うと、ＤＯＭツリーだけでなくＣＳＳを取得してグラフィカル・ユーザ・インタフェース（ＧＵＩ）を比較することから、デザイン上の問題（例えば、罫線のズレ、塗り忘れ、項目の重なり）も検出することが可能である。特には、本発明の実施態様に従うと、ＤＯＭツリーだけでなくＣＳＳを取得してＧＵＩを比較することから、不可視領域の差分又は表示サイズによる違いを検出可能である。
【００４９】
本発明の実施態様に従うと、ＤＯＭツリー及びＣＳＳの比較内容の定義、及びＤＯＭツリー及びＣＳＳの比較操作において、ユーザが介入する機会を、エミュレーションを可能にするためのユーザの入力操作（下記図２に示す処理を参照）のみに限定するために、上記比較が正確であり、また再現可能である。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施態様において使用されうるコンピュータの一例を示した図である。
【図２】本発明の実施態様に従い、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するために、当該アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存する処理の為のフローチャートを示す。
【図３】本発明の実施態様に従い、図２に示すフローチャートの処理が終了した後に、当該図２で行われた入力操作を操作順にエミュレートしながら、ＤＯＭツリー及びＣＳＳを保存し、ウェブ・アプリケーションのソースコードを変更することによって生じる影響を検知する処理の為のフローチャートを示す。
【図４Ａ】本発明の実施態様に従い、図３に示すフローチャートの各ステップのうち、保存済みのＤＯＭツリーの各ＤＯＭ要素及びＣＳＳプロパティの値と取得したＤＯＭツリーの各ＤＯＭ要素及びＣＳＳプロパティの値とを比較し、そして当該比較の結果を出力する処理の為のフローチャートを示す。
【図４Ｂ】本発明の実施態様に従い、図３に示すフローチャートの各ステップのうち、保存済みのＤＯＭツリーの各ＤＯＭ要素及びＣＳＳプロパティの値と取得したＤＯＭツリーの各ＤＯＭ要素及びＣＳＳプロパティの値とを比較し、そして当該比較の結果を出力する処理の為のフローチャートを示す。
【図５Ａ】本発明の実施態様に従い保存される入力操作履歴の格納態様を示す。
【図５Ｂ】本発明の実施態様に従い保存されるＤＯＭツリー、及び当該ＤＯＭツリーの各ＤＯＭ要素に適用されるＣＳＳ（ＣＳＳプロパティと当該ＣＳＳプロパティの定義場所を含む）の格納態様を示す。
【図６Ａ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図６Ｂ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図６Ｃ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図７Ａ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図７Ｂ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図７Ｃ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図８Ａ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図８Ｂ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図８Ｃ】本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【図９】図１に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い上記変更によって生じる影響を検知するコンピュータの機能ブロック図の一例を示した図である。
【図１０】図１に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い上記変更によって生じる影響を検知するコンピュータの機能ブロック図の一例を示した図である。
【発明を実施するための形態】
【００５１】
本発明の実施形態を、以下に図面に従って説明する。以下の図を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
【００５２】
本発明の実施態様において使用されうるコンピュータは、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知することができるコンピュータであれば特に限定されない。当該コンピュータは例えば、例えば、デスクトップ・コンピュータ、ノート・コンピュータ若しくは一体型パソコン、又は、タブレット若しくはスマートフォン端末（例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）又はｉＯＳ（登録商標）を搭載したタブレット若しくはスマートフォン）でありうる。
【００５３】
本発明の実施態様において、「ＤＯＭツリー」とは、ＸＭＬやＨＴＭＬドキュメント（文書）をツリー構造として表現したものである。例えばＸＭＬドキュメントは論理的には木構造となっており、最初に出現するルート要素であるルート（根）と、当ルートから伸びる各ノード要素又は属性（枝葉）とを有する。ＤＯＭにおいては、読み込んだＸＭＬ文書がツリー構造に変換される。当該ツリー構造のデータがＤＯＭツリーである。例えば、ウェブ・アプリケーション（例えば、ウェブ・ブラウザ）の中には、表示ページのＤＯＭツリーにアクセスし、当該ＤＯＭツリーを表示し又は編集する機能が標準で又はアドオンで備えられているものがある。例えばGoogle Chrome（登録商標） Developer Tools、若しくはInternet Explorer（登録商標）の開発者ツール、又は、Firefox（登録商標）のアドオンであるFirebugである。
【００５４】
本発明の実施態様において、「ＣＳＳ」とは、ＸＭＬやＨＴＭＬドキュメントの要素をどのように修飾（または表示）するかを指示する、Ｗ３Ｃによる仕様の一つであり、例えばフォントや文字の大きさ、文字飾り、行間などの見栄えに関する情報である。例えば、ウェブ・アプリケーション（例えば、ウェブ・ブラウザ）の中には、表示ページのＣＳＳにアクセスし、当該ＣＳＳを表示又は編集する機能が標準で又はアドオンで備えられているものがある。例えばGoogle Chrome（登録商標） Developer Tools、若しくはInternet Explorer（登録商標）の開発者ツール、又は、Firefox（登録商標）のアドオンであるFirebugである。本明細書において、「ＣＳＳ」という場合には、親要素から継承されたＣＳＳも含む。
【００５５】
ＣＳＳは、ＣＳＳプロパティ（設定項目でもある）と、当該ＣＳＳプロパティの値とを有しうる。例えば、「font-size: 12px;」という定義において、「ＣＳＳプロパティ」は「font-size」であり、当該「ＣＳＳプロパティ」に定義された値は「12px」である。
【００５６】
本発明の実施態様において、「ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーション」とは、ＤＯＭツリーとＣＳＳとを取り出すことが可能であればどのようなアプリケーションであってもよい。言い換えれば、「ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーション」とは、ＤＯＭツリーとＣＳＳを用いて構成される任意のアプリケーションである。
【００５７】
「ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーション」は特には、例えば、フレームワーク（例えば、JavaScript（登録商標）フレームワーク）、コンポーネント（例えば、アプリケーション開発者が提供するコンポーネント）又はそれらを組み合わせて動的に構成される任意の動的なアプリケーションでありうる。JavaScript（登録商標）フレームワークは例えば、Dojo Toolkit、jQuery、及びprototype.jsである。上記任意のアプリケーションは例えば、インターネットやイントラネットなどのネットワークを介して使用するウェブ・アプリケーションである。
【００５８】
ウェブ・アプリケーションは、多くの場合、ウェブ・ブラウザ上で動作するプログラミング言語（例えば、上記JavaScript（登録商標））によるプログラムとウェブ・サーバ側のプログラムが協調することによって動作するものである。ユーザは、当該ウェブ・アプリケーションを、例えばウェブ・ブラウザ上で実行しうる。ウェブ・ブラウザは例えば、Internet Explorer（登録商標）（ＩＥ）、Google Chrome（登録商標）、Safari（登録商標）、Firefox（登録商標）などでありうる。
【００５９】
ウェブ・アプリケーションは例えば、ブログ、電子掲示板、インターネット・バンキング、オンライン・トレード、ネットショッピングなどのためのアプリケーションとして動作しうる。
【００６０】
本発明の実施態様において、「ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションのソースコード」とは例えば、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションを構成するフレームワーク（例えば、JavaScript（登録商標）フレームワーク）及びコンポーネント（例えば、アプリケーション開発者が提供するコンポーネント）である。
【００６１】
上記アプリケーションのソースコードが変更された場合において、異なる時点において同じＤＯＭツリーとＣＳＳが得られた場合には、表示画面上に表示される結果並びに不可視領域の差分及び表示サイズによる違いは少なくとも同一のウェブ・ブラウザ（及び同じバージョン）においては全く同じはずである。
【００６２】
図１は、本発明の実施態様において使用されうるコンピュータの一例を示した図である。
【００６３】
コンピュータ（１０１）は、ＣＰＵ（１０２）とメイン・メモリ（１０３）とを備えており、これらはバス（１０４）に接続されている。ＣＰＵ（１０２）は好ましくは、３２ビット又は６４ビットのアーキテクチャに基づくものである。当該ＣＰＵ（１０２）は例えば、インテル社のＣｏｒｅ（商標）  ｉシリーズ、Ｃｏｒｅ（商標）  ２シリーズ、Ａｔｏｍ（商標）シリーズ、Ｘｅｏｎ（登録商標）シリーズ、Ｐｅｎｔｉｕｍ（登録商標）シリーズ若しくはＣｅｌｅｒｏｎ（登録商標）シリーズ、ＡＭＤ（Advanced Micro Devices）社のＡシリーズ、Ｐｈｅｎｏｍ（商標）シリーズ、Ａｔｈｌｏｎ（商標）シリーズ、Ｔｕｒｉｏｎ（登録商標）シリーズ若しくはＳｅｍｐｒｏｎ（商標）、又は、インターナショナル・ビジネス・マシーンズ・コーポレーションのＰｏｗｅｒ（商標）シリーズでありうる。
【００６４】
バス（１０４）には、ディスプレイ・コントローラ（１０５）を介して、ディスプレイ（１０６）、例えば液晶ディスプレイ（ＬＣＤ）が接続されうる。また、液晶ディスプレイ（ＬＣＤ）は例えば、タッチパネル・ディスプレイ又はフローティング・タッチ・ディスプレイであてもよい。ディスプレイ（１０６）は、コンピュータ（１０１）上で動作中のソフトウェア（例えば、本発明の実施態様に従うコンピュータ・プログラム又は当該コンピュータ（１０１）上で動作中の各種コンピュータ・プログラム）が稼働することによって表示されるオブジェクトを、適当なグラフィック・インタフェースで表示するために使用されうる。また、ディスプレイ（１０６）は、ＤＯＭツリー、ＣＳＳ及び、本発明の実施態様に従う比較の結果を出力しうる。
【００６５】
バス（１０４）には任意的に、例えばＳＡＴＡ又はＩＤＥコントローラ（１０７）を介して、ディスク（１０８）、例えばハードディスク又はソリッド・ステート・ドライブ（ＳＳＤ）が接続されうる。
【００６６】
バス（１０４）には任意的に、例えばＳＡＴＡ又はＩＤＥコントローラ（１０７）を介して、ドライブ（１０９）、例えばＣＤ、ＤＶＤ又はＢＤドライブが接続されうる。
【００６７】
バス（１０４）には、周辺装置コントローラ（１１０）を介して、例えばキーボード・マウス・コントローラ又はＵＳＢバスを介して、任意的に、キーボード（１１１）及びマウス（１１２）が接続されうる。
【００６８】
ディスク（１０８）には、オペレーティング・システム、例えばＷｉｎｄｏｗｓ（登録商標），Ｍａｃ  ＯＳ（登録商標）  Ｘ，Ｌｉｎｕｘ（登録商標），Ａｎｄｒｏｉｄ（登録商標），ｉＯＳ、Ｊ２ＥＥなどのＪａｖａ（登録商標）処理環境、Ｊａｖａ（登録商標）アプリケーション、Ｊａｖａ（登録商標）仮想マシン（ＶＭ）、Ｊａｖａ（登録商標）実行時（ＪＩＴ）コンパイラを提供するプログラム、本発明の実施態様に従うコンピュータ・プログラム、及びその他のプログラム、並びにデータが、メイン・メモリ（１０３）にロード可能なように記憶されうる。
【００６９】
ディスク（１０８）は、コンピュータ（１０１）内に内蔵されていてもよく、当該コンピュータ（１０１）がアクセス可能なようにケーブルを介して接続されていてもよく、又は、当該コンピュータ（１０１）がアクセス可能なように有線又は無線ネットワークを介して接続されていてもよい。
【００７０】
ドライブ（１０９）は、必要に応じて、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はＢＤからプログラム、例えばオペレーティング・システム、アプリケーション又は本発明の実施態様に従うコンピュータ・プログラムをディスク（１０８）にインストールするために使用されうる。
【００７１】
通信インタフェース（１１４）は、例えばイーサネット（登録商標）・プロトコルに従う。通信インタフェース（１１４）は、通信コントローラ（１１３）を介してバス（１０４）に接続され、コンピュータ（１０１）を通信回線（１１５）に有線又は無線接続する役割を担い、コンピュータ（１０１）のオペレーティング・システムの通信機能のＴＣＰ／ＩＰ通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は例えば、無線ＬＡＮ接続規格に基づく無線ＬＡＮ環境、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどのＷｉ-Ｆｉ無線ＬＡＮ環境、又は携帯電話網環境（例えば、３Ｇ又は４Ｇ環境）でありうる。
【００７２】
以下に示す図２、図３、並びに、図４Ａ及び図４Ｂにおいて、本発明の実施態様に従い、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するためのフローチャートを説明する。なお、以下に示す図２、図３、並びに、図４Ａ及び図４Ｂの説明において、「上記アプリケーション」という場合には、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションを意味する。
【００７３】
以下において、「実行記録」、「記録区間」、及び「タイミング情報」という語を使用するが、当該語は下記の通り定義される。
【００７４】
「実行記録」とは、あるテストケースの試行全体を指し、１回分のテスト試行を実行記録と定義する。１回分のテスト試行とは、例えば、下記図２に示すステップ２０３〜２１６及び下記図３に示すステップ３０３〜３１４までを一単位とするものである。１回分のテスト試行として、例えば、初回のテスト試行を実行記録１、２回目のテスト試行を実行記録２、そして３回目のテスト試行を実行記録３のように表現される。
【００７５】
「記録区間」とは、あるテストケースの試行全体である上記実行記録を、「ユーザが何らかの操作を行って、ＤＯＭツリー及びＣＳＳの保存ボタンを押す」というまとまり毎に分割した単位である。「記録区間」は、記録順に記録区間ｉ（ｉは、０〜ｎの任意の整数）と表現される。記録区間は、ＤＯＭツリーとＣＳＳとを保存する為のトリガーをユーザから受け取ることにより定義される。上記記録区間ｉは、ｉ−１回目のトリガー操作から、ｉ回目のトリガー操作までの区間を表現する。従って、上記記録区間０は、該当する実行記録における、ユーザの入力操作を持たない初期状態でのＤＯＭツリー及びＣＳＳを保持する区間である。そして、初回のトリガーから２回目のトリガーまでを記録区間１、２回目のトリガーから３回目のトリガーを記録区間２、３回目のトリガーから４回目のトリガーを記録区間３、そして、ｎ−１回目のトリガーから最終であるｎ回目のトリガーを記録区間ｎとする。当該記録区間ｎは、該当する実行記録における、記録区間の最大値である。例えば、下記図２において、「記録区間０」はステップ２０３〜２０４で示され、「記録区間１」はステップ２０５〜２０８で示され、「記録区間２」はステップ２０９〜２１２で示され、及び、「記録区間ｎ」はステップ２１３〜２１６で示される。すなわち、「記録区間ｉ」について、上記０では「テスト対象のアプリケーション（修正前）を起動から１回目の保存ボタンを押した瞬間」と表現可能である。また、「記録区間ｉ」について、上記１〜ｎの任意の整数ｉでは「ｉ−１回目の保存ボタンを押した時からｉ回目の保存ボタン又は終了ボタンを押した瞬間」と表現可能である。同様に、下記図３においては、図２で保存した記録区間と一致するように、「記録区間０」はステップ３０３〜３０４で示され、「記録区間１」はステップ３０６〜３０８で示され、「記録区間２」はステップ３０９〜３１１で示され、及び、「記録区間ｎ」はステップ３１２〜３１４で示される。
【００７６】
「タイミング情報」とは、ユーザが行った操作について、順番や操作間隔を再現するための時間情報を指す。従って、「タイミング情報ｉ」と表現した場合には，上記記録区間ｉにおいてユーザが行った操作の相対的時刻情報を意味する。従って、「タイミング情報ｉ」において、ｉは１〜ｎで定義される。
【００７７】
図２は、本発明の実施態様に従い、上記アプリケーションのソースコードを変更することによって生じる影響を検知するために、上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存する処理の為のフローチャートを示す。
【００７８】
図２に示すフローチャートの各ステップは、テスト対象である上記アプリケーションのソースコードを変更することによって生じる影響の検知が例えばリグレッション・テストの為に行われる場合、当該リグレッション・テスト（図３、並びに図４Ａ及び図４Ｂに示す処理である）を実行する前に１回のみ行われる。
【００７９】
ステップ２０１において、コンピュータは、上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存する処理を開始する。上記アプリケーションは例えば、上記アプリケーションのソースコードに対するある変更を加える前のものであるとする。
【００８０】
ステップ２０２において、コンピュータは、上記アプリケーション起動指示を例えばユーザから受け取ることに応じて、上記アプリケーションを起動する。
【００８１】
ステップ２０３において、コンピュータは、上記アプリケーションの初期状態にあるＤＯＭツリーとＣＳＳとを保存する為のトリガーを上記ユーザから受け取る。当該トリガーによって該当する実行記録を分割し、連続するトリガー間の区間を記録区間と定義する。当該トリガーは例えば、初期状態保存ボタンに設定されているキーボード上の特定のキー（例えば、特定のファンクション・キー）がユーザによって押下されることを検出することでありうる。コンピュータは、上記トリガーを受信することに応じて、上記特定のキーが押下された時点におけるＤＯＭツリーと、当該ＤＯＭツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。
上記ＤＯＭツリー及び当該ＤＯＭツリー内のＤＯＭ要素毎に適用されるＣＳＳは、コンピュータが、表示画面上のブラウザに各要素をレンダリングするために、当該ブラウザを用いてウェブ・サーバからの応答を解析して自動的に作成したものであり、上記特定のキーが押下された時点で上記ブラウザ上に表示されている内容に対応するものである（下記に示す、ステップ２０６、２１０及び２１４においても同様である）。取得されたＤＯＭツリー及び、当該ＤＯＭツリー内のＤＯＭ要素毎に適用されるＣＳＳの例を下記図５Ｂに示す。
【００８２】
ステップ２０４において、コンピュータは、ステップ２０３において取得された、初期状態のＤＯＭツリー及びＣＳＳそれぞれを記憶媒体（２９１）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（２９１）中に保存しうる。上記初期値として適用される値は、ＣＳＳファイルに定義された（すなわち、ＣＳＳファイルに実際に書かれている）値に限定されるものでない。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（２９１）中に保存しうる。記憶媒体（２９１）は、例えば図１に示すディスク（１０８）でありうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間０（初期状態，ｉ＝０）のＤＯＭツリー及びＣＳＳという。
【００８３】
ステップ２０５において、コンピュータは、ステップ２０３で初期状態保存ボタンの押下が行われた以降に行われたユーザの一連の入力操作（以下、入力操作１という）を受信する。コンピュータは、上記入力操作が行われるたびに（例えば、入力操作が行われると同時に）、当該入力操作を受信し、記憶媒体（２９２）中に保存しうる。入力操作は例えば、キーボードによる入力操作、ポインティング・デバイスによる入力操作、タッチパネルによる入力操作、又は音声入力による入力操作を含みうる。ポインティング・デバイスは例えば、マウス、ポインティング・スティック（トラック・ポイント（登録商標））、タッチパッド、トラックボール、又はジョイパッドでありうる。
【００８４】
ステップ２０６において、コンピュータは、画面状態をチェックしたいタイミングであることに関連付けられた保存ボタン（例えば、特定のファンクション・キー）がユーザによって押下されることを検出する。コンピュータは、当該保存ボタンが押下された時点におけるＤＯＭツリーと、当該ツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。コンピュータは、例えば上記保存ボタンの押下を検出することに応じて、前回のトリガー記録区間０（ｉ＝０）以降の区間を、記録区間１（ｉ＝１）と定義する。
【００８５】
ステップ２０７において、コンピュータは、上記入力操作１がステップ２０５で保存されていない場合には、当該入力操作１を記憶媒体（２９２）中に保存しうる。記憶媒体（２９２）は記憶媒体（２９１）と同じであってもよく又は異なっていてもよく、例えば図１に示すディスク（１０８）でありうる。また、コンピュータは、上記入力操作１中の入力操作それぞれが行われたタイミング情報（例えば、イベント情報（例えば、座標情報、入力操作を行った要素への参照）入力操作を行った順序、及び、各入力操作がどの程度の間隔で行われたのかの時間情報）をタイミング情報１として記憶媒体（２９２）中に保存する。上記入力操作１と上記タイミング情報１とを併せて、入力操作履歴１ともいう。
【００８６】
ステップ２０８において、コンピュータは、ステップ２０６において取得された、ＤＯＭツリー及びＣＳＳそれぞれを記録区間１（ｉ＝１）の情報として記憶媒体（２９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（２９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（２９２）中に保存しうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間１（ｉ＝１）のＤＯＭツリー及びＣＳＳという。コンピュータは、ステップ２０７及びステップ２０８の処理を同時に、又は、ステップ２０７そしてステップ２０８の処理の順に若しくはステップ２０８そしてステップ２０７の処理の順に行ってもよい。
【００８７】
ステップ２０９において、コンピュータは、ステップ２０６で保存ボタンの押下が行われた以降に行われたユーザの一連の入力操作（以下、入力操作２という）を受信する。コンピュータは、上記入力操作が行われるたびに（例えば、入力操作が行われると同時に）、当該入力操作を受信し、記憶媒体（２９２）中に保存しうる。
【００８８】
ステップ２１０において、コンピュータは、画面状態をチェックしたいタイミングであることに関連付けられた上記保存ボタンがユーザによって押下されることを検出する。コンピュータは、当該保存ボタンが押下された時点におけるＤＯＭツリーと、当該ツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。コンピュータは、例えば上記保存ボタンの押下を検出することに応じて、記録区間１（ｉ＝１）以降の区間を、記録区間２（ｉ＝２）と定義する。
【００８９】
ステップ２１１において、コンピュータは、上記入力操作２がステップ２０９で保存されていない場合には、当該入力操作２を記憶媒体（２９２）中に保存しうる。また、コンピュータは、上記入力操作２中の入力操作それぞれが行われたタイミング情報をタイミング情報２として記憶媒体（２９２）中に保存する。
【００９０】
ステップ２１２において、コンピュータは、ステップ２１０において取得された、ＤＯＭツリー及びＣＳＳそれぞれを記録区間２（ｉ＝２）の情報として記憶媒体（２９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（２９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（２９２）中に保存しうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間２（ｉ＝２）のＤＯＭツリー及びＣＳＳという。コンピュータは、ステップ２１１及びステップ２１２の処理を同時に、又は、ステップ２１１そしてステップ２１２の処理の順に若しくはステップ２１２そしてステップ２１１の処理の順に行ってもよい。
【００９１】
ステップ２１３において、コンピュータは、ユーザの入力操作ｎ−１で保存ボタンの押下が行われた以降に行われたユーザの一連の入力操作（以下、入力操作ｎという）を受信する。コンピュータは、上記入力操作が行われるたびに（例えば、入力操作が行われると同時に）、当該入力操作を受信し、記憶媒体（２９２）中に保存しうる。
【００９２】
ステップ２１４において、コンピュータは、画面状態をチェックしたいタイミングが終了であることに関連付けられた終了ボタン（例えば、特定のファンクション・キー）がユーザによって押下されることを検出する。コンピュータは、当該終了ボタンが押下された時点におけるＤＯＭツリーと、当該ツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。
【００９３】
ステップ２１５において、コンピュータは、上記入力操作ｎがステップ２１３で保存されていない場合には、当該入力操作ｎを記憶媒体（２９２）中に保存しうる。また、コンピュータは、上記入力操作ｎ中の入力操作それぞれが行われたタイミング情報をタイミング情報ｎとして記憶媒体（２９２）中に保存する。
【００９４】
ステップ２１６において、コンピュータは、ステップ２１５において取得された、ＤＯＭツリー及びＣＳＳそれぞれを記録区間ｎ（ｉ＝ｎ）の記憶媒体（２９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（２９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（２９２）中に保存しうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間ｎ（ｉ＝ｎ）のＤＯＭツリー及びＣＳＳという。コンピュータは、ステップ２１５及びステップ２１６を同時に、又は、ステップ２１６そしてステップ２１５の順に行ってもよい。
【００９５】
ステップ２１７において、コンピュータは、上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存する処理を終了する。
【００９６】
図２に示す例では、ユーザの入力操作がｎ回行われる場合について入力操作１、２、〜、ｎと示した。しかしながら、ユーザの入力操作が入力操作１で終わる場合やユーザの入力操作２で終わる場合を排除するものではなく、ステップ２１４に示す終了ボタンの押下に応じて、最終である記録区間ｎ（ｉ＝ｎ）が決定されることに留意されたい。
【００９７】
図３は、本発明の実施態様に従い、図２に示すフローチャートの処理が終了した後に、当該図２で行われた入力操作１、２、〜、ｎを操作順にエミュレートしながら、ＤＯＭツリー及びＣＳＳを保存し、上記アプリケーションのソースコードを変更することによって生じる影響を検知する処理の為のフローチャートを示す。
【００９８】
図３に示すフローチャートの各ステップは、上記アプリケーションのソースコードを変更することによって生じる影響の検知が例えば、リグレッション・テストの為に行われる場合、ユニット・テストの為に行われる場合、又は当該アプリケーションを構築するためのコード・スタディの為に行われる場合に、上記ソースコードが変更された後に行われる。
【００９９】
リグレッション・テストは、ソースコード作成者が行ったソースコード変更が、該当シナリオの表示結果に影響しないと仮定した上で、上記ソースコード作成者とは別のテスターが変更前のソースコードと変更後のソースコードとの間に差分が無いかを確認するために行われうる。
【０１００】
ユニット・テストは、ソースコード作成者が行ったソースコード変更（内部変更）が、例えばウェブ・アプリケーションのどこ（例えば、外部出力）に影響するかを、当該ソースコード作成者自身が容易に特定するために行われうる。
【０１０１】
コード・スタディは、上記ユニット・テストと同様であるが、経験の浅いソースコード作成者がソースコード開発の初歩の段階において、当該ソースコード上の記述と、上記アプリケーション上での出力結果との対応付けを確認するために行われうる。
【０１０２】
図３に示す各ステップの実行主体であるコンピュータは、図２に示す各ステップの実行主体であるコンピュータと同じコンピュータであってもよく（下記図９を参照）又は異なるコンピュータであってもよい（下記図１０を参照）。
【０１０３】
ステップ３０１において、コンピュータは、図２で行われた入力操作１、２、〜、ｎを操作順にエミュレートしながら、ＤＯＭツリー及びＣＳＳを保存し、上記アプリケーションのソースコードを変更することによって生じる影響を検知する処理を開始する。
【０１０４】
上記アプリケーションは、図２において実行された上記アプリケーションのソースコードに対してある変更が加えられた後のものであるとする。
【０１０５】
当該処理の開始は例えば、上記アプリケーションのソースコードに対してある変更が加えられた後において、リグレッション・テストの実施時に行われうる。
【０１０６】
ステップ３０２において、コンピュータは、上記アプリケーション起動指示を例えばユーザから受け取ることに応じて、上記アプリケーションを起動する。
【０１０７】
ステップ３０３において、コンピュータは、上記アプリケーションのテスト開始時の初期状態にあるＤＯＭツリーとＣＳＳとを保存する為のトリガーを上記ユーザから受け取る。当該トリガーは例えば、テスト開始ボタンに設定されているキーボード上の特定のキー（例えば、特定のファンクション・キー）がユーザによって押下されることを検出することでありうる。コンピュータは、上記トリガーを受信することに応じて、上記特定のキーが押下された時点におけるＤＯＭツリーと、当該ＤＯＭツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する（図２のステップ２０３でいう初期状態に対応するものである）。
【０１０８】
ステップ３０４において、コンピュータは、ステップ３０３において取得された、初期状態のＤＯＭツリー及びＣＳＳそれぞれを記憶媒体（３９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（３９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（３９２）中に保存しうる。記憶媒体（３９２）は、例えば図１に示すディスク（１０８）でありうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間０（初期状態，ｉ＝０）のＤＯＭツリー及びＣＳＳという。
【０１０９】
ステップ３０５において、コンピュータは、記憶媒体（２９２）から、入力操作履歴（入力操作履歴１〜ｎ）を取り出す。
【０１１０】
ステップ３０６において、コンピュータは、ステップ３０５で取り出した入力操作履歴１からタイミング情報１を取り出す。
【０１１１】
ステップ３０７において、コンピュータは、ステップ３０５で取り出した入力操作履歴１から入力操作１を取り出し、ステップ３０６で取り出したタイミング情報１に従って、当該入力操作１をエミュレートして実行する。コンピュータは、当該入力操作１のエミュレートが終了することに応じて、当該終了時点における（すなわち、タイミング情報１での）ＤＯＭツリーと、当該ツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。
【０１１２】
ステップ３０８において、コンピュータは、ステップ３０７で取得された、タイミング情報１でのＤＯＭツリー及びＣＳＳそれぞれを記憶媒体（３９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（３９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（３９２）中に保存しうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間１（ｉ＝１）のＤＯＭツリー及びＣＳＳという。
【０１１３】
ステップ３０９において、コンピュータは、ステップ３０５で取り出した入力操作履歴２からタイミング情報２を取り出す。
【０１１４】
ステップ３１０において、コンピュータは、ステップ３０５で取り出した入力操作履歴２から入力操作２を取り出し、ステップ３０９で取り出したタイミング情報２に従って、当該入力操作２をエミュレートして実行する。コンピュータは、当該入力操作２のエミュレートが終了することに応じて、当該終了時点における（すなわち、タイミング情報２での）ＤＯＭツリーと、当該ツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。
【０１１５】
ステップ３１１において、コンピュータは、ステップ３１０で取得された、記録区間２（ｉ＝２）におけるＤＯＭツリー及びＣＳＳそれぞれを記憶媒体（３９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（３９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（３９２）中に保存しうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間２（ｉ＝２）のＤＯＭツリー及びＣＳＳという。
【０１１６】
ステップ３１２において、コンピュータは、ステップ３０５で取り出した入力操作履歴ｎからタイミング情報ｎを取り出す。
【０１１７】
ステップ３１３において、コンピュータは、ステップ３０５で取り出した入力操作履歴ｎから入力操作ｎを取り出し、ステップ３１２で取り出したタイミング情報ｎに従って、当該入力操作ｎをエミュレートして実行する。コンピュータは、当該入力操作ｎのエミュレートが終了することに応じて、当該終了時点における（すなわち、タイミング情報ｎでの）ＤＯＭツリーと、当該ツリー内のＤＯＭ要素毎に適用されるＣＳＳとを取得する。
【０１１８】
ステップ３１４において、コンピュータは、ステップ３１３で取得された、記録区間ｎ（ｉ＝ｎ）におけるＤＯＭツリー及びＣＳＳそれぞれを記憶媒体（３９２）中に保存する。上記保存されるＣＳＳは、上記ＤＯＭツリーのＤＯＭ要素ごとに、当該ＤＯＭ要素に適用されるＣＳＳプロパティと当該ＣＳＳプロパティの定義場所とを含みうる。ただし、コンピュータは、上記ＤＯＭツリーのＤＯＭ要素に適用されるＣＳＳプロパティが未定義である場合には、上記ＤＯＭ要素ごとに、初期値として適用される値を取得して、上記記憶媒体（３９２）中に保存しうる。また、コンピュータは、上記アプリケーション上でのスクリーンショットを撮影して、上記記憶媒体（３９２）中に保存しうる。以下、当該保存されたＤＯＭツリー及びＣＳＳを記録区間ｎ（ｉ＝ｎ）のＤＯＭツリー及びＣＳＳという。
【０１１９】
ステップ３１５において、コンピュータは、図２に示すステップ２０４、２０８、２１２及び２１６それぞれで保存されたＤＯＭツリー及びＣＳＳ（図３のステップ３１５に示す「保存済みのＤＯＭツリー及びＣＳＳ」）と、図３に示すステップ３０４、３０８、３１１及び３１４それぞれで保存されたＤＯＭツリー及びＣＳＳ（図３のステップ３１５に示す「取得したＤＯＭツリー及びＣＳＳ」）とを同じ記録区間（ｉ＝ｉ’）で比較する。当該比較内容の詳細及び当該比較の結果の出力については、下記図４Ａ及び図４Ｂにおいて説明する。
【０１２０】
ステップ３１５において、コンピュータは特には、上記ＤＯＭツリー中の各ＤＯＭ要素と、対応するＤＯＭツリー中の対応する各ＤＯＭ要素とを比較しうる。また、コンピュータは特には、上記ＣＳＳ中の各ＣＳＳプロパティの各値と、対応するＣＳＳ中の対応する各ＣＳＳプロパティの各値とを比較しうる。さらには、コンピュータは例えば、ＣＳＳが親要素から継承されたＣＳＳも比較対象としうる。
【０１２１】
なお、図３に示すフローチャートでは、コンピュータは、エミュレートする入力操作が最後のものであるステップ３１３の終了後に、ステップ３１５の比較ステップを纏めて実行している。コンピュータは、ステップ３１３の終了後に纏めて行うのではなく、例えばステップ３０４の終了後に、ステップ３０８の終了後に、ステップ３１１の終了後に、及びステップ３１４の終了後において、すなわち上記ＤＯＭツリー及びＣＳＳが保存されるたびに，ステップ３１５の比較ステップを実行してもよい。代替的には、コンピュータは、ステップ３１５の比較ステップを、上記比較の結果を出力する出力命令がユーザから入力されることに応じて、ステップ３１５の比較ステップを実行してもよい。
【０１２２】
ステップ３１６において、コンピュータは、図２で行われた入力操作を操作順にエミュレートしながら、ＤＯＭツリー及びＣＳＳを保存し、上記アプリケーションのソースコードを変更することによって生じる影響を検知する処理を終了する。
【０１２３】
ユーザは、図３に示す各処理を、ソースコードを変更するたびごとに繰り返し行ってもよい。
【０１２４】
図４Ａ及び図４Ｂは、本発明の実施態様に従い、図３に示すステップ３１５において行われる保存済みのＤＯＭツリーの各ＤＯＭ要素及びＣＳＳプロパティの値と取得したＤＯＭツリーの各ＤＯＭ要素及びＣＳＳプロパティの値とを比較し、そして当該比較の結果を出力する処理の為のフローチャートを示す。
【０１２５】
図４Ａ及び図４Ｂに示す各ステップの実行主体であるコンピュータは、図３に示す各ステップの実行主体であるコンピュータと同じである。
【０１２６】
ステップ４０１において、コンピュータは、上記比較、そして当該比較の結果を出力する処理を開始する。
【０１２７】
ステップ４０２において、コンピュータは、ユーザから指示された記録区間ｉにおけるＤＯＭツリー及びＣＳＳを、上記保存済みのＤＯＭツリー及びＣＳＳを保存した記録媒体（２９１，２９２）から読み取る。また、コンピュータは、上記記録区間ｉと同じ記録区間である記録区間ｉ’（すなわち、ｉ＝ｉ’）におけるＤＯＭツリー及びＣＳＳを、上記取得したＤＯＭツリー及びＣＳＳ（３９２）から読み取る。
【０１２８】
ステップ４０３において、コンピュータは、判定対象のＤＯＭツリー内の各ＤＯＭ要素に対してステップ４０４〜４０９に示す処理を繰り返して行うことを開始する。
【０１２９】
ステップ４０４において、コンピュータは、上記判定対象のＤＯＭツリー内の各ＤＯＭ要素に対して、各ＤＯＭ要素が同じ記録区間（ｉ＝ｉ’）で一致するかどうかを判定する。コンピュータは、当該各ＤＯＭ要素が一致することに応じて、処理をステップ４０５に進める。一方、コンピュータは、当該組み合わせが一致しないことに応じて、処理をステップ４０８に進める。
【０１３０】
なお、ステップ４０４において、コンピュータは、ＤＯＭツリー内の特定のＤＯＭ要素の比較を無視する除外条件が設定されている場合には、当該ＤＯＭ要素の比較を無視しうる。上記除外要件は例えば、ＤＯＭツリー内のあるタグ以下のＤＯＭ要素を比較しないこと、又は上記アプリケーション上のグラフィカル・ユーザ・インタフェース上で相違部分として注目しない部分を比較しないことでありうる。例えば、ユーザは、上記ソースコードへの機能追加又は変更によって生じる影響が予め予想される箇所（例えば、ＤＯＭ要素、特定された位置、行番号）について、除外条件を設定しておくことができる。一つの例として、ユーザは、上記ソースコードに新しく付け加えたことが分かっているＤＯＭ要素（例えば、<div id="newFeature">）以下のＤＯＭ要素を無視するように除外条件を設定しておくことができる。コンピュータは、上記除外要件の入力を受け付けるためのユーザ・インタフェース（例えば、ウィンドウ・メニュー）を備えうる。
【０１３１】
ステップ４０５において、コンピュータは、判定対象の各ＣＳＳプロパティに対して、ステップ４０６〜４０７に示す処理を繰り返して行うことを開始する。
【０１３２】
ステップ４０６において、コンピュータは、上記判定対象の各ＣＳＳプロパティの値が同じ記録区間（ｉ＝ｉ’）で一致するかどうかを判定する。すなわち、コンピュータは、記録区間ｉの各ＣＳＳプロパティの各値又は当該各ＣＳＳプロパティがＣＳＳファイルに定義されていない場合にはブラウザのデフォルトで使用される値（初期値として適用される値である）と、対応する記録区間ｉ’の対応する各ＣＳＳプロパティの各値又は当該各ＣＳＳプロパティがＣＳＳファイルに定義されていない場合にはブラウザのデフォルトで使用される値（初期値として適用される値である）とを比較しうる。詳細には、コンピュータは、記録区間ｉの各ＣＳＳプロパティのうちから、当該記録区間ｉでの実際の画面表示に適用されている第１のＣＳＳプロパティ（例えば、font-size）を特定し、且つ、記録区間ｉ’の各ＣＳＳプロパティのうちから、当該記録区間ｉ’での実際の画面表示に適用されている上記第１のＣＳＳプロパティと同じ種類の第２のＣＳＳプロパティ（例えば、font-size）を特定し、そして上記第１のＣＳＳプロパティの値又は当該第１のＣＳＳプロパティがＣＳＳファイルに定義されていない場合にはブラウザのデフォルトで使用される値（初期値として適用される値である）と上記第２のＣＳＳプロパティの値又は当該第２のＣＳＳプロパティがＣＳＳファイルに定義されていない場合にはブラウザのデフォルトで使用される値（初期値として適用される値である）とが同一の値（例えば、12px）であるかを比較しうる。なお、コンピュータは、双方のＣＳＳファイル共に該当のＣＳＳプロパティが未定義であった場合に、双方ともにブラウザのデフォルトで使用される値を使う。従って、コンピュータは、双方において上記デフォルトで使用される値が一致するので、相違部分がないと判断する。コンピュータは、上記のように、ＣＳＳプロパティの値が一致することに応じて、処理をステップ４０９に進める。一方、コンピュータは、ＣＳＳプロパティの値が一致しないことに応じて、処理をステップ４０７に進める。
【０１３３】
ステップ４０７において、コンピュータは、ＣＳＳプロパティの値が一致しないことに応じて、ＣＳＳプロパティの相違部分（差分）、すなわちＣＳＳプロパティの相違する値を特定する。コンピュータは、上記相違部分が下記ステップ４１１での出力で強調表示されるようにマーク付けしうる。
【０１３４】
ステップ４０８において、コンピュータは、上記各ＤＯＭ要素が同じ記録区間（ｉ＝ｉ’）で一致しないことに応じて、ＤＯＭツリーの各ＤＯＭ要素内での相違部分を特定する。コンピュータは、上記相違部分が下記ステップ４１１での出力で強調表示されるようにマーク付けしうる。
【０１３５】
ステップ４０９において、コンピュータは、全てのＣＳＳプロパティそれぞれに対してステップ４０６〜４０７に示す処理が終了していないことに応じて、ステップ４０６〜４０７に示す処理を繰り返す。コンピュータは、全てのＣＳＳプロパティそれぞれに対して４０６〜４０７に示す処理が終了していることに応じて、処理をステップ４１０に進める。
【０１３６】
ステップ４１０において、コンピュータは、全てのＤＯＭツリー内の全てのＤＯＭ要素それぞれに対してステップ４０４〜４０９に示す処理が終了していないことに応じて、ステップ４０４〜４０９に示す処理を繰り返す。コンピュータは、全てのＤＯＭツリー内の全てのＤＯＭ要素それぞれに対してステップ４０４〜４０９に示す処理が終了していることに応じて、処理をステップ４１１に進める。
【０１３７】
ステップ４１１において、コンピュータは、ステップ４０７及びステップ４０８で特定された相違部分を、同じ記録区間（ｉ＝ｉ’）ごとに表示しうる。
【０１３８】
上記相違部分の表示は例えば、以下の通りである：
・コンピュータは、ステップ４０８で特定した相違部分を、同じ記録区間（ｉ＝ｉ’）のＤＯＭツリー内の各ＤＯＭ要素をそれぞれ表示しているウィンドウ内でマーク付け、例えば強調表示しうる（例えば、図６Ａ〜図６Ｃに記載のＤＯＭツリー６２１及び６６１、並びに、図７Ａ〜図７Ｃに記載のＤＯＭツリー７２１及び７６１を参照）；及び／又は、
・コンピュータは、ステップ４０７で特定した相違部分を、同じ記録区間（ｉ＝ｉ’）の上記ＤＯＭ要素ごとに作成されたＣＳＳをそれぞれ表示している画面表示上でマーク付け、例えば強調表示しうる。例えば、図６Ｃに記載のＣＳＳを表示するウィンドウ（６３１及び６７１を参照）、並びに、図７Ａ〜図７Ｃに記載のＣＳＳを表示するウィンドウ（ＣＳＳ７３１及び７７１を参照）。
【０１３９】
ステップ４１１において、コンピュータは、同じ記録区間（ｉ＝ｉ’）における上記アプリケーションがウィンドウ（例えば、ウェブ・ブラウザ）それぞれ内に表示するコンテンツそれぞれを表示しうる。コンピュータは例えば、図２に示すステップ２０４，２０８，２１２及び２１６でそれぞれ撮影したスクリーンショットそれぞれと、図３に示すステップ３０４、３０８、３１１及び３１４でそれぞれ撮影したスクリーンショットそれぞれとを、同じ記録区間（ｉ＝ｉ’）について上記ウィンドウ内に表示しうる。
【０１４０】
また、ステップ４１１において、コンピュータは、同じ記録区間（ｉ＝ｉ’）それぞれにおける上記アプリケーションの表示画面上（例えば、ウィンドウ内）間での相違部分を特定しうる。コンピュータは、当該特定された相違部分を、同じ記録区間（ｉ＝ｉ’）それぞれにおける相違部分、すなわち上記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分として特定することを実行しうる。
【０１４１】
ステップ４１１において、コンピュータは、上記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分として表されない不可視領域の差分を表示しうる。当該不可視領域の差分は、ＤＯＭツリーの各ＤＯＭ要素及び／又はＣＳＳプロパティ若しくはＣＳＳプロパティの値で特定されうる。
【０１４２】
上記不可視領域の差分は、ＣＳＳプロパティ又はＣＳＳプロパティの値で特定されうる。上記不可視領域の差分がＣＳＳプロパティである場合には例えば、片方のＣＳＳファイルにのみ存在するＣＳＳプロパティで、ブラウザの初期値が存在しない場合である。上記不可視領域の差分がＣＳＳプロパティの値である場合には例えば、片方のＣＳＳファイルのみに存在するＣＳＳプロパティで、ブラウザの初期値が存在し、双方の値が異なる場合、又は、両方のＣＳＳファイルに同一のＣＳＳプロパティが存在し、双方の値が異なる場合である。
【０１４３】
ステップ４１１において、コンピュータは、同じ記録区間（ｉ＝ｉ’）それぞれにおいて、上記アプリケーション上でのグラフィカル・ユーザ・インタフェース間での相違部分がどのＣＳＳファイルのどの位置（例えば、行番号）に定義されているかを表示しうる。特には、コンピュータは、記録区間ｉのＣＳＳプロパティのうちから、特定の１つのタイミングでの実際の画面表示に適用されている値を定義する第１のＣＳＳプロパティに対応し且つ当該実際の画面表示に適用されていない値を定義するＣＳＳプロパティを強調表示し、且つ、同様に、記録区間ｉ’のＣＳＳプロパティのうちから、上記特定の１つのタイミングと同じタイミングでの実際の画面表示に適用されている値を定義する上記第２のＣＳＳプロパティに対応し且つ当該実際の画面表示に適用されていない値を定義するＣＳＳプロパティを強調表示しうる。
【０１４４】
また、ステップ４１１において、コンピュータは、図４Ａ及び図４Ｂに示す処理がユニット・テストの為に行われている場合には、当該ユニット・テストでの差分レポートを出力（例えば、画面出力、ファイル出力、又は印刷出力）しうる。
【０１４５】
ステップ４１２において、コンピュータは、比較結果の出力操作が終了したかどうかを判断する。コンピュータは、比較操作が終了したことに応じて、処理を終了ステップ４１３に進める。一方、コンピュータは、比較操作を継続することに応じて、処理をステップ４０２に戻す。比較操作を継続することは例えば、異なる記録区間がユーザによって選択された場合である。
【０１４６】
ステップ４１３において、コンピュータは、上記比較、そして当該比較の結果を出力する処理を終了する。
【０１４７】
図５Ａは、本発明の実施態様に従い保存される入力操作履歴の格納態様を示す。
【０１４８】
画面（５０１）は、上記アプリケーションの画面状態をチェックしたいあるタイミング（記録区間ｉ）において保存される入力操作内容を格納する態様を示す。
【０１４９】
ＤＯＭツリー（５１１）は、各ＤＯＭ要素（５２１，５２２及び５２３）が階層構造からなることを示す。ＤＯＭ要素（５２１）はルートＤＯＭ要素であり、ＤＯＭ要素（５２２及び５２３）は枝ＤＯＭ要素である。
【０１５０】
図２に示すフローチャートのステップ２０７、２１１及び２１５において、図３に示すステップ３０６〜３０７、３０９〜３１０、及び３１２〜３１３に示すエミュレーション操作をするために、ユーザの入力操作に関わる要素の情報の全てを記録しておく必要がある。当該情報は例えば、識別番号（id）、ラベル（label）及び／又はスタイル（style）、並びに、イベント種類（例えば、「onClick」）、及び記録区間ｉが始まってからどのイベントがどのような順番で何秒後に起きたのかを判別するための相対時間（例えば、「記録区間ｉ中の相対時間：ss.sss秒」）である。識別番号及びラベル及び／又はスタイルは、ユーザが入力を行った対象（例えば、クリックした「ボタン」、又は、キー入力を行った「テキスト・ボックス」）が何であるかを記録するためのものである。上記スタイルは例えば、ボタンの識別番号やラベルが入力データによって変更される状況下において、「width: 100px; height: 40pxで最初に現れるボタン」という識別をする為に用いられうる。また、ＤＯＭ要素（５２３）には、例えば、ユーザが記録区間ｉに行った各種イベント（例えば、このボタンをクリックした、このボタンをダブルクリックした、ドラッグ＆ドロップ、ホバー（例えば、マウス・ホバー）、キー入力）という入力操作履歴が関連付けられている。従って、コンピュータは、図５Ａに示す操作履歴を用いて、図３に示すステップ３０６〜３０７、３０９〜３１０、及び３１２〜３１３に示すエミュレーション操作をする際に、どのボタンをクリックしたようにすればよいかを特定することが可能になる。図３に示すステップ３０６〜３０７、３０９〜３１０、及び３１２〜３１３に示すエミュレーション操作をする際に、コンピュータは、例えば、識別番号が同じであれば同じ識別番号の要素をクリックするエミュレートを行い、例えば、識別番号が動的に変更されていればラベルが同じボタンに対してクリックするエミュレートを行いうる。但し、使用するJavaScript（登録商標）フレームワークによっては、id属性が自動的に生成されることもある。従って、ユーザは、上記特定のためにどの属性値を用いるか（例えば、ラベルで選択するか）を選択することが可能である。コンピュータは、ユーザが当該選択を可能にするためのウィンドウを表示しうる。
【０１５１】
記憶媒体（５４１）は、図２に示すタイミング（ステップ２０７、２１１及び２１５）の各記録区間ｉにおける入力操作履歴０，１，２，…，ｎを格納する（５４２）。
【０１５２】
図５Ｂは、本発明の実施態様に従い保存されるＤＯＭツリー、及び当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳ（ＣＳＳプロパティと当該ＣＳＳプロパティの定義場所を含む）の格納態様を示す。
【０１５３】
画面（５５１）は、上記アプリケーションの画面状態をチェックしたいあるタイミング（記録区間ｉ）におけるＤＯＭツリー（５６１）及び当該ＤＯＭツリー（５６１）の各ＤＯＭ要素（５７１，５７２及び５７３）、並びに、当該各ＤＯＭ要素（５７１，５７２及び５７３）に適用されるＣＳＳ（５８１，５８２及び５８３）を示す。
【０１５４】
ＤＯＭツリー（５６１）は、各ＤＯＭ要素（５７１，５７２及び５７３）が階層構造からなることを示す。ＤＯＭ要素（５７１）はルートＤＯＭ要素であり、ＤＯＭ要素（５７２及び５７３）は枝ＤＯＭ要素である。
【０１５５】
ＣＳＳ（５８１）は、ＤＯＭ要素（５７１）が当該ＣＳＳ（５８１）に関連付けられていることを示す。ＣＳＳ（５８１）はＤＯＭ要素（５７１）に適用されるＣＳＳプロパティ（５８１ａ）を含む。ＣＳＳ（５８１）内の「/Framework1/style1.css」（５８１ｂ）は、当該ＣＳＳ（５８１）の定義場所を示す。
【０１５６】
ＣＳＳ（５８２）は、ＤＯＭ要素（５７２）が当該ＣＳＳ（５８２）に関連付けられていることを示す。ＣＳＳ（５８２）はＤＯＭ要素（５７２）に適用されるＣＳＳプロパティ（５８２ａ）を含む。ＣＳＳ（５８２）内の「/Framework1/style1.css」（５８２ｂ）は、当該ＣＳＳ（５８２）の定義場所を示す。
【０１５７】
ＣＳＳ（５８３）は、ＤＯＭ要素（５７３）が当該ＣＳＳ（５８３）に関連付けられていることを示す。ＣＳＳ（５８３）は、定義場所が異なるＣＳＳ（５８３−１）及びＣＳＳ（５８３−２）を含む。ＣＳＳ（５８３−１）はＤＯＭ要素（５７３）に適用されるＣＳＳプロパティ（５８３−１ａ）を含む。ＣＳＳ（５８３−２）はＤＯＭ要素（５７３）に適用されるＣＳＳプロパティ（５８３−２ａ）を含む。ＣＳＳプロパティ（５８３−２ａ）はＣＳＳ（５８３−２）に定義されているが、上記フレームワークのＣＳＳ（５８３−１）中のＣＳＳプロパティ（５８３−１ａ）がＣＳＳプロパティ（５８３−２ａ）よりも優先されるために、ＣＳＳプロパティ（５８３−２ａ）上にはＤＯＭ要素に適用されないことを示す取消線が付されている。
【０１５８】
記憶媒体（５９１）は、図２に示すタイミング（ステップ２０３、２０６、２１０及び２１４）の各記録区間ｉで保存されたＤＯＭツリーと、当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳとのセット（ステップ２０４、２０８、２１２及び２１６）を格納する（５９２）。同様に、記憶媒体（５９１）は、図３において、図２に示すタイミングの各記録区間ｉで保存されたＤＯＭツリーと、当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳとのセット（ステップ３０４、３０８、３１１及び３１４）を格納する（５９１）。
【０１５９】
図６Ａ〜図６Ｃ、図７Ａ〜図７Ｃ、及び図８Ａ〜図８Ｃは、本発明の実施態様に従い、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーション（コントロール・パネル・アプリケーションの一部）のソースコードを変更することによって生じる影響を検知し、当該検知の結果の各出力例を示す。
【０１６０】
図６Ａ〜図６Ｃは上記検知の結果の出力画面（６０１）を示し、当該出力画面（６０１）は、当該出力画面（６０１）の左側において、図２に示す処理の実施（初回）時である（実行記録１：2013/10/01 10:00:00）の記録区間５（ｉ＝５）における上記アプリケーションのプレビュー画面表示ウィンドウ（６１１）、当該記録区間５（ｉ＝５）におけるＤＯＭツリーを表示するウィンドウ（６２１）、及び当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳを表示するウィンドウ（６３１）を示し、並びに、当該出力画面（６０１）の右側において、図２に示す処理の実施に加えて、図３に示す処理をさらに２回実施した後の３回目（実行記録３：2013/10/20 16:30:00）の記録区間５（ｉ’＝５）における上記アプリケーションのプレビュー画面表示ウィンドウ（６５１）、当該記録区間５（ｉ’＝５）におけるＤＯＭツリーを表示するウィンドウ（６６１）、及び当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳを表示するウィンドウ（６７１）を示す。
【０１６１】
出力画面（６０１）では、当該出力画面（６０１）の左上側において、図２に示す処理の実施時である初回（実行記録１：2013/10/01 10:00:00）の上記アプリケーションのプレビュー画面表示ウィンドウ（６１１）を示しているが、当該プレビュー画面表示ウィンドウ（６１１）内に、図２に示す処理の実施（初回）以外に、図３に示す処理をさらにｘ回実施した後のｘ＋１回目の上記アプリケーションのプレビュー画面を表示させるかを選択可能にするスクロール・バー（６９１）を備えている。ユーザは、当該スクロール・バー（６９１）を操作（例えば、Prevボタン（戻るボタン）の選択、又はNextボタン（進むボタン）の選択）することによって、プレビュー画面表示ウィンドウ（６１１）内に、現在表示している実行記録よりも古い又は新しい実行記録のプレビュー画面を表示させることができる。
【０１６２】
同様に、出力画面（６０１）では、当該出力画面（６０１）の右上側において、図２に示す処理の実施（初回）に加えて、図３に示す処理をさらに２回実施した後の３回目（実行記録３：2013/10/20 16:30:00）の上記アプリケーションのプレビュー画面表示ウィンドウ（６５１）を示しているが、当該プレビュー画面表示ウィンドウ（６５１）内に、図２に示す処理の実施（初回）に加えて、図３に示す処理をさらにｘ回実施した後のｘ＋１回目の上記アプリケーションのプレビュー画面を表示させるかを選択可能にするスクロール・バー（６９２）を備えている。ユーザは、当該スクロール・バー（６９２）を操作（例えば、Prevボタン（戻るボタン）の選択、又はNextボタン（進むボタン）の選択）することによって、プレビュー画面表示ウィンドウ（６５１）内に、現在表示している実行記録よりも古い又は新しい実行記録のプレビュー画面を表示させることができる。
【０１６３】
出力画面（６０１）において、上記左上側のプレビュー画面表示ウィンドウ（６１１）が上記右上側のプレビュー画面表示ウィンドウ（６５１）よりも時間的に過去の時点におけるアプリケーションの表示画面としうる。
【０１６４】
また、出力画面（６０１）では、上記左上側のプレビュー画面表示ウィンドウ（６１１）及び上記右上側のプレビュー画面表示ウィンドウ（６５１）において、どの記録区間（記録区間ｉ又は記録区間ｉ’，ｉ＝ｉ’）のプレビュー画面を表示させるかを選択可能にするスクロール・バー（６９３）を備えている。ユーザは、当該スクロール・バー（６９２）を操作（例えば、Prevボタン（戻るボタン）の選択、又はNextボタン（進むボタン）の選択）することによって、上記左上側のプレビュー画面表示ウィンドウ（６１１）及び上記右上側のプレビュー画面表示ウィンドウ（６５１）それぞれにおいて、特定の記録区間（記録区間ｉ（ｉ＝０〜ｎ）又は記録区間ｉ’（ｉ’＝０〜ｎ）のプレビュー画面表示を表示することができる。
【０１６５】
上記出力画面（６０１）についての説明は、下記図７Ａ〜図７Ｃに示す出力画面（７０１）及び下記図８Ａ〜図８Ｃに示す出力画面（８０１）においても同様に適用される。
【０１６６】
図６Ａにおいて、プレビュー画面表示ウィンドウ（６１１）は、実行記録１である初回（実行記録：2013/10/01 10:00:00）の記録区間５（ｉ＝５）のプレビュー画面を示す。プレビュー画面表示ウィンドウ（６５１）は、実行記録３である３回目（実行記録：2013/10/20 16:30:00）の記録区間５（ｉ’＝５）のプレビュー画面を示す。
【０１６７】
プレビュー画面表示ウィンドウ（６１１）とプレビュー画面表示ウィンドウ（６５１）との間で下記表示が異なっている：
・「----------」の文字修飾（高さ１ｐｘ（６１１ａ），高さ２ｐｘ（６５１ａ））
・「Hello, admin.」の表示位置（左揃え（６１１ｂ），右揃え（６５１ｂ））；
・「Version」番号（1.01（６１１ｃ），1.02（６５１ｃ））
・注意表示の有無（「Warning: 1 alert(s)」（６５１ｄ））：「Warning: 1alert(s)」は、プレビュー画面表示ウィンドウ（６１１）と比べて上記コントロール・パネル・アプリケーションに追加されたヘッダ部分である。当該ヘッダ部分の「Warning: 1 alert(s)」は、図６Ａに示す例において上記コントロール・パネル・アプリケーションにおいて、Status Cにアラートが上がっていることを示す警告表示である。
【０１６８】
プレビュー画面表示ウィンドウ（６１１）のうち、枠線部分（６１１ｃ）はＤＯＭの変更により生じる差異であり、枠線部分（６１１ａ，６１１ｂ）はＣＳＳの変更により生じる差異である。プレビュー画面表示ウィンドウ（６５１）のうち、枠線部分（６５１ｃ，６５１ｄ）はＤＯＭの変更により生じる差異であり、枠線部分（６５１ａ，６５１ｂ）はＣＳＳの変更により生じる差異である。
【０１６９】
プレビュー画面表示ウィンドウ（６１１）とプレビュー画面表示ウィンドウ（６５１）との間で異なって表示されている部分（すなわち、両表示ウィンドウの比較結果）が、強調表示されている。異なって表示されている部分は、ソースコードの変更によって影響された部分である。異なっている部分が文字である場合には、上記強調表示は例えば、当該文字の枠線囲み、当該文字の修飾（例えば、太字、斜体、下線、若しくは色付け）、又は、当該文字の行若しくは列の罫線囲みによる分割によって行われうる。異なっている部分が画像である場合には、上記強調表示は例えば、当該画像の枠線囲み、又は、当該画像の行若しくは列の罫線囲みによる分割によって行われうる。
【０１７０】
図６Ａにおいて、ＤＯＭツリーを表示するウィンドウ（６２１）は、プレビュー画面表示ウィンドウ（６１１）中の上記比較結果に影響するＤＯＭ要素を含むＤＯＭ要素ツリーを表示している。例えば、枠線部分（６２１ａ，６２１ｂ，及び６２１ｃ）はそれぞれ、プレビュー画面表示ウィンドウ（６１１）中に表示されている相違部分（６１１ａ，６１１ｂ，及び６１１ｃ）に影響を及ぼしているＤＯＭ要素に対応する。枠線部分（６２１ａ，６２１ｂ，及び６２１ｃ）は、当該枠線部分で囲まれた部分それぞれの背景色が異なるように強調表示されていてもよい。
【０１７１】
図６Ａにおいて、ＤＯＭツリーを表示するウィンドウ（６６１）は、プレビュー画面表示ウィンドウ（６５１）中の上記比較結果に影響するＤＯＭ要素を含むＤＯＭ要素ツリーを表示している。例えば、枠線部分（６６１ａ，６６１ｂ，６６１ｃ，及び６６１ｄ）はそれぞれ、プレビュー画面表示ウィンドウ（６５１）中に表示されている相違部分（６５１ａ，６５１ｂ，６５１ｃ，及び６５１ｄ）に影響を及ぼしているＤＯＭ要素に対応する。
【０１７２】
図６Ａにおいて、ＣＳＳを表示するウィンドウ（６３１，６７１）には、まだ何も表示されていないとする。
【０１７３】
図６Ｂに示すように、ユーザが、ＤＯＭツリーを表示するウィンドウ（６２１）中の枠線部分（６２１ａ）、すなわち強調表示されたＤＯＭ要素（６２１ａ）である<hr>タグを、例えばポインティング・デバイスをクリックして選択したとする。枠線部分（６２１ａ）は、上記した通り、プレビュー画面表示ウィンドウ（６１１）中に表示されている相違部分（６１１ａ）に影響を及ぼしているＤＯＭ要素に対応する。コンピュータは、上記枠線部分（６２１ａ）のクリックに応じて、ＤＯＭツリーを表示するウィンドウ（６２１）中において、当該クリック対象のＤＯＭ要素（６２１ａ）又は当該ＤＯＭ要素（６２１ａ）を含む近傍部分を強調表示する。上記コンピュータは例えば、ＤＯＭ要素（６２１ａ）である<hr>タグの背景色を変化させたり、又は、当該<hr>タグのフォントを変化させたりする。さらに、上記コンピュータは、上記枠線部分（６２１ａ）のクリックに応じて、プレビュー画面表示ウィンドウ（６１１）及びプレビュー画面表示ウィンドウ（６５１）中それぞれにおいて、枠線部分（６１１ａ）及び枠線部分（６５１ａ）をそれぞれ強調表示する。上記コンピュータは例えば、「----------」の背景色を変化させたり、又は、「----------」のフォントを変化させたりする。
【０１７４】
図６Ｃに示すように、コンピュータは、上記ＤＯＭ要素（６２１ａ）の選択に応答して、当該ＤＯＭ要素（６２１ａ）、及び当該ＤＯＭ要素（６２１ａ）に対応するＤＯＭ要素（６６１ａ）それぞれに適用されるＣＳＳの差分を検出し、当該検出した差分（６３１ａ，６７１ａ）を、ＣＳＳを表示するウィンドウ（６３１，６７１）それぞれに表示する。上記ＣＳＳの差分は、ＣＳＳを表示するウィンドウ（６３１）内では枠線（６３１ａ）であり、且つ、ＣＳＳを表示するウィンドウ（６７１）内では枠線（６７１ａ）である。ウィンドウ（６３１）内の枠線（６３１ａ）で表示される「+ height: 1px; (default)」は、ブラウザのデフォルトで使用される値で補われたものであり、ＣＳＳファイルに記載された内容によるものでない。すなわち、ＣＳＳファイルに記載された内容を単純に表示したものではない。従って、コンピュータは、ＣＳＳを表示するウィンドウ（６３１）内の、ＣＳＳファイルに記載された内容によるものでないが上記「+ height: 1px; (default)」と、ＣＳＳを表示するウィンドウ（６３１）内の、ＣＳＳファイルに記載された内容である上記「+ height: 2px;」とを比較して、その差分を求める。コンピュータは、当該差分を強調表示しうる。強調表示の態様は、上記において述べた態様と同様である。
【０１７５】
図６Ｃに示す例では、ユーザが、プレビュー画面表示ウィンドウ（６１１）及びプレビュー画面表示ウィンドウ（６５１）を目視するだけでは確認しづらい<hr>の高さが変更されていることを示している。上記検出した差分（６３１ａ，６７１ａ）において、ＣＳＳプロパティの名前は同じ「height」であるが、上記差分の一方（６３１ａ）中の当該ＣＳＳプロパティで定義された値（実際には、（default）と表記されているために、下記に述べるようにブラウザのデフォルトで使用される値で補われた値である）は「1px」であり、一方、上記差分の他方（６７１ａ）中の当該ＣＣＳプロパティで定義された値は「2px」である。従って、上記差分の一方（６３１ａ）と上記差分の他方（６７１ａ）との間で、上記定義された値が異なっている。
【０１７６】
ＣＳＳを表示するウィンドウ（６３１）では、<hr>のＣＣＳプロパティであるheightがＣＳＳファイルにおいて未定義である。従って、コンピュータは、上記プレビュー画面を表示するアプリケーション（例えば、ウェブ・アプリケーション）の初期値である1pxを使用して表示している。当該初期値は、ウェブ・アプリケーションごとに異なりうるものである。従って、ＣＳＳを表示するウィンドウ（６３１）では、ＣＳＳプロパティで定義された値との比較のための初期値が何であったかを補うために、（default）と表記している。
【０１７７】
図６Ｃに示すように、ユーザが、ＣＳＳプロパティの差分（６７１ａ）を、例えばポインティング・デバイスをクリックして選択したとする。コンピュータは、上記ＣＳＳプロパティの差分（６７１ａ）の選択に応答して、該当ファイルの定義された行にジャンプしうる。
【０１７８】
図７Ａに示す出力画面（７０１）は、図６Ｂに示すＤＯＭ要素（６２１ａ）の選択に応答して表示される画面である。従って、図７Ａに示す出力画面（７０１）は、図６Ｃに示す出力画面（６０１）と同じである。
【０１７９】
図７Ｂに示すように、ユーザが、ＤＯＭツリーを表示するウィンドウ（７２１）中の枠線部分（６２１ｂ）、すなわち強調表示されたＤＯＭ要素（６２１ｂ）を、例えばポインティング・デバイスをクリックして選択したとする。枠線部分（６２１ｂ）は、上記した通り、プレビュー画面表示ウィンドウ（７１１）中に表示されている相違部分（６１１ｂ）に影響を及ぼしているＤＯＭ要素に対応する。コンピュータは、上記枠線部分（６２１ｂ）のクリックに応じて、ＤＯＭツリーを表示するウィンドウ（７２１）中において、当該クリック対象のＤＯＭ要素（６２１ｂ）又は当該ＤＯＭ要素（６２１ｂ）を含む近傍部分を強調表示する。上記コンピュータは例えば、<p class="oneuiSubTitle">Hello,admin.</p>の背景色を変化させたり、又は、当該<p>タグのフォントを変化させたりする）。さらに、上記コンピュータは、上記枠線部分（６２１ｂ）のクリックに応じて、プレビュー画面表示ウィンドウ（７１１）及びプレビュー画面表示ウィンドウ（７５１）中それぞれにおいて、枠線部分（６１１ｂ）及び枠線部分（６５１ｂ）をそれぞれ強調表示する。上記コンピュータは例えば、「Hello, admin.」（６１１ｂ，６５１ｂ）の背景色を変化させたり、又は、「Hello, admin.」（６１１ｂ，６５１ｂ）のフォントを変化させたりする。なお、ＤＯＭツリーを表示するウィンドウ（７２１）中の枠線部分（６２１ｂ）にあるＤＯＭ要素と、ＤＯＭツリーを表示するウィンドウ（７６１）中の枠線部分（６６１ｂ）にあるＤＯＭ要素との間に差異はない。
【０１８０】
図７Ｃに示すように、コンピュータは、上記ＤＯＭ要素（６２１ｂ）の選択に応答して、当該ＤＯＭ要素（６２１ｂ）、及び当該ＤＯＭ要素（６２１ｂ）に対応するＤＯＭ要素（６６１ｂ）それぞれに適用されるＣＳＳの差分を検出し、当該検出した差分（７３１ｂ，７７１ｂ）を、ＣＳＳを表示するウィンドウ（７３１，７７１）それぞれに表示する。上記ＣＳＳの差分は、ＣＳＳを表示するウィンドウ（７３１）内では枠線（７３１ｂ）であり、且つ、ＣＳＳを表示するウィンドウ（７７１）内では枠線（７７１ｂ）である。コンピュータは、上記差分を強調表示しうる。強調表示の態様は、上記において述べた態様と同様である。
【０１８１】
図７Ｃに示すＣＳＳを表示するウィンドウ（７３１）では、上記ＤＯＭ要素（６２１ｂ）に適用される複数のＣＳＳ（７８１ａ，７８１ｂ）中において、より狭い範囲、及びより強い優先度を持つ要素順にＣＳＳプロパティが並べられている。また、同じＤＯＭ要素（６２１ｂ）に対して同じＣＳＳプロパティが定義されている場合には、適用されるＣＳＳプロパティ以外のＣＳＳプロパティ上に例えば取り消し線が引かれている（７８１ｂを参照）。
【０１８２】
図７Ｃに示すＣＳＳを表示するウィンドウ（７３１）は、当該ＣＳＳ（７８１ａ）の定義場所（/OneUI/OneUITheme.cssを併せて表示する。また、同様に、ＣＳＳを表示するウィンドウ（７３１）は、当該複数のＣＳＳ（７８１ｂ）の定義場所（/dojo/dijit/dijitTheme.css）を併せて表示する。
【０１８３】
同様に、ＣＳＳを表示するウィンドウ（７７１）では、上記ＤＯＭ要素（６６１ｂ）に適用される複数のＣＳＳ（７９１ａ，７９１ｂ）中において、より狭い範囲、及びより強い優先度を持つ要素順にＣＳＳプロパティが並べられている。また、同じＤＯＭ要素（６６１ｂ）に対して同じＣＳＳプロパティが定義されている場合には、適用されるＣＳＳプロパティ以外のＣＳＳプロパティ上に例えば取り消し線が引かれている（７９１ｂを参照）。ＣＳＳを表示するウィンドウ（７７１）では、当該複数のＣＳＳ（７９１ａ，７９１ｂ）それぞれの定義場所（/OneUI/OneUITheme.css及び/dojo/dijit/dijitTheme.css）を併せて表示する。
【０１８４】
図７Ｃに示す例では、ＤＯＭ要素<p>に適用されたoneuiSubTitleクラスのＣＳＳプロパティtext-alignが、ＣＳＳを表示するウィンドウ（７３１，７７１）それぞれ中において差分（７３１ｂ，７７１ｂ）として示されている。上記検出した差分（７３１ｂ，７７１ｂ）において、上記差分の一方（７３１ｂ）中の当該ＣＳＳプロパティで定義された値は「left」であり、一方、上記差分の他方（７７１ｂ）中の当該ＣＣＳプロパティで定義された値は「right」である。従って、上記差分の一方（７７１ｂ）と上記差分の他方（７７１ｂ）との間で、上記定義された値が異なっている。
【０１８５】
また、ＤＯＭ要素<body>に適用されたdijitTextクラスのfont-sizeはファイル・レベルでは差がある。すなわち、dijitTextクラス（７８１ｂを参照）では「font-size: large;」であり、dijitTextクラス（７９１ｂを参照）では「font-size: x-large;」である。しかしながら、ＣＳＳプロパティの優先度により、dijitTextクラスのfont-sizeの値（７８１ｂ及び７９１ｂを参照）ではなく、oneuiSubTitleクラスのfont-sizeの値（７８１ｂ，７９１ｂ）が表示に適用される。従って、プレビュー画面表示ウィンドウ（７１１）及びプレビュー画面表示ウィンドウ（７５１）における表示結果には、dijitTextクラスのfont-sizeの値（７８１ｂ及び７９１ｂを参照）は影響していないと判断されて、強調表示されていない。
【０１８６】
図７Ｃに示すように、ユーザが、ＣＳＳプロパティの差分（７７１ｂ）を、例えばポインティング・デバイスをクリックして選択したとする。コンピュータは、上記ＣＳＳプロパティの差分（７７１ｂ）の選択に応答して、該当ファイルの定義された行にジャンプしうる。
【０１８７】
図８Ａ〜図８Ｃは、本発明の実施態様に従い、上記変更によって生じる影響を検知し、当該検知の結果の出力例を示す。
【０１８８】
図８Ａ〜図８Ｃは上記検知の結果の出力画面（８０１）を示し、当該出力画面（８０１）は、当該出力画面（８０１）の左側において、図２に示す処理の実施（初回）時である（実行記録１：2013/10/01 10:00:00）の記録区間５（ｉ＝５）における上記アプリケーションのプレビュー画面表示ウィンドウ（８１１）、当該記録区間５（ｉ＝５）におけるＤＯＭツリーを表示するウィンドウ（８２１）、及び当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳを表示するウィンドウ（８３１）を示し、並びに、当該出力画面（８０１）の右側において、図２に示す処理の実施に加えて、図３に示す処理をさらに１回実施した後の２回目（実行記録２：2013/10/10 14:20:00）の記録区間５（ｉ’＝５）における上記アプリケーションのプレビュー画面表示ウィンドウ（８５１）、当該記録区間５（ｉ’＝５）におけるＤＯＭツリーを表示するウィンドウ（８６１）、及び当該ＤＯＭツリーの各ＤＯＭ要素に適用される１又は複数のＣＳＳを表示するウィンドウ（８７１）を示す。
【０１８９】
図８Ａに示す例では、プレビュー画面表示ウィンドウ（８１１）及びプレビュー画面表示ウィンドウ（８５１）それぞれに表示されるコンテンツに差がない。従って、プレビュー画面表示ウィンドウ（８１１）及びプレビュー画面表示ウィンドウ（８５１）それぞれ中に、差分を示すための強調表示がされていない。
【０１９０】
同様に、ＤＯＭツリーを表示するウィンドウ（８２１）中の当該ＤＯＭツリーの各ＤＯＭ要素と、ＤＯＭツリーを表示するウィンドウ（８６１）中の当該ＤＯＭツリーの各ＤＯＭ要素との間に差がない。従って、ＤＯＭツリーを表示するウィンドウ（８２１）及びＤＯＭツリーを表示するウィンドウ（８６１）それぞれ中に、差分を示すための強調表示がされていない。
【０１９１】
図８Ｂに示す出力画面（８０１）は、図８Ａに示す出力画面（８０１）と同じである。図８に示すように、ユーザが、ＤＯＭツリーを表示するウィンドウ（８２１）中のＤＯＭ要素「<p class="oneuiSubTitle">Hello,admin.</p>」（枠線部分）を、例えばポインティング・デバイスをクリックして選択したとする。当該枠線は、選択箇所を明示するために付したものであって、実際の画面上に枠線が表示されている必要はない。
【０１９２】
図８Ｃに示すように、コンピュータは、上記ＤＯＭ要素の選択に応答して、当該選択されたＤＯＭ要素、及び当該選択されたＤＯＭ要素に対応するＤＯＭ要素「<p class="oneuiSubTitle">Hello,admin.</p>」（８６１を参照）それぞれに適用されるＣＳＳの差分を検出する。コンピュータは、上記選択されたＤＯＭ要素に適用されるＣＳＳ、及び上記選択されたＤＯＭ要素に対応するＤＯＭ要素に適用されるＣＳＳをそれぞれ、ＣＳＳを表示するウィンドウ（８３１）及びＣＳＳを表示するウィンドウ（８７１）に表示する。しかしながら、コンピュータは、上記ＣＳＳの間に差分が検出されないために、ＣＳＳを表示するウィンドウ（８３１）中のＣＳＳ及びＣＳＳを表示するウィンドウ（８７１）中のＣＳＳに強調表示を付さない。
【０１９３】
図９は、図１に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションに対する変更によって生じる影響を検知するコンピュータの機能ブロック図の一例を示した図である。
【０１９４】
コンピュータ（９０１）は、本発明の実施態様に従い、上記アプリケーションのソースコードを変更することによって生じる影響を検知するコンピュータであり、例えば図１に示すコンピュータである。
【０１９５】
コンピュータ（９０１）は、保存手段（９１１）、取得手段（９１２）、比較手段（９１３）、及び出力手段（９１４）を備えている。
【０１９６】
保存手段（９１１）は、上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを、例えば記憶媒体（９２１）（図２に示す記憶媒体（２９１）に対応する）中に又は記憶媒体（９２２）（図２に示す記憶媒体（２９２）に対応する）中に保存する。
【０１９７】
保存手段（９１１）は、図２に示すステップ２０３〜２１６を実行しうる。
【０１９８】
取得手段（９１２）は、上記ソースコードを変更することが行われた後に、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得し、例えば記憶媒体（９２３）（図３に示す記憶媒体（３９２）に対応する）中に保存する。
【０１９９】
取得手段（９１２）は、図３に示すステップ３０３〜３１４を実行しうる。
【０２００】
比較手段（９１３）は、保存手段（９１１）が保存したＤＯＭツリー及びＣＳＳを、例えば記憶媒体（９２１）又は記憶媒体（９２２）から読み出し、且つ、取得手段（９１２）が保存したＤＯＭツリー及びＣＳＳを、例えば記憶媒体（９２３）から読み出す。比較手段（９１３）は、上記記憶媒体（９２１）又は記憶媒体（９２２）から読み出したＤＯＭツリー及びＣＳＳと、上記記憶媒体（９２３）から読み出したＤＯＭツリー及びＣＳＳとを、同じタイミングごとにそれぞれ比較する。特には、比較手段（９１３）は、上記ＤＯＭツリー中の各ＤＯＭ要素と、対応するＤＯＭツリー中の対応する各ＤＯＭ要素とを比較しうる。また、特には、上記ＣＳＳ中の各ＣＳＳプロパティの各値と、対応するＣＳＳ中の対応する各ＣＳＳプロパティの各値とを比較しうる。
【０２０１】
比較手段（９１３）は、図３に示すステップ３１５、並びに、図４Ａに示すステップ４０２〜４１０及び４１２を実行しうる。
【０２０２】
出力手段（９１４）は、比較手段（９１３）が比較した比較結果を出力する。
【０２０３】
出力手段（９１４）は、図４Ｂに示すステップ４１１を実行しうる。
【０２０４】
図１０は、図１に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い、ＤＯＭツリーとＣＳＳとが取り出されることが可能なアプリケーションに対する変更によって生じる影響を検知するコンピュータの機能ブロック図の一例を示した図である。
【０２０５】
図１０に示すコンピュータ（１００１）は、図９に示すコンピュータ（９０１）と同様に、取得手段（１０１２）、比較手段（１０１３）、及び出力手段（１０１４）を備えている。コンピュータ（１００１）が備えている取得手段（１０１２）、比較手段（１０１３）、及び出力手段（１０１４）はそれぞれ、コンピュータ（９０１）が備えている取得手段（９１２）、比較手段（９１３）、及び出力手段（９１４）にそれぞれ対応する。図１０に示すコンピュータ（１００１）は、図９に示すコンピュータ（９０１）が備えている保存手段（９１１）を備えていない点で異なる。
【０２０６】
コンピュータ（１００１）は、上記アプリケーション上でのユーザの入力操作と、画面状態をチェックしたい少なくとも１つのタイミングごとにＤＯＭツリー及びＣＳＳとを保存した、例えば記憶媒体（１０２１）（図２に示す記憶媒体（２９１）に対応する）及び記憶媒体（１０２２）（図２に示す記憶媒体（２９２）に対応する）にアクセス可能である。
【０２０７】
取得手段（１０１２）は、上記ソースコードを変更することが行われた後に、記憶媒体（１０２２）にアクセスして、上記入力操作を当該操作順にエミュレートし、上記画面状態をチェックしたい上記少なくとも１つのタイミングと同じタイミングごとにＤＯＭツリー及びＣＳＳを取得し、例えば記憶媒体（１０２３）（図３に示す記憶媒体（３９２）に対応する）中に保存する。
【０２０８】
取得手段（１０１２）は、図３に示すステップ３０３〜３１４を実行しうる。
【０２０９】
比較手段（１０１３）は、例えば記憶媒体（１０２１）又は記憶媒体（１０２２）中に保存されているＤＯＭツリー及びＣＳＳと、例えば記憶媒体（１０２３）中に保存されているＤＯＭツリー及びＣＳＳとを、同じタイミングごとにそれぞれ比較する。
【０２１０】
比較手段（１０１３）は、図３に示すステップ３１５、並びに、図４Ａに示すステップ４０２〜４１０及び４１２を実行しうる。
【０２１１】
出力手段（１０１４）は、比較手段（１０１３）が比較した比較結果を出力する。
【０２１２】
出力手段（１０１４）は、図４Ｂに示すステップ４１１を実行しうる。
【図１】
0005991695.tif 000002
【図２】
0005991695.tif 000003
【図３】
0005991695.tif 000004
【図４Ａ】
0005991695.tif 000005
【図４Ｂ】
0005991695.tif 000006
【図５Ａ】
0005991695.tif 000007
【図５Ｂ】
0005991695.tif 000008
【図６Ａ】
0005991695.tif 000009
【図６Ｂ】
0005991695.tif 000010
【図６Ｃ】
0005991695.tif 000011
【図７Ａ】
0005991695.tif 000012
【図７Ｂ】
0005991695.tif 000013
【図７Ｃ】
0005991695.tif 000014
【図８Ａ】
0005991695.tif 000015
【図８Ｂ】
0005991695.tif 000016
【図８Ｃ】
0005991695.tif 000017
【図９】
0005991695.tif 000018
【図１０】
0005991695.tif 000019