テストスクリプトとは?例を交えて書き方を解説します。
⚡ スマートサマリー
ソフトウェアテストにおけるテストスクリプトとは、アプリケーションを駆動し、すべてのステップをチェックする、一行ずつ記述された実行可能な命令のセットです。このガイドでは、3つのビルド方法、再利用可能なテンプレート、および動作するスクリプトについて説明します。 Selenium 例。
ソフトウェアテストにおけるテストスクリプトとは何ですか?
A テストスクリプト これは、テスト対象アプリケーションを検証するために実行する必要のあるシステムトランザクションを、行ごとに詳細に記述したものです。実行すべきすべての手順と、それぞれの手順で期待される結果が一覧表示されます。
実行可能なスクリプトであるため、同じスクリプトを複数のデバイスやビルドで体系的に再生できます。実用的なスクリプトは、入力される実際の入力値と期待される出力値の両方を必ず記録します。
テストスクリプトの書き方

テスト スクリプトを作成するには、次の XNUMX つの方法があります。
録音と再生
この方法では、テスターはコードを一切書く必要がなく、ユーザーの操作を記録するだけで済みます。ただし、後で不具合を修正したり、自動化の動作を微調整したりする際には、コーディングが必要になります。
この方法は、完全なコードがすでにあるため、完全なテスト スクリプトを最初から作成するよりも簡単です。 主に、VBScript などの簡易プログラミング言語で使用されます。
キーワードまたはデータ駆動型スクリプト
この方法では、テスターと開発者の間に明確な分離があります。 データ駆動型スクリプトでは、テスターは基礎となるコードの知識がなくても、キーワードを使用してテストを定義します。
ここでの開発者の仕事は、キーワードのテスト スクリプト コードを実装し、必要に応じてこのコードを更新することです。 したがって、この方法では、テスターはシステムについて心配する必要はありません。 ただし、自動的にテストしたい新機能については、開発リソースに大きく依存します。
プログラミング言語でコードを書く
この方法を選択した場合でも、通常は録音と再生機能が利用できるため、スクリプトの初稿を作成できます。
しかし、遅かれ早かれ、テスターは録音と再生を超えて、簡単なスクリプトを手書きで書くことを学ぶ必要があります。 プログラミング言語 アプリケーションが次のように書かれている場合でも、 Java.
しかし、テストスクリプトを次のように書く必要があるわけではありません。 Javaは習得が難しい言語です。代わりに、次のような簡単な言語でテストスクリプトを書くことができます。 Javaスクリプト または Ruby (または使いたいもっと簡単な言語)。
テストスクリプトの例
たとえば、Web サイトのログイン機能をチェックするには、テスト スクリプトで次の操作を実行します。
- 自動化ツールがログイン画面の「ユーザー名」フィールドと「パスワード」フィールドを見つける方法を指定します。 CSS 要素 ID で考えてみましょう。
- Web サイトのホームページをロードし、「ログイン」リンクをクリックします。 表示されるログイン画面と、「ユーザー名」および「パスワード」フィールドが表示されていることを確認します。
- ユーザー名「Charles」とパスワード「123456」を入力し、「確認」ボタンを探してクリックしてください。
- ユーザーがログイン後に表示されるウェルカム画面のタイトルを、CSS 要素 ID によって見つける方法を指定する必要があります。
- ようこそ画面のタイトルが表示されていることを確認します。
- ようこそ画面のタイトルを読みます。
- タイトルテキストが「ようこそ、チャールズ」と等しいことを主張します。
- タイトルが期待値と一致する場合は、テストを合格と記録します。そうでない場合は、不合格と記録します。
サンプルテストスクリプト Selenium Java
上記の箇条書きは、ログインテストを平易な英語で説明しています。以下は、実行可能なスクリプトとして記述された同じテストです。 Selenium WebDriverと JUnit各箇条書きは、1行または2行のコードに対応します。
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.junit.Assert; import org.junit.Test; public class LoginTestScript { @Test public void validLoginShowsWelcomeMessage() { // Step 1: start the browser and open the site WebDriver driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/login.html"); // Step 2: locate the fields by their element ids driver.findElement(By.id("email")).sendKeys("Charles"); driver.findElement(By.id("passwd")).sendKeys("123456"); // Step 3: submit the form driver.findElement(By.id("SubmitLogin")).click(); // Step 4: read the welcome title and assert the expected result String actual = driver.findElement(By.id("welcome")).getText(); Assert.assertEquals("Welcome Charles", actual); driver.quit(); } }
本物の台本と録音された台本を分ける3つのポイントは以下のとおりです。
- ロケーターは明示的です。 要素は画面上の位置ではなくIDによって検索されるため、レイアウトが変更されてもスクリプトは正常に動作します。
- その主張こそがテストである。 assertEqualsがない場合、スクリプトは単にクリックするだけです。合否を決定するのはアサーションです。
- 清掃作業は必ず行われる。 driver.quit() はブラウザを解放します。そうしないと、実行が失敗した場合にプロセスが残ってしまいます。
同じ構造はどの言語にも当てはまります。 Python Selenium 呼び出しは driver.find_element(By.ID, “email”) となり、assert actual == “Welcome Charles” となります。
テスト スクリプト作成のヒント
テスト スクリプトを作成するための重要なヒントをいくつか紹介します。
明確にしておく
テストスクリプトは、誰の助けも借りずに実行できるほど明確であるべきです。テスターがアプリケーションの詳細についてプロジェクトオーナーに何度も問い合わせなければならない場合、時間とリソースが無駄になります。
これを避けるためには、テストスクリプトの各ステップが明確で簡潔かつ一貫性があることを確認してください。これにより、テストプロセスを円滑に進めることができます。
それをシンプルに保つ
テスターが実行する特定のアクションを XNUMX つだけ含むテスト スクリプトを作成する必要があります。 これにより、各機能が正しくテストされ、テスターがソフトウェア テスト プロセスの手順を見逃すことがなくなります。
よく考えて
テスト スクリプトを作成するには、ユーザーの立場になってテストするパスを決定する必要があります。 システムまたはアプリケーションの実行中にユーザーが使用するさまざまなパスをすべて予測するには、十分な創造力が必要です。
テスト スクリプト アプローチを使用するのはどのような場合ですか?
テスト スクリプトを使用する理由は次のとおりです。
- テストスクリプトは、手順が省略されていないこと、および結果が合意されたテスト計画と一致していることを確認するための最も確実な方法です。
- 事前に準備されたスクリプトがあれば、実行時のエラーの可能性ははるかに低くなる。
- テスターが製品を自由に探索すると、見落としやすい機能がある。
- テスターは、実際には期待通りの結果が得られなかったにもかかわらず、関数が期待通りの結果を出したと誤解することもある。
- これは、ユーザーのパフォーマンスが重要かつ具体的な場合に特に役立ちます。
テスト スクリプト テンプレートとは何ですか?
テストスクリプトテンプレートとは、プロジェクト内のすべてのスクリプトが入力しなければならない項目をあらかじめフォーマットした、再利用可能なドキュメントです。テンプレートを標準化することで、テストの詳細度が決まり、レビュー担当者が各ステップの意味を推測する必要がなくなります。
実用的なテンプレートには、以下のフィールドが含まれています。
| フィールド | 目的 |
|---|---|
| スクリプトID | 一意の識別子 trac脆弱性と欠陥の関連付け |
| Title | スクリプトが検証する内容を一行で示す |
| モジュールまたは機能 | テスト対象のアプリケーションの領域 |
| 前提条件 | 最初のステップを実行する前にシステムが満たしておくべき状態を記述する |
| テストデータ | 認証情報や境界値を含む正確な入力値 |
| ステップ | 番号付きのアクション、ステップごとに1つのアクション |
| 期待される結果 | 各ステップの目に見える結果 |
| 実結果 | 実行時に入力されます |
| ステータス | 合格、不合格、ブロック、または実行されない |
| 著者と日付 | 所有権とバージョン履歴 |
テストケースとテストスクリプトの違い
テストケースとテストスクリプトの主な違いは以下のとおりです。
| テストケース | テストスクリプト |
|---|---|
| テストケース アプリケーションをテストするために使用される段階的な手順です。 | テスト スクリプトは、アプリケーションを自動的にテストするための一連の命令です。 |
| テスト ケースは手動テスト環境に使用されます。 | テスト スクリプトは自動テスト環境で使用されます。 |
| それは手動で行われます。 | これはスクリプト形式に従って行われます。 |
| テスト ケース テンプレートには、テスト ID、テスト データ、テスト手順、実際の結果と期待される結果などが含まれます。 | テスト スクリプトでは、さまざまなコマンドを使用してスクリプトを開発できます。 |
テストスクリプトの利点と欠点
スクリプト作成は投資です。その投資がどこで効果を発揮するかを知ることで、どのテストを最初に自動化すべきかが分かります。
優位性
- 繰り返し可能: 同じ手順がどのビルドでも全く同じように実行されるため、回帰テストが実用的になるのです。
- 大規模環境でも高速に動作: テスターが1日かけて行うテストスイートが、数分で実行でき、一晩かけて実行することも可能です。
- 一貫性: スクリプトは決して飽きたり、手順を飛ばしたり、結果を誤読したりしない。
- クロスプラットフォーム: 1つのスクリプトは、ブラウザ、デバイス、オペレーティングシステムを問わず再生できます。
- CI準備完了: スクリプトはビルドパイプラインに組み込まれるため、すべてのコミットが自動的に検証されます。
デメリット
- 高い初期費用: スクリプトを作成してデバッグするには、テストを一度手動で実行するよりもはるかに時間がかかる。
- メンテナンスの負担: 要素IDの変更やページの再設計によってスクリプトが壊れてしまい、修復が必要になります。
- スキル要件: 録音・再生機能だけでなく、チームにはプログラミング能力も必要だ。
- 予期せぬ事態に気づかない: スクリプトは指示されたものしかチェックしないため、視覚的な欠陥やユーザビリティ上の欠陥が見過ごされてしまう。
- 誤った自信: 表面的な内容の緑色のスクリプトの羅列は、実際のカバレッジの欠陥を隠蔽する可能性がある。
実践的なルールとしては、安定した反復作業やリスクの高い作業はスクリプト化し、探索作業やユーザビリティに関する作業は手作業で行うべきだ。
テストスクリプト:重要なポイント
- テスト スクリプトとは、テスト対象のアプリケーションまたはシステムを検証するために実行する必要があるシステム トランザクションに関する情報を含む XNUMX 行ずつの記述を意味します。
- テスト ケースはアプリケーションをテストするために使用される段階的な手順ですが、テスト スクリプトはアプリケーションを自動的にテストするための一連の命令です。
- テストスクリプトを作成する3つの方法は、1) 記録/再生、2) キーワード/データ駆動型スクリプト作成、3) 記述です。 Code プログラミング言語の使用。
- テスト スクリプトは明確である必要があり、テスターが実行する特定のアクションを XNUMX つだけ含むテスト スクリプトを作成する必要があります。
- テストスクリプトは、手順が省略されていないこと、および結果が合意されたテスト計画と一致していることを確認するための最も確実な方法です。
- テスト スクリプト テンプレートは、使用可能なテスト スクリプトを作成するために重要な、事前に選択された情報を含む、再利用可能な書式設定されたドキュメントです。

