JP2018139106A - クラウド接続された自動テスティング - Google Patents

クラウド接続された自動テスティング Download PDF

Info

Publication number
JP2018139106A
JP2018139106A JP2017246572A JP2017246572A JP2018139106A JP 2018139106 A JP2018139106 A JP 2018139106A JP 2017246572 A JP2017246572 A JP 2017246572A JP 2017246572 A JP2017246572 A JP 2017246572A JP 2018139106 A JP2018139106 A JP 2018139106A
Authority
JP
Japan
Prior art keywords
test
cases
thread
independent
cloud
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017246572A
Other languages
English (en)
Other versions
JP6580664B2 (ja
Inventor
サギノー,ジョナサン
Saginaw Jonathan
ジェイ ダリゴ,オースティン
J Darigo Austin
ジェイ ダリゴ,オースティン
エム スティーブンス,アレクシス
M Stevens Alexis
エム スティーブンス,アレクシス
シー アンダーソン,ジョン
c anderson John
シー アンダーソン,ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Accenture Global Solutions Ltd
Original Assignee
Accenture Global Solutions Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Accenture Global Solutions Ltd filed Critical Accenture Global Solutions Ltd
Publication of JP2018139106A publication Critical patent/JP2018139106A/ja
Application granted granted Critical
Publication of JP6580664B2 publication Critical patent/JP6580664B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】アプリケーションを様々な動作環境において複数のテストケースを用いてテストするための低コスト、高スループットの自動マルチスレッド・テスティングプラットフォームを提供する。【解決手段】クラウド接続された自動テスティング(CCAT)は、クラウド・インフラストラクチャ上にホストされ、CCATへの入力は、スプレッドシートにおけるキーワード・エントリのような、人が読むことができるフォーマットに基づく。CCATは、それによって、テスタがPythonのように高度に専門化されて用いるのが難しいコーディング言語を理解する必要性を低減する。【選択図】図1

Description

本出願は、アプリケーションの自動テスティングに関する。
コンピュータハードウェアおよびソフトウェア・ケイパビリティの爆発的な発展は、日々の生活のほぼあらゆる側面に影響を与える高度な処理システムの実装に繋がった。より最近の開発は、これらのシステムが仮想化された形態をとり、世界中のどこでもコンピューティング・インフラストラクチャ上にホストされることを可能にした。これらのコンピュータハードウェアおよびソフトウェア・システムを効率的にテストすることが重要な技術的課題である。
本開示の一態様によれば、方法は、アプリケーションに係わる複数の独立したテストケースを備えるテストスイートを受信するステップと、テストスイートから複数のテストケースに関するテストデータを識別するステップと、テストスイートから複数のテストケースの各々に関して行われることになるテストステップを識別するステップと、テストスイートから独立したテストケースを実行するための複数の異なる動作環境を識別するステップとを備えてよい。方法は、複数の異なる動作環境のうちの1つにおける複数のテストケースのうちの1つの組み合わせごとに、リモートテストドライバを備える独立したテストスレッドをインスタンス化するステップと、独立したテストスレッドに関するスレッド固有のテストデータセットを作成するために独立したテストケースのうちの1つに関してテストスイートから識別されたテストデータおよび識別されたテストステップをリモートテストドライバ中へコピーするステップとをさらに備えてよい。方法は、スレッド固有のテストデータセットおよびリモートテストドライバに基づいてテストスレッドを実行することによって複数のテストケースを複数の異なる動作環境の各々に対して独立に実行するステップをさらに備えてよい。
本開示の別の態様によれば、クラウドベースのプラットフォームは、通信インターフェース、メモリ、ならびにメモリおよび通信インターフェースと通信を行う回路素子を備えてよい。回路素子は、通信インターフェースを介して、アプリケーションに係わる複数の独立したテストケースを備えるテストスイートを受信し、テストスイートから複数のテストケースに関するテストデータを識別し、テストスイートから複数のテストケースの各々に関して行われることになるテストステップを識別して、テストスイートから独立したテストケースを実行するための複数の異なる動作環境を識別するように構成されてよい。回路素子は、複数の異なる動作環境のうちの1つにおける複数のテストケースのうちの1つの組み合わせごとに、リモートテストドライバを備える独立したテストスレッドをインスタンス化し、独立したテストスレッドに関するスレッド固有のテストデータセットを作成するために独立したテストケースのうちの1つに関してテストスイートから識別されたテストデータおよび識別されたテストステップをリモートテストドライバ中へコピーするようにさらに構成されてよい。回路素子は、スレッド固有のテストデータセットおよびリモートテストドライバに基づいてテストスレッドを実行することによって複数のテストケースを複数の異なる動作環境の各々に対して独立に実行するようにさらに構成されてよい。
本開示の別の態様によれば、方法は、ウェブサイトをテストするためのテストアクションのセットのうちのテストアクションに各々が対応するキーワードのセットを予め定義するステップと、テストマスタドキュメントおよび、各々がそのウェブサイトに係わる複数の独立したテストケースのうちの1つに関する、複数のテストスクリプト記述子を備えるテストスイートを受信するステップであって、各テストスクリプト記述子が予め定義された文法規則に従って配置されたキーワードのセットの複数のキーワードを備える、受信するステップと、テストスイートから複数のテストケースに関するテストデータを識別するステップと、テストスクリプト記述子から複数のキーワードおよびテストステップが行われることになるかどうかを示すテストスクリプト記述子中のインジケータ・フィールドに従って複数のテストケースに関して行われることになるテストステップを識別するステップと、テストマスタドキュメントから独立したテストケースを実行するための複数の異なる動作環境を識別するステップであって、各動作環境が少なくとも1つのタイプのウェブブラウザを備える、動作環境を識別するステップとを備えてよい。方法は、複数の異なる動作環境のうちの1つにおける複数のテストケースのうちの1つの組み合わせごとに、リモートテストドライバを備える独立したテストスレッドをインスタンス化するステップと、独立したテストスレッドに関するスレッド固有のテストデータセットを作成するために独立したテストケースのうちの1つに関してテストスイートから識別されたテストデータおよび識別されたテストステップをリモートテストドライバ中へコピーするステップとをさらに備えてよい。方法は、スレッド固有のテストデータセットおよびリモートテストドライバに基づいてテストスレッドを実行することによって複数のテストケースを複数の異なる動作環境の各々に対して独立に実行するステップをさらに備えてよい。
クラウド接続された自動テスティングシステムを示す図である。 代わりのクラウド接続された自動テスティングシステムを示す図である。 クラウド接続された自動テスティングシステムにおいて用いられてよい例示的な処理回路素子を示す図である。 クラウド接続された自動テスティングシステムのコードパイプラインのための例示的な論理フロー図である。 クラウド接続された自動テスティングシステムのコードパイプラインのための例示的な論理フロー図である。 複数の動作環境において複数のテストケースを行うマルチスレッド実装を示す図である。 複数の動作環境において複数のテストケースを行う代わりのマルチスレッド実装を示す図である。 複数の動作環境において複数のテストケースを行う別の代わりのマルチスレッド実装を示す図である。 クラウド・インフラストラクチャの複数の動作環境において複数のテストケースを行う具体的なマルチスレッド実装を示す図である。 テストケースに関するスプレッドシート・フォーマットでの例示的なキーワード・ベースの入力テストスクリプトを示す図である。 期待されるテスト出力を含むテストケースに関するスプレッドシート・フォーマットでの例示的なキーワード・ベースの入力テストスクリプトを示す図である。 複数の動作環境において複数のテストケースを行うための命令を指定するスプレッドシート・フォーマットでのテストマスタを示す図である。 クラウド接続された自動テスティングシステムを用いた、独立したスレッドとしてのテストケースおよび動作環境の各組み合わせの実行を示す図である。 スレッドの重複を有するマルチスレッド・テスティングの実装を示す図である。 2つのテストケースに関して3つの動作環境における実際のテスティングを図12および図13の実装の間で比較して示し、図13の実装におけるスレッド重複の不測の効果を示す図である。 テストの音声および他のリモート・アクティブ化のための構成要素およびインターフェースをさらに含む、AWS環境内に実装されたクラウド接続された自動テスティングシステムを示す図である。
ソフトウェア・アプリケーションの展開の成功は、それらのリリース前の包括的なテスティングに決定的に依存する。アプリケーションは、独立したテストケースの包括的なセットを用いて十分にテストされる必要がある内部機能を含むことがあり、各テストケースは、アプリケーションの複数の側面または機能の1つ以上を検証するように設計されうる。加えて、アプリケーションは、プラットフォームに依存しうるソフトウェアスタックおよびライブラリのレイヤに基づいて開発されることがあるため、アプリケーションのテスティングは、アプリケーションの多種多様なユーザロケーションに位置しうる多種多様な動作環境において行う必要がありうる。そのように、アプリケーションの完全なテスティングは、複数の動作環境において多数の独立した各々のテストケースを実行することを伴い、リソース集約的で、エラーを生じやすく、時間がかかることになりかねない。
例えば、アプリケーションは、テスティングの観点からは複雑な関連ウェブページのコレクションを含むウェブサイトであってもよい。具体的には、ウェブサイトは、少なくとも1つのウェブサーバ上にホストされるが、多くの異なるタイプのユーザによって多くの異なるユーザデバイス上で多くの異なるタイプのウェブブラウザを用いてアクセスされ、見られてよい。ウェブページは、ウェブページがアクセスされるときに、ウェブブラウザがユーザに表示するものを指してもよく、または代わりにウェブページと関連付けられて、ウェブサーバからダウンロードされ、かつウェブブラウザによってインタープリットされるファイルのセットを指してもよい。これらのファイルは、典型的に、ハイパーテキストマークアップ言語(HTML:Hyper Text Markup Language)または他の同等のマークアップ言語であってよい。HTMLファイルは、手作業で書かれてもよく、またはウェブサーバによって動的に生成されてもよい。各HTMLファイルは、固有のユニフォームリソースロケータ(URL:Uniform Resource Locator)によって識別されてよい。ウェブページは、テキスト、アニメーション、ビデオ、オーディオ、および他のアプリケーションなどのコンテンツが埋め込まれてよい。ウェブページは、ユーザ入力のための要素、例えば、テキストを入力するためのボックス、およびユーザ選択を入力するためのラジオ・ボタンまたはドロップダウンメニューなどをさらに含んでよい。これらのユーザ入力は、さらなる処理のためにウェブサーバへ提出されてよい。例えば、これらのユーザ入力に基づいて動的HTMLファイルがウェブサーバによって生成されてよい。ウェブページは、ユーザが同じウェブサイト内の様々なウェブページ間またはウェブサイト間を横断することを可能にする、他のウェブページへのハイパーリンク(URL)をさらに含んでよい。HTMLファイルは、JavaScriptのような言語で書かれた、例えばアプレットの形態の1つ以上の非HTML要素をカプセル化してよい。表示されるウェブページの部分を作り出すために、これらの埋め込まれた非HTML要素がウェブブラウザにおける対応するエンジンによって実行されてよい。
上記のようなウェブサイトおよびウェブページの複雑さに加えて、各ユーザは、異なるウェブブラウザ、例えば、Firefox、Google Chrome、Internet Explorer/Microsoft Edge、Opera、およびSafariのうちの1つ以上を彼/彼女のデバイス上にインストールすることを選んでよい。これらのウェブブラウザの各々は、さらに、以下には限定されないが、様々なバージョンのMicrosoft Windows、Appleオペレーティングシステム、およびLinusベースのオペレーティングシステムを含む(潜在的に仮想化された)異なるオペレーティングシステムで実行してよい。加えて、これらのウェブブラウザは、様々な物理的形態(携帯電話、タブレット、パーソナルコンピュータなど)および表示特性のユーザデバイスに対して異なるケイパビリティのセットを含んでよい。ブラウザのタイプ、ブラウザが実行されるオペレーティングシステム、およびユーザデバイスの物理的形態の組合せは、ウェブサイトおよびウェブページに関してテストされることが必要な多くの可能な数の動作環境を生じさせる。
以下の開示は、クラウドで実行する複数の並列テストスレッドを用いて、複雑なアプリケーションに係わる複数のテストケースを複数の動作環境において実施するための方法、装置、およびシステムを提供する。ウェブサイトおよびウェブページをテストするための具体的な実装が本開示の様々な他のアプリケーション・テスティングの文脈への一般的な適用性を失うことなく例として記載される。
図1は、ウェブサイトまたはウェブページ(以下では一般にウェブページと呼ばれる)の自動テスティングをクラウドに実装するための例示的なシステム100を示す。システム100は、102_1、102_2、および102_Mを含むテスタ(代わりにクライアントと呼ばれる)102からのテストタスクを処理して、処理したテストタスクをクラウド112内のテストハーネス114に実装するためにクラウド接続された自動テスティング(CCAT:Cloud Connected Automated Testing)サーバ108を含む。CCATサーバ108は、単一のロケーションに集中してもよく、または複数の地理的ロケーションにわたって分散されてもよい。クライアント102は、通信ネットワーク110を介してCCATサーバ108と通信してよい。同様に、CCATサーバ108は、通信ネットワーク110を介してテストハーネス114と通信してよい。通信ネットワーク110は、例えば、インターネット・プロトコル(IP)に基づいてもよく、有線または無線アクセスネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および他のコンピュータネットワークの組み合わせを含んでもよい。
テスタは、CCATサーバによる自動実行のためにテストを提出できるリモート端末デバイスであってよい。テストは、遠隔的にテストされることになるウェブサイトのプロバイダのQA(品質保証:Quality Assurance)人員によって、いずれかのテスタを介して提出されてよい。テスタは、代わりにテスタデバイスと呼ばれてもよく、以下には限定されないが、携帯電話、タブレット、ラップトップコンピュータ、パーソナルコンピュータ、および携帯情報端末(PDA:Personal Digital Assistant)を含むいずれかの適切な電子デバイスであってよい。QA人員は、ウェブサイトのデベロッパおよびプログラマとは異なってよい。以下に記載されるようなシステム100に基づくウェブページ・テスティングの特定の実装では、QAは、ウェブページのコーディングについて技術的に高度である必要はない。さらにまた、CCATサーバ108は、テスタから遠隔的にどこからでもアクセスされてよい。例えば、CCATサーバは、ウェブサイトをホストするウェブサーバを含んでもよい。そのように、テスタ102は、CCATサーバと通信するためのウェブブラウザを含み、テスタのいずれかのロケーションからCCATウェブサーバによりホストされたウェブページに遠隔的にアクセスすることによってテスタタスクを提出してよい。代わりに、テスタ102は、CCATサーバに遠隔的にアクセスするための専用テスタソフトウェアがテスタデバイス上に局所的にインストールされてもよい。システム100では、クラウド114およびCCATサーバ108が別個の独立したサービスプロバイダによって操作されてよい。
テスタから提出されたテストケースと関連付けられるテストステップおよびテストデータは、120_1、120_2、および120_Mなど、テストスクリプト120として予め定義されたフォーマットで指定されてよい。CCATサーバ108は、これらのフォーマットされたテストスクリプトを受信して、それらを、その例示的な実装が以下により詳細に記載される、コードパイプライン130を介してテストコード140へ処理する。処理されたテストコード140は、クラウドへ送られて、テストハーネス114によって実行されてよい。テスト結果150は、次にCCATサーバを介した通信によってテスタ120へ戻されてよい。
図2は、ウェブページのクラウド接続された自動テスティングを実装するための代わりのシステム200を示す。システム200は、CCATサーバの機能がクラウド内に実装されてよいことを除いてシステム100と同様である。そのように、CCATサービスプロバイダは、それ自体のサーバを維持して操作することが必要でなくてよい。むしろ、CCATサービスプロバイダは、コードパイプライン130を含めて、CCAT機能を実装するために、1つ以上のクラウドサービスプロバイダからクラウド112内のハードウェアおよび/またはプラットフォームを活用してよい。
図1および2のシステム200とは別の代わりのシステムでは、テストスクリプト120_1、102_2、および102_Mは、クラウド112内のデポジトリに記憶されてよい。テストスクリプトをクラウドデポジトリ中へ提出するために、リモートテスタデバイス102が用いられてよい。例えば、CCATウェブサーバにアクセスしているウェブブラウザを介して、クラウドデポジトリ内に記憶されたテストまたは一群のテストに関して自動プロセスを開始するための命令を通信するために、リモートテスタデバイス102がさらに用いられてよい。
CCATサーバ、ウェブサーバ、およびクラウド内に構成されたサーバを含めて、サーバ、ならびにテスタデバイスは、例えば、図3に示されるように、各々が処理回路素子301として実装されてよい。処理回路素子301は、通信インターフェース302、システムリソース304、入力/出力(I/O)インターフェース306、および局所的またはリモート表示のためのマシンインターフェイス310を生成する表示回路素子308を含んでよい。マシンインターフェイス310およびI/Oインターフェース306は、GUI、タッチセンシティブ表示、音声または顔認識入力、ボタン、スイッチ、スピーカおよび他のユーザインターフェース要素を含んでよい。I/Oインターフェース306は、磁気または光媒体インターフェース(例えば、CDROMもしくはDVDドライブ)、シリアルおよびパラレルバスインターフェース、ならびにキーボードおよびマウスインターフェースをさらに含んでよい。
通信インターフェース302は、無線送信機および受信機(「トランシーバ」)312ならびにトランシーバ312の送信/受信回路素子が用いる任意のアンテナ314を含んでよい。トランシーバ312およびアンテナ314は、Wi−Fiネットワーク通信を、例として、IEEE802.11の任意のバージョン下、例えば、802.11nまたは802.11acでサポートしてよい。通信インターフェース302は、有線トランシーバ316も含んでよい。有線トランシーバ316は、広範囲にわたる通信プロトコルのいずれか、例えば、任意のタイプのイーサーネット、データオーバーケーブルサービスインターフェイス仕様(DOCSIS:data over cable service interface specifiction)、デジタル加入者回線(DSL:digital subscriber line)、同期型光ネットワーク(SONET:synchronous optical network)、または他プロトコルのための物理層インターフェースを提供してよい。
処理回路素子301は、通信ネットワーク110を介してテスタ102と通信を行ってよい。処理回路素子301は、直接にあるいは通信ネットワーク110を介して、さらに記憶装置318と通信を行ってよい。記憶装置318は、以下には限定されないが、磁気または光ディスク、固体媒体、および磁気テープを含めて、任意のタイプの記憶媒体を備えてよい。記憶装置318は、集中してもよく、または代わりに分散記憶ネットワークとして編成されてもよい。
図3に示されるように、処理回路素子301のシステムリソース304は、ハードウェア、ソフトウェア、ファームウェア、または他の回路素子およびリソースを任意の組み合わせで含んでよい。システムリソース304は、例えば、命令プロセッサ320を含んでもよい。システムリソース304は、さらにメモリ330を含んでよい。システムリソース304は、例えば、固体メモリ、ランダムアクセスメモリ、個別アナログおよびデジタル回路、ならびに他の回路素子と組み合わせた、1つ以上のシステムオンチップ(SoC:system on a chip)、特定用途向け集積回路(ASIC:application specific integrated circuit)、マイクロプロセッサとして実装されてよい。システムリソース304は、処理回路素子301における任意の所望の機能性の実装のための基本的なプラットフォームを提供する。メモリ330は、例えば、CCATサーバ、テストハーネス・サーバ、またはテスタデバイスの所望の機能性を実施するためにプロセッサ320が実行しうる命令を記憶する。
図4Aは、CCATサーバ108の例示なコードパイプライン130を図示する。特に、CCATサーバは、例えば、テスタ102によって提出されたテストスクリプト120をテストコード140へトランスコードするためにCCATエンジン414を実行する。CCATエンジン414は、必要なだけ頻繁にアップデートされ、再コンパイルされてよい。例えば、CCATエンジン414は、すべてのテストスクリプトが提出されるたびに、リアルタイムでコンパイルされ、再生されてもよい。CCATエンジンに関するソースコードは、ソースコード・サーバ410内に記憶されてよい。ソースコード・コンパイラ412は、いつでも修正またはアップデートされてよいCCATソースコードをコンパイルするために用いられてよい。コンパイルされたCCATエンジンは、テストスクリプト120をテスタ102から通信ネットワーク110を介して入力として取得して、そのテストスクリプトを、図1または図2のクラウドベースのテストハーネス114によってインタープリットされ、実行されてよいテストコード140へトランスコードする。例として、クラウドベースのテストハーネスは、クラウド内に構成され、Selenium(登録商標)グリッドのような、テストハブおよびテストノードを含むテストグリッドであってよい。
図4Bは、コードパイプライン130の代わりの実装を図示する。図4Bのコードパイプライン130では、CCATエンジン414およびソースコード・コンパイラ412は、CCATエンジンのソースコードおよびテスタ102からの入力テストスクリプト120を単一ステップでテストコード140へ処理する、継続的インテグレーション・コンパイラ412/414へ組み合わされてよい。そのように、テスタによってテストが提出されるたびに、継続的にアップデートされたCCATエンジンのソースコードが利用されてよい。
コードパイプライン130は、テストスクリプト120を、各々がテストハーネス114によって独立したスレッドとして実行されることになる複数のテストケースのテストコード140へ、トランスコードするように具体的に構成されてよい。そのうえ、コードパイプラインは、異なる動作環境に対して各テストケースが並列に実行されうるようにテストコード140を生成してよい。例えば、図5に示されるように、テストスクリプト120は、N個のテストケースのうちの独立したテストケースに各々が対応する、複数のテストスレッド502、504、および506として実行するようにトランスコードされてよい。テストケースは、例えば、データ依存性をそれらが有さない、すなわち、1つのテストケースの実行が他のいずれかのテストケースのステータスまたは出力に依存しないときには、独立している。テストスクリプト120において指定されたそのテストステップおよびテストデータを含む、各テストケースは、それぞれ510、520、530、および512、522、532で示される、動作環境1および動作環境2の両方において実行してよい。記載を簡潔にするために、ここでは2つの非限定の動作環境が参照される。先に考察されたように、多くの動作環境をウェブブラウザの異なるバージョン、オペレーティングシステム、およびユーザデバイスの組み合わせとしてテストする必要がありうる。
図5に関して先に記載されたことの代わりに、テストコード140は、各動作環境における各テストケースが独立したスレッドとしてテストハーネス114によって実行されうるようにコードパイプラインによって生成されてもよい。このことが図6中の610、612、620、622、630、および632で示される。具体的には、テストを各々N個のテストケースのうちの1つに関する図5におけるN個のスレッドとして実行するのではなく、N×K個の独立したスレッドとしてテストが実行されてよく、ここでKは、テストされる動作環境の数を示す。
コードパイプライン130によって生成されたテストコードは、Selenium(登録商標)グリッドのような、テスティンググリッドを介してテストインスタンスをインスタンス化してよい。テストコードは、従って、テスティンググリッド中に、Selenium(登録商標)リモートウェブドライバオブジェクトのような、テストオブジェクトを起動するようにフォーマットされた、テストステップおよびテストデータのコレクションを含んでよい。テスティンググリッドは、テストハブ、およびクラウド112内に予め作成された1つ以上のテストノードを含む。テストハブおよびテストノードの各々は、例として、IPアドレスおよび/またはポート番号によって識別されてもよい。図5に対応して、各々複数の動作環境のうちの1つに対するテスティンググリッド・ウェブドライバ中にテストオブジェクトを作成するために、テストケースごとのテストスレッドが独立にインスタンス化されてよい。例えば、図5中の(テストケース1に関する)テストスレッド502に対して、動作環境1および2は、それぞれMicrosoft Windows2006におけるGoogle Chromeの最新バージョンおよびMAC OSX v.10.7におけるSafari6.1.6であってよい。それに対応して、コードパイプラインによって生成されるテストコードは、テストケース1に関する独立したスレッドを作成するためのコマンドを含んでよい。そのスレッド内に、コードパイプラインによって生成されるテストコードは、テストケース1と関連付けられたテストステップおよびテストデータを、やはり、適切なテスティンググリッド関数呼び出しを介して実行するために、ChromeおよびSafariウェブドライバオブジェクト(または適切なChromeもしくはSafariケイパビリティのウェブドライバ)を作成するための適切なテスティンググリッド・オブジェクトへの関数呼び出しをさらに含んでよい。上記の実装は、図5のテストケース2およびテストケースNのような、他のテストケースに関するテストスレッドに等しく適用される。
代わりに、図6に対応して、コードパイプラインによって生成されるテストコードは、テストケースおよび動作環境の組み合わせごとに1つのテストスレッドを作成するように構成されてもよい。そのように、テストケースごとのテストステップおよびテストデータが、実際、様々な動作環境に対して独立したテストスレッド中へコピーされる。具体的にはテストスレッドに関して、テストされることになる動作環境に対応するテスティンググリッド・ウェブドライバが作成される。独立したスレッド中に作成されたテスティンググリッド・ウェブドライバにおける様々な動作環境に対して、テストケースのテストステップおよびテストデータが並列に実行される。
別の実装では、図7に示されるように、テストコード140は、テストハブおよび少なくとも1つのテストノードを有するテスティンググリッドを各々がインスタンス化する、702、704および706のような「L」個の独立したテストスレッドを作成するためにコードパイプラインによって生成されてもよい。具体的には、テストスレッド702、704、および706は、対応するテストケースのテストステップを実行するためのテストハブおよびテストノードの対710/712、720/722、および730/732をそれぞれスポーンしてよい。例えば、各テストスレッド702、704、または706が1つのテストケースに対応してよく、そのように、テストハブ/テストノードの対応する対における各テストスレッドによって様々な動作環境に対して様々なテスティンググリッド・ウェブドライバがインスタンス化されてよい。代わりに、各テストスレッド702、704、または706がテストケースおよびテスト環境の1つの組み合わせに対応してもよく、それに応じて、テストハブおよびテストノードの各対において1つの適切なテスティンググリッド・ウェブドライバがインスタンス化されてもよい。
図8は、CCATコードパイプラインおよび仮想的な伸縮性テストクラウド802内に実装されたテスティンググリッドの形態のテストハーネスを用いた、図2のテストシステム200の具体例800を図示する。テストスクリプト120は、コードパイプライン130へ入力される。例として、コードパイプライン130は、CCATエンジンに関するソースコードをソースコードデポジトリから引き出し、CCATソースコードを上記の継続的インテグレーションのやり方でコンパイルして、入力テストスクリプトをテスティンググリッド812に適したテストコードへトランスコードするために、クラウド内の自動化サーバ804、ソースコードデポジトリ806およびビルドツール808を利用してよい。具体的には、テストクラウド802は、例えば、Amazon Web Service(AWS)であってよく、自動化サーバ804は、Jenkins(登録商標)を介して自動化サービスを提供してよく、ソースコードデポジトリ806は、GitHub(登録商標)を介して提供されてよく、ビルドツール808は、Gradle(登録商標)を介して提供されてよい。コードパイプライン130によって生成されたテストコードは、上記のように、リモートウェブドライバを含む複数のテストスレッドをテスティンググリッド812内にインスタンス化してよい。テスティンググリッドは、例えば、Selenium(登録商標)に基づいてもよい。様々な動作環境における様々なテストケースに関するテスト結果を含む、テストの出力は、スプレッドシート820およびスクリーンショット画像830のような、様々なフォーマットで、クラウド内の記憶装置810に記憶されてよい。仮想的な伸縮性テストクラウド802内にコードパイプライン130、テストハーネス812、およびテスト結果の記憶装置810を実装する際には、例えば、伸縮性およびセキュリティを強化するために他の適切なクラウドサービスツール816が関与してよい。例えば、Amazon Web Serviceについては、VPC(登録商標)、EC2(登録商標)、AMI(登録商標)、およびIAM(登録商標)などの構成要素が必要に応じて起動されてよい。クラウドおよびクラウドツールは、操作人員855によって管理されてよい。
図8の実装では、テストスクリプトの開発およびテスト出力分析は、870で示されるような、QA人員によって行われてよい。コード開発者880は、CCATコードおよびテスティンググリッド812に関して生成されるテストコードを含めて、コアコードのビルドおよび維持に関与してよい。
図8の実装は、従って、860で示されるように、自動コードパイプラインを用いてCCATコードをビルドする継続的インテグレーションを提供する。加えて、862で示されるように、図8の実装は、自動テストハーネスとしてSelenium(登録商標)グリッドのようなテスティンググリッドを利用する。さらにまた、この実装は、864で示されるように、ウェブサイトの分散開発およびテスティングを提供する。最後に、866で示されるように、コードビルドおよびテスティングの全体が、仮想化されたテスティングのために最適化されたクラウド内に実装される。
テストスクリプト120に関する文法規則は、コンピュータコードを記述する専門語を避けるように設計されてよい。そのように、すべての専門語がCCATエンジンに組み込まれてよく、図8のQA人員818が特定のコーディング技能を保有する必要はない。具体的には、テストケースに関するテストステップおよびテストデータが、人々が読み書きしやすいテストスクリプト記述子中に指定されてよい。例えば、テストケースの各々に関するテストステップおよびテストデータを含むテストスクリプトが、テストスクリプト記述子として、テストスプレッドシート840の形式か、またはJSON(Javascriptオブジェクト表記:Javascript Object Notation)のような軽量データ交換フォーマット850で記述されてよい。テストスプレッドシート・フォーマットにおける例示的なテストスクリプトのコレクションが図9の1000で示される。各スプレッドシートが、例えば、1つのテストケースに対応してよい。テストスプレッドシートの各行は、例えば、複数の列を含むテストステップに関する1つのエントリに対応する。
さらにまた、専門外のテスタによるテストステップの容易な構築のために、テストスクリプトに関して有意な意味のあるキーワードが開発されてよい。図9に示されるテストスクリプトでは、例えば、キーワード902のセットが「openURL」、「Wait」、「Click」などを含む。
これらのキーワードは、様々なプログラミング構成要素の文法的な厳密さなしに専門外の人によって容易に理解される文字通りの意味を持ってよい。これらのキーワードは、例えば、ウェブページを開くおよびボタンをクリックするなど、テストステップにおけるアクションを表してもよい。これらのキーワードは、アクションの間にある時間待機するなど、テストステップのタイミングを制御するためにも用いられてよい。
キーワードは、さらに、1つ以上のテストデータまたはパラメータと関連付けられてよい。これらのパラメータは、図9の904のように、スプレッドシートにおける1つ以上の別個の列として指定されてよい。例えば、キーワード「openURL」は、908で示されるように、テストされることになるウェブページのURLを表すテストデータと関連付けられてよい。別の例では、キーワード「wait」は、910で示されるように、アクションの間に待機するための時間量(例えば、秒単位)を表す数と関連付けられてよい。さらに別の例では、キーワード「click」は、912で示されるように、クリックされることになるウェブページ中のボタンまたは他の対象の名(または識別子)を示すパラメータと関連付けられてよい。
図9において「RunMode」列とラベル付けされた列906で示されるように、テストコードをビルドするときに特定の行におけるテストステップがコードパイプラインによって無視されるべきかどうかを示す追加の列が、テストスクリプトスプレッドシートに含められてよい。テストスクリプトスプレッドシートにこの列を含める利点は、あるテストステップを除くかまたは含めるようにテストケースが便利に修正されてよいことである。テストステップが望ましいかまたは必要であれば、列「RunMode」の下で対応する行が「Yes」とフラグ付けされてよい。さらなるテストラウンドにおいてテストステップが不必要になれば、対応する行のRunModeフラグが単に「Yes」から「No」へ修正されてよい。例えば、図9のステップ920がもはや必要ではないとある時点で決定されることがある。これらのテストステップを削除する代わりに、テスタがこれらのステップのRunModeインジケータを単に「No」に修正してもよい。これらのテストステップがやはり再び必要ならば、それらのRunModeインジケータが単に「Yes」に戻るように修正される。
上記のテストスクリプトおよびテストスクリプト記述子は、テスト結果を生成するのに役立ちうる追加の情報を含んでよい。例えば、図10に示されるテストスクリプト記述子のためのスプレッドシート1000は、1008、1010、および1012のような追加の列を含む。これらの列がテストステップに関して期待される出力を示してよい。FireFox(FF)、Chrome、およびInternet Explorer(IE)のような、様々な動作環境に対して具体的に期待されるテストステップのテスト出力は、異なる動作環境間で期待される出力が異なりうるので、1008、1010、および1012として別々に指定されてよい。この情報は、CCATシステムが図8のより理解しやすいテスト結果820を構築するために有用でありうる。例えば、CCATエンジンは、テストから返されたテキストを期待されるテキストと比較して、テストから生成された実際のテキストを返すのではなく、むしろテスタへの合否インジケータを生成するように構成されてもよい。
テストスクリプトのテストスプレッドシートなど、複数のテストスクリプト記述子が先に詳細に記載されたように構築されてよく、各テストスクリプト記述子が1つの独立したテストケースに対応してもよい。各テストケースが行われることになる様々な動作環境を指定するために、テストマスタドキュメントと呼ばれる、1つの追加のテストドキュメントがテスタによってさらに構築されて、CCATコードパイプラインによってトランスコードされてよい。例示的なテストマスタドキュメントは、図11に示されるような、スプレッドシート1100であってよい。テストマスタスプレッドシート1100の各行は、テストケースおよび動作環境の対に対応する。例えば、「Test−Case」とラベル付けされたテストマスタスプレッドシート1100の列1102は、例えば、テストケースに対応するスプレッドシートのような、テストスクリプト記述子に関する識別子またはファイル名を用いて、テストケースを指定する。図11では、例として、9つの異なるテストケースが関与する。
図11におけるテストマスタスプレッドシートの「Browser」列1104は、テストケースをテストするための様々なブラウザを指定する。図11の例は、テストされることになるウェブブラウザの一般的なカテゴリによって動作環境を指定するに過ぎないが、これらのカテゴリは、より小さい粒度のレベルに精緻化されてよいことが理解される。例えば、「chrome」のカテゴリは、様々なオペレーティングシステムにおいて実行する様々なバージョンのchromeにさらに精緻化されてよい。代わりに、これらの詳細なバージョンまたはオペレーティングシステム情報が図11のスプレッドシートの追加の列で指定されてもよい。
図11におけるテストマスタスプレッドシートの「RunMode」列1106は、特定のテストケースおよびウェブブラウザの組み合わせ(またはテストケースおよび動作環境の組み合わせ)が行われることになるかどうかを指定する。例えば、図11のテストマスタは、各々がFirefox、Chrome、およびInternet Explorerの3つのすべての主要ウェブブラウザにおける、9つのテストケースのうちの7つを伴って20個のテストが行われることになることを指定する。図11のテストマスタスプレッドシートは、このように、任意のテストの組み合わせを指定する便利な仕方を提供する。
テストケースに関するテストスクリプトおよびテストされることになる動作環境は、集合的にテストスイートと呼ばれる。上記の(テストスクリプトスプレッドシート、例えば、図9のような)フォーマットされたテストスクリプト記述子および(図11のテストマスタスプレッドシートのような)テストマスタドキュメントは、集合的にテスト記述子と呼ばれる。テストスイートは、図5〜7に記載されるような複数のテストスレッドを作成し、随意的に図8に記載されるようなテスティンググリッドおよびウェブドライバを起動するために、図1、2、および8のコードパイプライン130へ入力されてよい。図12は、CCATシステムによって独立したCCATテストドライバオブジェクト1201〜1206の形態で作成された、3つの異なるブラウザ(Chrome、Internet ExplorerおよびFirefox)における2つのテストケースに関する6つのスレッドをさらに示す。各CCATテストドライバオブジェクトは、図1211〜1216に示されるように、適切なブラウザ・ケイパビリティをもつリモートウェブドライバ(例えば、Seleniumウェブドライバオブジェクト)をさらに含む。これらのリモートウェブドライバは、リソースを共有しない。その代わりに、CCATテストドライバオブジェクト1201〜1206の各々は、1221〜1226で示されるように、それ自体のテストステップおよびテストデータを有することによってその自律性を維持する。
比較して、図13は、1つのブラウザ・ケイパビリティに各々が対応する3つのスレッド1301〜1303において2つのテストケース1321〜1322および3つの異なるブラウザを実行するための代わりの実装を示す。例えば、テスティンググリッドにおける異なるリモートウェブドライバオブジェクト1311〜1316が適切なケイパビリティを用いてインスタンス化されてよい。各スレッド内の共通データリソースの共有のゆえに、各スレッド内の2つのテストケースの間にスレッドの重複があり、意図されない不測の結果に繋がることがある。
2つの例示的なテストケースを実行するための図14にこれが示される。両方のテストケースに関して、最初に同じウェブページが開かれる。このウェブページは、入力ボックス「User Name」を含む。第1のテストケースは、ユーザ名として「XYZ」を入力するステップを含む。第2のテストケースは、ユーザ名として「abc」を入力するステップを含む。図12の6つのスレッドのCCATテストドライバオブジェクトの実装では、同じブラウザ・ケイパビリティのリモートウェブドライバが別個のスレッドにおいて独立に起動され、従って、図14の1401で示されるように、各リモートウェブドライバがウェブブラウザの1つのインスタンスを実行して、ユーザ名が各ウェブブラウザへ正しく入力される。しかしながら、図13の3つのスレッドの実装では、図14における1402の1411および1414、1412および1415、1413および1416の間のスレッドの重複に起因して、テスティンググリッドが2つのテストケース間を区別できないことがある。結果として、図14における1402の1411〜1413で示されるように、テストケース1のためのユーザ名(「XYZ」)およびテストケース2のためのユーザ名(「abc」)がいずれも同じウェブブラウザへ不用意に入力されることがある。
図15は、上記のように、クラウド1503においてマルチスレッド・テスティングをアクティブ化するために音声コマンドまたはシングルクリックを用いることをさらに図示する。例えば、コードパイプライン130からイベント駆動型コンピューティングサーバ1520を介してマルチスレッド・テストコードをビルドして、実行するための音声コマンド1510を入力するために、対応する音声処理サーバ1502と通信を行う音声入力/出力回路素子1501が利用されてよい。代わりに、テストコードのビルドおよび実行は、IoT(インターネットオブシングス:Internet of Things)サーバ1532およびイベント駆動型コンピューティングサーバ1520と通信を行うIoTシングルクリックデバイス1530によってアクティブ化されてもよい。音声処理サーバ1502は、音声入力/出力回路素子1501からのテスト結果問い合わせ1540入力を処理して、テスト結果を音声へ、かつ音声入力/出力回路素子1501による発声を音声1550へ変換するためにさらに用いられてよい。代わりに、テスト結果は、ウェブ接続されたLEDインジケータ1580をトリガするためのIFTTTまたはIF1570のようなコンディショナルウェブサービス(conditional web service)のために予め定義された信号1560へ変換されてもよい。例として、クラウドは、Amazon Web Service(AWS)であってよく、音声入力/出力回路1501は、Amazon Echoデバイスであってよく、音声処理サーバ1502は、Amazon Alexaサーバであってよく、IoTシングルクリックデバイス1530は、AWS IoTシングルクリックデバイスであってよく、IoTサーバ1532は、AWS IoTサーバであってよく、ウェブ接続されたLEDインジケータ1580は、スマートLEDのPhillipヒュー・ラインであってよい。
図15の実装およびその変形を用いて、テストケースが設計され、クラウド内にテストデポジトリとして記憶されてよい。クラウドサービス、例えば、イベント駆動型コンピューティングサービス、コンディショナルウェブサービス、クラウドコードパイプラインサービスおよびクラウド記憶がアプリケーションの包括的かつ効率的なテスティングのために一体的に起動される。具体的には、コードビルド、複数の動作環境における一群のテストのマルチスレッド実行、テスト結果の処理、ならびに音声および/または視覚インジケータを介したテスト結果のフィードバックの自動プロセスを開始するための、音声アクティブ化またはIoT駆動インターフェースのインテグレーションは、分散され、自動化されたテストを任意の組み合わせでどこからでも実施するための便利なプラットフォームを専門外のQA人員に提供する。
様々な実装が先に具体的に記載された。しかしながら、多くの他の実装も可能である。さらにまた、記載された方法、デバイス、処理、フレームワーク、回路素子および上記の論理回路は、多くの異なる仕方ならびにハードウェアおよびソフトウェアの多くの異なる組み合わせで実装されてよい。例えば、実装のすべてまたは部分は、中央処理装置(CPU:Central Processing Unit)、マイクロコントローラ、もしくはマイクロプロセッサのような、命令プロセッサ;または特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、プログラマブル論理デバイス(PLD:Programmable Logic Device)、もしくはフィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array);またはアナログ回路部品、デジタル回路部品もしくは両方を含めて、個別論理または他の回路部品を含む回路素子;あるいはそれらの任意の組み合わせであってよい。回路素子は、相互接続された個別ハードウェア部品を含んでもよく、または単一の集積回路ダイ上に組み合わされても、複数の集積回路ダイ間に分散されてもよく、あるいは例えば、共通パッケージ内の複数の集積回路ダイのマルチチップモジュール(MCM:Multiple Chip Module)内に実装されてもよい。
それに応じて、回路素子は、実行のための命令を記憶するか、またはそれにアクセスしてもよく、あるいはその機能性をハードウェアのみに実装してもよい。一時的信号以外の命令は、フラッシュメモリ、ランダムアクセスメモリ(RAM:Random Access Memory)、リードオンリメモリ(ROM:Read Only Memory)、消去可能なプログラマブルリードオンリメモリ(EPROM:Erasable Programmable Read Only Memory)のような、有形記憶媒体内に;またはコンパクトディスク・リードオンリメモリ(CDROM:Compact Disc Read Only Memory)、ハードディスクドライブ(HDD:Hard Disk Drive)、もしくは他の磁気または光ディスクのような、磁気または光ディスク上に、あるいは別の機械可読媒体内またはその上に記憶されてもよい。コンピュータプログラム製品のような製品は、記憶媒体および媒体内またはその上に記憶された命令を含んでよく、命令は、デバイスにおける回路素子によって実行されたときに、先に記載されるかまたは図面に示されたいずれかの処理をデバイスに実装させてよい。
これらの実装は、分散されてもよい。例として、回路素子は、複数のプロセッサおよびメモリなど、複数の個別システム部品を含んでもよく、複数の分散された処理システムに及んでもよい。パラメータ、データベース、および他のデータ構造は、別々に記憶されて制御されてもよく、単一のメモリまたはデータベース中へ組み込まれてもよく、多くの異なる仕方で論理的かつ物理的に編成されてもよく、多くの異なる仕方で実装されてもよい。実装例は、リンクされたリスト、プログラム変数、ハッシュテーブル、アレイ、レコード(例えば、データベースレコード)、オブジェクト、ならびに暗黙的な記憶メカニズムを含む。命令は、単一のプログラムの部分(例えば、サブルーチンまたは他のコードセクション)を形成してもよく、複数の別個のプログラムを形成してもよく、複数のメモリおよびプロセッサにわたって分散されてもよく、多くの異なる仕方で実装されてもよい。実装例は、スタンドアローン・プログラム、およびライブラリの一部として、例えば、ダイナミックリンクライブラリ(DLL:Dynamic Link Library)のような共有ライブラリを含む。ライブラリは、例えば、共有データと、回路素子によって実行されたときに、上述されるかまたは図面に示されたいずれかの処理を行う命令を含む1つ以上の共有プログラムとを含んでよい。
本明細書に記載される原理は、多くの異なる形態で具現されてよい。示される構成要素のすべてが必要とされないこともあるが、しかし、いくつかの実装は、追加の構成要素を含みうる。本明細書に提示される特許請求の範囲の趣旨または範囲から逸脱することなく、構成要素の配置およびタイプにおける変形が行われてもよい。追加的、異なる、またはより少ない構成要素が提供されてもよい。

Claims (20)

  1. 方法であって、
    アプリケーションに係わる複数の独立したテストケースを備えるテストスイートを受信するステップと、
    前記テストスイートから前記複数のテストケースに関するテストデータを識別するステップと、
    前記テストスイートから前記複数のテストケースの各々に関して行われることになるテストステップを識別するステップと、
    前記テストスイートから前記独立したテストケースを実行するための複数の異なる動作環境を識別するステップと、
    前記複数の異なる動作環境のうちの1つにおける前記複数のテストケースのうちの1つの組み合わせごとに、
    リモートテストドライバを備える独立したテストスレッドをインスタンス化するステップと、
    前記独立したテストスレッドに関するスレッド固有のテストデータセットを作成するために前記独立したテストケースのうちの前記1つに関して前記テストスイートから前記識別されたテストデータおよび前記識別されたテストステップを前記リモートテストドライバ中へコピーするステップと、
    前記スレッド固有のテストデータセットおよび前記リモートテストドライバに基づいて前記テストスレッドを実行することによって前記複数のテストケースを前記複数の異なる動作環境の各々に対して独立に実行するステップと
    を備える、方法。
  2. 前記アプリケーションは、ウェブサイトであり、前記テストスイートは、テスト記述子のセットを備える、請求項1に記載の方法。
  3. 記述子の前記セットは、テストマスタドキュメントおよび前記複数のテストケースのうちの1つに各々が対応する複数のテストスクリプト記述子を備える、請求項2に記載の方法。
  4. 各テストスクリプト記述子は、前記各テストスクリプト記述子に対応するテストケースに関するテストステップを指定するテストステップ・エントリを備える、請求項3に記載の方法。
  5. 各テストステップ・エントリは、テストアクションを指定する予め定義されたキーワードを備える、請求項4に記載の方法。
  6. 前記テストステップ・エントリのうちの少なくとも1つのテストステップ・エントリは、前記少なくとも1つのテストステップ・エントリに関するテストデータを指定するデータ項目をさらに備える、請求項4に記載の方法。
  7. 前記テストステップ・エントリのうちの少なくとも1つのテストステップ・エントリは、前記少なくとも1つのテストステップ・エントリに関して期待されるテスト出力を指定するデータ項目をさらに備える、請求項4に記載の方法。
  8. 各テストステップ・エントリは、前記各テストステップ・エントリが行われることになるかどうかを示すテスト実行インジケータをさらに備える、請求項4に記載の方法。
  9. 前記テストマスタドキュメントは、各テストケースが実行されることになる動作環境を指定し、各動作環境は、少なくとも1つのタイプのウェブブラウザを備える、請求項3に記載の方法。
  10. 各リモートテストドライバは、予め決定されたテスティンググリッド環境における独立したテスティンググリッド・ウェブドライバを備える、請求項2に記載の方法。
  11. クラウドベースのプラットフォームであって、
    通信インターフェース、
    メモリ、ならび
    前記メモリおよび前記通信インターフェースと通信を行う回路素子を備え、前記回路素子は、
    前記通信インターフェースを介して、アプリケーションに係わる複数の独立したテストケースを備えるテストスイートを受信し、
    前記テストスイートから前記複数のテストケースに関するテストデータを識別し、
    前記テストスイートから前記複数のテストケースの各々に関して行われることになるテストステップを識別し、
    前記テストスイートから前記独立したテストケースを実行するための複数の異なる動作環境を識別し、
    前記複数の異なる動作環境のうちの1つにおける前記複数のテストケースのうちの1つの組み合わせごとに、
    リモートテストドライバを備える独立したテストスレッドをインスタンス化し、
    前記独立したテストスレッドに関するスレッド固有のテストデータセットを作成するために前記独立したテストケースのうちの前記1つに関して前記テストスイートから前記識別されたテストデータおよび前記識別されたテストステップを前記リモートテストドライバ中へコピーして、
    前記スレッド固有のテストデータセットおよび前記リモートテストドライバに基づいて前記テストスレッドを実行することによって前記複数のテストケースを前記複数の異なる動作環境の各々に対して独立に実行する
    ように構成された
    クラウドベースのプラットフォーム。
  12. 前記アプリケーションは、ウェブサイトであり、前記テストスイートは、テスト記述子のセットを備える、請求項11に記載のクラウドベースのプラットフォーム。
  13. 記述子の前記セットは、テストマスタドキュメントおよび前記複数のテストケースのうちの1つに各々が対応する複数のテストスクリプト記述子を備える、請求項12に記載のクラウドベースのプラットフォーム。
  14. 各テストスクリプト記述子は、前記各テストスクリプト記述子に対応するテストケースに関するテストステップを指定するテストステップ・エントリを備える、請求項13に記載のクラウドベースのプラットフォーム。
  15. 各テストステップ・エントリは、テストアクションを指定する予め定義されたキーワードを備える、請求項14に記載のクラウドベースのプラットフォーム。
  16. 前記テストステップ・エントリのうちの少なくとも1つのテストステップ・エントリは、前記少なくとも1つのテストステップ・エントリに関するテストデータを指定するデータ項目をさらに備える、請求項14に記載のクラウドベースのプラットフォーム。
  17. 前記テストステップ・エントリのうちの少なくとも1つのテストステップ・エントリは、前記少なくとも1つのテストステップ・エントリに関して期待されるテスト出力を指定するデータ項目をさらに備える、請求項14に記載のクラウドベースのプラットフォーム。
  18. 各テストステップ・エントリは、前記各テストステップ・エントリが行われることになるかどうかを示すテスト実行インジケータをさらに備える、請求項14に記載のクラウドベースのプラットフォーム。
  19. 前記テストマスタドキュメントは、各テストケースが実行されることになる動作環境を指定し、各動作環境は、少なくとも1つのタイプのウェブブラウザを備える、請求項13に記載のクラウドベースのプラットフォーム。
  20. 方法であって、
    ウェブサイトをテストするためのテストアクションのセットのテストアクションに各々が対応するキーワードのセットを予め定義するステップと、
    テストマスタドキュメントおよび、各々が前記ウェブサイトに係わる複数の独立したテストケースのうちの1つに関する、複数のテストスクリプト記述子を備えるテストスイートを受信するステップであって、各テストスクリプト記述子が予め定義された文法規則に従って配置されたキーワードの前記セットの複数のキーワードを備える、前記受信するステップと、
    前記テストスイートから前記複数のテストケースに関するテストデータを識別するステップと、
    前記テストスクリプト記述子から前記複数のキーワードおよびテストステップが行われることになるかどうかを示す前記テストスクリプト記述子におけるインジケータ・フィールドに従って前記複数のテストケースに関して行われることになるテストステップを識別するステップと、
    前記テストマスタドキュメントから前記独立したテストケースを実行するための複数の異なる動作環境を識別するステップであって、各動作環境が少なくとも1つのタイプのウェブブラウザを備える、前記動作環境を識別するステップと、
    前記複数の異なる動作環境のうちの1つにおける前記複数のテストケースのうちの1つの組み合わせごとに、
    リモートテストドライバを備える独立したテストスレッドをインスタンス化するステップと、
    前記独立したテストスレッドに関するスレッド固有のテストデータセットを作成するために前記独立したテストケースのうちの前記1つに関して前記テストスイートから前記識別されたテストデータおよび前記識別されたテストステップを前記リモートテストドライバ中へコピーするステップと、
    前記スレッド固有のテストデータセットおよび前記リモートテストドライバに基づいて前記テストスレッドを実行することによって前記複数のテストケースを前記複数の異なる動作環境の各々に対して独立に実行するステップと
    を備える、方法。
JP2017246572A 2017-01-23 2017-12-22 クラウド接続された自動テスティング Active JP6580664B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/412,481 2017-01-23
US15/412,481 US10120788B2 (en) 2017-01-23 2017-01-23 Cloud connected automated testing in multiple operating environments using multiple parallel test threads

Publications (2)

Publication Number Publication Date
JP2018139106A true JP2018139106A (ja) 2018-09-06
JP6580664B2 JP6580664B2 (ja) 2019-09-25

Family

ID=60673733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017246572A Active JP6580664B2 (ja) 2017-01-23 2017-12-22 クラウド接続された自動テスティング

Country Status (5)

Country Link
US (1) US10120788B2 (ja)
EP (1) EP3352085B1 (ja)
JP (1) JP6580664B2 (ja)
CN (1) CN108347358B (ja)
CA (1) CA2990074A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452508B2 (en) * 2015-06-15 2019-10-22 International Business Machines Corporation Managing a set of tests based on other test failures
US11087358B2 (en) 2016-06-24 2021-08-10 The Nielsen Company (Us), Llc Methods and apparatus for wireless communication with an audience measurement device
US10534698B2 (en) * 2017-08-24 2020-01-14 Salesforce.Com, Inc. Stateless self-sufficient test agents
CN109446082B (zh) * 2018-10-23 2021-07-16 太仓市同维电子有限公司 多线程测试流程项目配置系统
CN109408392A (zh) * 2018-11-06 2019-03-01 北京京航计算通讯研究所 基于持续集成技术的软件集成测试方法
US10515005B1 (en) * 2018-12-20 2019-12-24 Atlassian Pty Ltd Systems and methods for testing source code
CN109766276B (zh) * 2018-12-29 2024-01-12 通力科技股份有限公司 开放式平台测试方法、装置、计算机可读存储介质及系统
CN110427192A (zh) * 2019-08-01 2019-11-08 上海麦克风文化传媒有限公司 一种it系统持续集成和持续发布方法
CN110765012A (zh) * 2019-10-15 2020-02-07 北京信安世纪科技股份有限公司 一种自动化测试脚本生成及解析执行方法
CN110958307B (zh) * 2019-11-20 2022-04-08 瑞玛思特(北京)科技有限公司 一种基于云的5g和物联网信号产生与分析的测试系统
CN110889923A (zh) * 2019-11-29 2020-03-17 南京邮电大学 一种基于IPv6的校园智能浴室排队系统
CN111177006B (zh) * 2019-12-31 2024-02-02 惠州市德赛西威汽车电子股份有限公司 一种车载娱乐导航测试用例自动生成系统
CN111338970B (zh) * 2020-03-25 2023-03-03 广州棒谷科技股份有限公司 一种web端关键字驱动的ui自动化测试方法
CN115235633A (zh) * 2020-09-15 2022-10-25 山东华科信息技术有限公司 基于物联网测试平台的检测红外温度传感器的检测方法
CN112286797B (zh) * 2020-09-29 2024-05-03 长沙市到家悠享网络科技有限公司 一种服务监控方法、装置、电子设备及存储介质
CN112286806B (zh) * 2020-10-28 2023-10-03 成都佰维存储科技有限公司 自动化测试方法、装置、存储介质及电子设备
CN112181855A (zh) * 2020-10-30 2021-01-05 深圳云之家网络有限公司 一种基于api的自动化测试方法、装置及计算机设备
CN113407440B (zh) * 2021-05-24 2024-02-09 深圳市广和通无线股份有限公司 无线通信模组的测试系统和方法
CN113220595B (zh) * 2021-06-11 2023-10-03 中国农业银行股份有限公司 测试方法及设备
GB2611799B (en) * 2021-10-15 2024-01-17 Ruken Tech Ltd A computer-implemented method and apparatus for performing continuous integration of a software change
CN114356051A (zh) * 2022-01-05 2022-04-15 大兴安岭焦点科技有限公司 一种基于云计算及云服务器的电子信息储存技术方法研究
US11860771B1 (en) * 2022-09-26 2024-01-02 Browserstack Limited Multisession mode in remote device infrastructure
CN117112391A (zh) * 2022-11-15 2023-11-24 领悦数字信息技术有限公司 用于功能测试的方法和系统
CN116401175A (zh) * 2023-05-29 2023-07-07 云筑信息科技(成都)有限公司 一种基于json文件追加写入图片的处理方法
CN116991750B (zh) * 2023-09-28 2023-12-22 北京索云科技股份有限公司 利用多线程和分布式代理实现大并发模拟的压力测试方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244882A (ja) * 2001-02-19 2002-08-30 Nec Soft Ltd プログラムテスト監視システム、プログラムテスト監視方法、および、プログラムテスト監視プログラム
US8418000B1 (en) * 2012-03-13 2013-04-09 True Metrics LLC System and methods for automated testing of functionally complex systems
JP2014010581A (ja) * 2012-06-28 2014-01-20 Toshiba Corp テスト装置、テストシステム、テスト方法、及びプログラム
US8875102B1 (en) * 2009-03-12 2014-10-28 Google Inc. Multiple browser architecture and method
US20150006966A1 (en) * 2011-09-14 2015-01-01 Amazon Technologies, Inc. Cloud-based test execution
US20150089299A1 (en) * 2013-09-25 2015-03-26 Microsoft Corporation Online application testing across browser environments
JP2016048470A (ja) * 2014-08-27 2016-04-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376937B1 (en) * 2001-05-31 2008-05-20 Oracle International Corporation Method and mechanism for using a meta-language to define and analyze traces
US8196104B2 (en) * 2005-08-31 2012-06-05 Sap Ag Systems and methods for testing application accessibility
US8079037B2 (en) * 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications
US8286143B2 (en) * 2007-11-13 2012-10-09 International Business Machines Corporation Method and system for monitoring code change impact on software performance
US8539447B2 (en) * 2008-06-04 2013-09-17 Microsoft Corporation Real-time validation of interactive applications
US8572566B2 (en) * 2010-05-11 2013-10-29 Smartshift Gmbh Systems and methods for analyzing changes in application code from a previous instance of the application code
US8813039B2 (en) * 2010-04-14 2014-08-19 International Business Machines Corporation Method and system for software defect reporting
CN102075381A (zh) * 2010-12-14 2011-05-25 云海创想信息技术(北京)有限公司 一种应用于云存储的自动化测试平台服务器及系统
US8621441B2 (en) * 2010-12-27 2013-12-31 Avaya Inc. System and method for software immunization based on static and dynamic analysis
EP2705632B8 (en) * 2011-05-06 2018-09-12 Citrix Systems, Inc. Systems and methods for cloud bridging between public and private clouds
TWI476586B (zh) * 2011-07-13 2015-03-11 Inst Information Industry 以雲端技術為基礎之測試系統、方法以及其電腦可讀取記錄媒體
US8819490B2 (en) * 2011-12-30 2014-08-26 Microsoft Corporation Test execution spanning cloud and local devices
US9047410B2 (en) * 2012-07-18 2015-06-02 Infosys Limited Cloud-based application testing
US9009677B2 (en) * 2013-03-18 2015-04-14 Microsoft Technology Licensing, Llc Application testing and analysis
US9575873B2 (en) * 2013-09-13 2017-02-21 Sap Se Software testing system and method
US9760567B1 (en) * 2013-10-21 2017-09-12 Ca, Inc. Method and apparatus for using a common dialect for testing on multiple execution interfaces
CN105446872B (zh) * 2014-08-29 2018-04-10 国际商业机器公司 测试移动应用的管理器、测试代理器及方法
US9753843B2 (en) * 2014-11-20 2017-09-05 Accenture Global Services Limited Automated testing of web-based applications

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244882A (ja) * 2001-02-19 2002-08-30 Nec Soft Ltd プログラムテスト監視システム、プログラムテスト監視方法、および、プログラムテスト監視プログラム
US8875102B1 (en) * 2009-03-12 2014-10-28 Google Inc. Multiple browser architecture and method
US20150006966A1 (en) * 2011-09-14 2015-01-01 Amazon Technologies, Inc. Cloud-based test execution
US8418000B1 (en) * 2012-03-13 2013-04-09 True Metrics LLC System and methods for automated testing of functionally complex systems
JP2014010581A (ja) * 2012-06-28 2014-01-20 Toshiba Corp テスト装置、テストシステム、テスト方法、及びプログラム
US20150089299A1 (en) * 2013-09-25 2015-03-26 Microsoft Corporation Online application testing across browser environments
JP2016048470A (ja) * 2014-08-27 2016-04-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Also Published As

Publication number Publication date
CA2990074A1 (en) 2018-07-23
CN108347358B (zh) 2022-12-06
JP6580664B2 (ja) 2019-09-25
US10120788B2 (en) 2018-11-06
EP3352085A1 (en) 2018-07-25
US20180210822A1 (en) 2018-07-26
EP3352085B1 (en) 2021-07-28
CN108347358A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
JP6580664B2 (ja) クラウド接続された自動テスティング
US10162612B2 (en) Method and apparatus for inventory analysis
US9003423B1 (en) Dynamic browser compatibility checker
US9207952B2 (en) Semantic mapping of objects in a user interface automation framework
US9720799B1 (en) Validating applications using object level hierarchy analysis
US10534512B2 (en) System and method for identifying web elements present on a web-page
CN109144856A (zh) 一种ui自动化测试方法、计算设备及存储介质
US20130338995A1 (en) Practical natural-language human-machine interfaces
US20140068559A1 (en) Annotation-based infrastructure for automatically generating "predictable" ids for visual components in a web-application
US9367433B2 (en) Generating input values for a test dataset from a datastore based on semantic annotations
CA3036812A1 (en) Test case generator built into data-integration workflow editor
US11714625B2 (en) Generating applications for versatile platform deployment
US11636778B2 (en) Correction of software coding projects
US20210117313A1 (en) Language agnostic automation scripting tool
US11836072B2 (en) Risk-based root cause identification methods and related autobuild systems
US9026997B2 (en) Systems and methods for executing object-oriented programming code invoking pre-existing objects
CN114579452A (zh) 接口影响检测方法及相关设备
US20110246967A1 (en) Methods and systems for automation framework extensibility
Ko et al. Feedlack detects missing feedback in web applications
de Oliveira et al. Clouds and Reproducibility: A Way to Go to Scientific Experiments?
US20240176732A1 (en) Advanced application of model operations in energy
Chaubal Selenium WebDriver Quick Start Guide: Write Clear, Readable, and Reliable Tests with Selenium WebDriver 3
US20230214310A1 (en) Infrastructure to integrate an integrated development environment (ide) with game engines
Salama “Down With Regression!”–Generating Test Suites for the Web
González-Jiménez et al. A web platform for streaming applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190409

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190712

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190712

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: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190828

R150 Certificate of patent or registration of utility model

Ref document number: 6580664

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250