ソフトウェアのテストケースを書く方法:例チュートリアル読み取り時間:10分

テストケースを書く方法は、開発の重要な部分とは思えないかもしれません。 しかし、ソフトウェアテスターが最高の仕事を実行するためには、従うべきステップの明確なセットとテストされているものの明確な定義が必要です。

NASAやGEから企業レベルの企業まで、誰もが最高の状態で活動しているチームから恩恵を受けることができます。 優れたテストケースを作成することは、チームの効率と有効性を高めるためのもう一つの方法にすぎません。Parasoftは、チームにそれを行う権限を与えることに

このブログでは、テストケースの書き方に関連する次のトピックについて説明します:

  1. テストケースとは何ですか?
  2. テストスクリプトとテストケース
  3. 異なるテストケースタイプ
  4. ソフトウェアテストケースの書き方
  5. 標準テストケース形式
  6. テストケース テスト計画
  7. テストケース作成ツール
AIで強化されたテスト自動化を使用して、API機能テストを容易にするために、有用で再利用可能なテストケースを作成する方法を参照してください。
デモを要求する

ソフトウェアのテストケースとは何ですか?

テストケースはまさにそのようなものです:期待される結果を検証するために一連のアクションまたは条件全体で機能を測定するテストシナリオ。 これらは、任意のソフトウェアアプリケーションに適用され、手動テストまたは自動テストを使用でき、テストケース管理ツールを使用できます。

テストケースを作成する際に覚えておくべき重要なことは、割引コードが電子商取引のwebページ上の適切な製品に適用されるかどうかなど、基本的な変数やタスクをテストすることを意図しているということです。 これにより、ソフトウェアテスターはコードと機能をテストする方法をより柔軟にすることができます。

組み込みシステム用のユニットと回帰テストの最適化

テストスクリプトとテストケース

テストケースとテストスクリプトの違いも明確にする必要があります。 テストスクリプトは、特定の機能をテストするための短いプログラムです。 テストケースは、事前に計画されたとおりに完了する手順を含む文書です。

テストケースは細心の注意を払って計画された旅行として考え、テストスクリプトは食料品店への迅速な旅行のようなものと考えてください。

異なるタイプのテストケースの目的を一覧表示するチャート:左の列は機能、ユニット、パフォーマンス、データベースを示し、右の列はユーザーインターフェイス、統合、セキ 関連する手順は、ユーザがログイン画面で間違ったパスワードを入力したときなどの肯定的な期待される結果とは対照的に、失敗の結果を誘導することを意図している場合もある。

いくつかの一般的なテストケースの例は、次のようになります:

機能、セキュリティ、およびユーザビリティに関する一般的なテストケースの例を示す表

テストケースは、任意のソフトウェアにある任意の数の機能に適用 最も一般的な例には、次のものがあります:

  • APIテスト–アクションでそれを参照してください。
  • UIテスト–アクションでそれを参照してください。
  • 単体テスト–実際にそれを参照してください。
  • ロード&パフォーマンステスト–アクションでそれを参照してください。
  • セキュリティテスト
  • SQLクエリ
  • ローコードアプリケーションテスト

一般的なテストケースの例

テストケースは、さまざまなソフトウェアシナリオ 銀行業務から個人用ソフトウェアまでのすべてには、テストケースアプリケーションが必要です。 たとえば、機密データを暗号化することが目的の場合、ソフトウェアは意図したとおりに機能する機能を備えている必要があります。

しかし、機能テストはテストケースを書くことの一側面にすぎません。 ソフトウェアテストは、パフォーマンスから互換性、セキュリティに至るまで、コードのあらゆる側面に堅牢に挑戦する必要があります。 そのため、個人の暗号化ソフトウェアを徹底的にテストする必要があります—特にWeb Apiのようなものに関しては。

コードとコンピュータ関連の画像の中でテストケースを書いている二人を示すインフォグラフィック

ソフトウェアテストケースの書き方

テストケースの書き方は、テストケースが何を測定しているか、テストしているかによって異なります。 これは、開発チームとテストチーム間でテスト資産を共有することで、ソフトウェアテストを加速することができる状況でもあります。 しかし、それはすべて、テストケースを効果的かつ効率的に書く方法を知ることから始まります。

テストケースには、常にフィールドに存在する必要があるいくつかの不可欠な部分があります。 ただし、すべてのテストケースは8つの基本的な手順に分けることができます。

ステップ1:テストケースID

テストケースはすべて、それらを表すために一意のIdを持つ必要があります。 ほとんどの場合、この命名IDの規則に従うことは、組織、明確さ、および理解に役立ちます。

ステップ2: テストの説明

この説明では、どのユニット、機能、または機能がテストされているか、または何が検証されているかを詳細に説明する必要があります。

ステップ3:仮定と前提条件

これは、テストケースの実行前に満たされるすべての条件を伴います。 一例として、ログインに有効なOutlookアカウントが必要です。

ステップ4:テストデータ

これは、テストケース内の変数とその値に関連します。 電子メールログインの例では、アカウントのユーザー名とパスワードになります。

ステップ5: 実行されるステップ

これらは、エンドユーザーの観点から実行されるように簡単に反復可能なステップでなければなりません。 たとえば、電子メールサーバーにログインするためのテストケースには、次の手順が含まれている場合があります:

  1. メールサーバーのwebページを開きます。
  2. ユーザー名を入力します。
  3. パスワードを入力します。
  4. “入力”または”ログイン”ボタンをクリックします。

ステップ6:期待される結果

これは、テストケースステップの実行後に期待される結果を示します。 適切なログイン情報を入力すると、期待される結果は正常なログインになります。

ステップ7: 実際の結果と事後条件

期待される結果と比較して、テストケースの状態を判断することができます。 電子メールログインの場合、ユーザーは正常にログインしているかどうかのいずれかになります。 ポスト条件は、電子メールの受信トレイにリダイレクトされるなどのステップの実行の結果として発生するものです。

ステップ8:Pass/Fail

pass/failステータスを決定することは、期待される結果と実際の結果が互いにどのように比較されるかによって異なります。

同じ結果=合格
異なる結果=失敗

Dev&テストチーム間でテスト資産を共有することにより、ソフトウェアテストを加速

標準単体テストのケース形式

よく書かれた単体テストの各部分は、以下を含むいくつかのコア側面を定義します:

  1. テストによって実行される関数
  2. テストで使用されたデータ
  3. テスト実行から期待される結果
  4. テストがコードベースの他の部分から分離して実行されたことを確認する

よく書かれたテストの標準形式は、以下の部分で構成されていることを知っておくことが重要です。:

  • 意味のあるテストメソッド名
  • テストに使用する制御されたデータまたはモック
  • テスト対象のメソッドまたはユニット(テストしているコードの一部)
  • アサーションの適用
  • 単体テストを単独で実行する

よく書かれた単体テストケースのコードの画面キャプチャ

テストケーステンプレートはありますか?

前述のように、標準的なテストケース形式があります。 ただし、テストケーステンプレートは、会社によって、さらにはチームによっても異なる可能性があります。 代わりに、テストケーステンプレートは、テストシナリオとそれに続くテストケースのリストを含む文書です。

品質テストケースの例

テストケースはテストの種類とテストの全体的な分野によって異なりますが、品質テストケースを構築するには、上記の信頼できる 覚えておいてください:テストメソッドの名前には、テスト対象のメソッドまたはユニットと予想される結果を含める必要があります。

各ユニットは分離してテストする必要があることにも注意する必要があります。 この場合、”分離”とは、テスト対象のアプリケーションの一部のみを実行するために、テストを可能な限り集中させることを意味します。

この例は、銀行関連のテストケースから来ています:

このメソッド名を使用した銀行関連のテストケース

のコードの画面キャプチャでは、これは次のような単体テストであることがわかります:

  • メソッド’isOverDrawn()’をテストします。
  • 制御されたデータに使用された平衡は500でした。
  • 期待される結果は真です。

意味のあるメソッド名を使用すると、結果を確認する人は、単体テストが何をテストしていたのかを理解できます。 さらに、テストされるデータ、期待される結果、およびテストされたものを通知します。

テストが失敗した場合、期待される結果を知ることは、トラブルシューティングを容易にし、回帰が導入されないようにする上で重要です。

テストケースデータ

使用されるデータは、テストを実行するのに十分である必要があります。 単体テストでは、アプリケーションの最も基本的な単位をテストすることを可能な限り簡単にしたいと考えています。 データは、データを制御できる文字列またはオブジェクト変数を作成するのと同じくらい簡単です。 または、依存関係が利用できない場合、またはその依存関係が特定の状態にある必要がある場合は、モックフレームワークをテストに使用できます。

十分であれば、その一部をテストするのに十分なだけです。 テストを実行するためにアプリケーションのすべての部分を構成する必要はありません。

これは単体テストの実行に使用されるデータであるため、単体テストの動作に影響します。 そのため、単体テストのこの部分は、テストに使用するデータを知るためにテストしているコードをある程度理解する必要があるため、最も時間がかかり

テストするコードに必要な部品だけを使用することで、シンプルに保ちます。 モックは、テストと対話するときにそれらのオブジェクトのメソッドがどのように動作するかを制御できるため、このフェーズで非常に便利です。

たとえば、次のデータが与えられます:

オブジェクトの動作を制御する方法を示すコードの画面キャプチャ

分離をテストするために”customerクラス”のモックを使用することにより、”実際のcustomerクラ このテスト用に別のオブジェクトを導入したり設定したりすることは、そのオブジェクトに別の保守性レイヤーを追加するため、テスト対象のメソッ

次に作成される変数は”初期残高”です。 次の行には、作成されたAccountオブジェクトと、使用したデータでテストするメソッドを準備するためのモックと初期残高が表示されます。

この例では、顧客オブジェクトのデータを気にせず、テスト用に制御できる初期残高に合格したため、accountオブジェクトはモックcustomerで構成されています。

次の行は、テスト対象のメソッドで数値を使用する必要があるため、入力を定義します。 私たちがテストしている方法で使用される”バランス”を定義しました。 その後、メソッドが実行され、メソッドの結果が変数に格納され、後で使用できるようになります。

アサーションの適用

テストが正常に完了したら(例外やエラーなしで最初から最後まで実行されるように)、単体テストにアサーションを適用します。 アサーションがなければ、ユニットテストは意図したとおりに動作することを保証するために強制しているものがないため無意味です。

実行された行のカバレッジを収集すると、何が実行されたかがわかりますが、次のことを判断するのに十分な詳細が提供されません:コードが期待どおりに動作している場合は、

  • コードが品質目標を満たしている場合。
  • 返されたデータが期待されるデータである場合。

アサーションは次のように基本的なものにすることができます:

アサーション

を示すコードの画面キャプチャ単体テストに、テスト結果のメソッドをチェックするアサーションが含まれている限り、これは意味のある単体テストです。

一つのアサーションで意味のある単体テストのためのコードの画面キャプチャ

単体テストの標準形式を適用することにより、チームは簡単にテスト

巨大な大型モニターの周りに仕事でチームを示すインフォグラフィック。 スマートフォン上の左に男、ノートパソコン上で作業しているモニターの上に座っている男、特大の鉛筆でモニター上の棒グラフを描くはしごの女の子、メガホンに話しているモニターの前に立っている男、ノートを取ってモニターの右に女の子。

品質テストケースを作成するためのベストプラクティスは何ですか?

効果的なテストとテストケースの書き方は、時間の経過とともに合理化されます。 いくつかのベストプラクティスには、強力なタイトル、強力な説明を使用し、言語を簡潔かつ明確に保つことが含まれます。

しかし、前提条件、仮定、および期待される結果も含めたいと思うでしょう。 このすべての情報は、特にテストケースが代わりに”合格”または”失敗”であるかどうかを判断するときに、ソフトウェアテスタに関連します。

うまく動作するテストケースを作成するためのチートシートは次のとおりです:

  • 物事をシンプルで透明に保ちます。
  • テストケースを再利用可能にする。
  • テストケースIdを一意に保ちます。
  • 査読は重要です。
  • テストケースには、エンドユーザーまたは定義された要件を念頭に置いておく必要があります。
  • 期待される結果と仮定を指定します。

テストスイートA、B、C

を含むテスト計画を示すグラフシンプルで、ユニークで、具体的で、フィードバックに開放され、再利用性に焦点を当てています。 品質のテストケースを書く方法をより視覚的に見るには、このテーマに関するParasoftのウェビナーをチェックしてください。

テストスイートとテスト計画

テストケースの他の側面には、テストスイートとテスト計画が含まれます。 これらは重要な方法が異なり、両方とも正確なテストケース開発に不可欠です。

これらの5つのおいしい技術の組合せのよりスマートなソフトウェアテスターであって下さい

テストスイートとは何ですか?

テストスイートは、ソースコード、依存関係のコレクション、またはコードで実行されるテストスイートに関連するため、テストケースに適しています。 テストスイートを使用すると、分析や計画のニーズに合わせた方法でテストケースを分類できます。

これは、コアソフトウェア機能には独自のテストスイートがあり、別のテストスイートはsmokeやsecurityなどの特定のテストタイプ用であることを意味します。 テストスイートは、テストケースを整理するための本棚と考えてください。

テスト計画とは何ですか?

対照的に、テスト計画は、すべてのテストスイートの上に立つ傘のようなものです。 テストケースが書籍で、テストスイートが本棚である場合、テスト計画は本棚を含む部屋です。

一般的に、テスト計画は、手動テスト、自動テスト、およびテストの実行方法の一般的な形式で設定されます。 彼らは、変更を実装したり、新機能を追加したりする前に、テストスイートとテストケースを利用して、基礎からソフトウェアをテストします。

オレンジ色のシャツと黒のズボンを着た男がモニター付きの机に座って働いていることを示すインフォグラフィック。

ベストテストケースライティングツール

Parasoftは、一般的に”George Jetson”理論を念頭に置いてツールとスイートを開発しています。 それは私達が私達の顧客に”ボタンを”押し、すべてに大事にされてもらいたいと言うことである。 これは完全に現実的ではありませんが、自動化に焦点を当てたツールは、テストケースを作成するときに使用するのが最善です。

彼らは自動化を支援するだけでなく、開発の最初から支援することができます。 結局のところ、それは小さな細部や機能によって行き詰まりを取得するにはあまりにも簡単です。 ソフトウェアが最初に機能するだけであることを忘れてしまうかもしれません。 そこで、Parasoft JtestのようなJava単体テストツールが登場します。

APIテストを簡素化し、ソフトウェア品質を向上させます。 AIで強化されたテスト自動化&MLの動作を参照してください!
デモをリクエスト

このツールは、初心者や専門家が単体テストのスキルをより迅速に改善し、単体テストの経験を向上させることを可能にします。 基礎を確立した後、単体テストを実行し、テストが意味のあるものであることを確認するようにユーザーをガイドします。 テストで探すべきものの種類を理解することができれば、テストケースの作成はそれほど威圧的になりません。

タイトルテキスト:自動化によるJavaの単体テストの改善;タイトルの下にアクションボタンを呼び出します: 無料の電子ブックを取得します。

コメントを残す

メールアドレスが公開されることはありません。