テストケースの作成方法:テストケースの書き方とは?

テストケースの作成方法:テストケースの書き方とは?

この記事では、完全なテストケースを作成する方法について具体的な手順を説明します。

テストケースの詳細については以下の過去記事で紹介していますので、下記のリンクをご覧ください。

テストケースとは? なぜテストケースが重要なのか

テストケースの作成準備

テストケースを作成する前に、顧客から提供された仕様書を注意深く読んで分析する必要があります。

何か分からないことがある場合は、チームメンバーまたは顧客と話し合って、最も正確なテストケースを作成できるようにする必要があります。


テスト ケース 作成

まず、テストケースを作成するために必要なツールを選択する必要があります。

テストケースを手動で作成するツールとして弊社SHIFT ASIAではExcelをよく使用しており、個人的にも強くお勧めします。

また、Excel以外にもインターネット上にさまざまな無料ツールが公開されているので、必要に応じてダウンロードし、使用することもできます。

次にテストケースを完了するための基本的な手順を以下にご紹介します。


Step1:テストの目的を決定する

顧客の要件仕様を明確に理解する必要があります。

ソフトウェアシステムの機能のテストケースを書き始めるとき、最初にすべきことは、システムの要件を理解して定義することです。

例:新規会員登録機能には、登録の成功と失敗の確認が必要です。

Step2:テストパフォーマンスを決定する
(ソフトウェアシステムの理解に基づく)

優れたテストケースを作成するには、機能要件を十分に理解している必要があります。また、 操作を含めソフトウェアがどのように使用されているかを理解した上で、さまざまな機能を整理していきます。

例:正常な登録メールを作成するには、次の基準を満たす必要があります。

→新規登録メールの作成が完了できること

→新しく作成したメールで正常にログインできること

→データベース(DB)に登録されたメールが保存されていること

Step3:非機能(non-function)を定義する

非機能(non-function)の定義というのは、ソフトウェアとハードウェア要件、オペレーティングシステム、さらには考慮しなければならないセキュリティの側面、データファイルやテストデータの準備、その他の前提条件などの非機能要件に関連していることを理解するということです。

非機能要件のテストは非常に重要です。

Step4:テストケースのフォームを定義する

テストケースのサンプルとは、UI(ユーザー・インターフェイス)・機能・フォールトトレランス(耐障害性)・互換性・および一部の機能のパフォーマンスをカバーする必要があります。

各カテゴリは、ソフトウェアアプリケーションのロジックに従って定義する必要があります。

Step5:モジュール間の相互作用を決定する

まず、モジュールの実装機能と、そのモジュールと他のモジュールとの相互作用を理解して、システムのアーティキュレーションを決定する必要があります。

テストケースは、モジュールの影響を最大限にカバーするように設計する必要があります。その問題を知るには、個々のモジュールの機能に加え、それがどのように機能し、他のモジュールとどのように相互作用するかを明確に定義する必要があります。

影響を確認する場合のヒント:

同じまたは類似の機能を持つ機能/モジュール/画面を確認します。

同じ関数/手順/ラインコードを使用する関数/モジュール/画面を確認してください。

機能/モジュール/画面のIN/OUTを確認してください。

サブシステム間の相互作用を確認してください。

システムがWebとアプリの両方を実行する場合は、Webとアプリの相関関係を確認する必要があります。

例:

eコマースWebサイトのショッピングカート機能をテストする時、カート内の製品の数量と価格をチェックするだけでなく、影響の関連機能もチェックする必要があります。

また、売り手は商品の情報を更新/削除する場合、商品をカートに追加した後、売り手の数量は減るかどうか、ショッピングカートとチェックアウト機能の相関関係を確認することが必要です。


テストケースの構造

下記は一般的なテストケースに必要とされる項目です。

ID:
テストに必要なケースの数を特定するために必要な値です。

●機能:
システムの機能に基づいて、機能を分類して、より明確なテストケースを作成できます。

例:Gmailのログインフォームを確認することは、2つの大きな機能と見なされます。

●テストデータ:
テストの準備をするためのデータです。

●テスト手順:
テスト実行のための手順を説明した資料です。

●期待値:
上記の手順から期待される結果です。

●結果:
通常、結果は「合格」、「不合格」、あるいは「保留」の3つに分類されます。 これは、システムの環境でテストケースに従ってテストを実行したときの実際の結果を示します。

●備考:
この列は、テストケースを実行する際のスクリーンショットと関連情報を記録するために使用されます。

また、次のような列を追加することもできます:実行者、実行日...

テストケースの定義

チェックする値が1の場合は、発生する可能性のある大きなケースは常に3つあります。

通常:通常のテストケース

異常:異常なテストケース

境界:境界テストケース

上記のケースはチェックする各値に応じて決定され、小さなケースに分割されます。

例:コンピューターでのWebログイン機能のテストケースを作成するケース。

Step1:要件定義

ここではWebのログインフォームをテストする場合を例に説明します。

テストの目的:

システムへのログインを完了したことを確認します。

登録機能のテストは実行しないこととします。

Web環境でのみをテストすることとします。

●モバイル環境、またはモバイル端末のブラウザ上での確認は不要とします。

テストパフォーマンスを決定する:
ログイン機能は、他のほとんどのシステムと同じ仕様とします。 ログインフォームには、電子メール/電話とパスワードのテキストボックスが2つあります。

また、「ログイン」ボタンと「パスワードを忘れた場合」リンクが1つ含まれています。

非機能を指定する:
メールがシステムに登録されていない場合を確認します。

ブラウザにパスワードを保存する必要があります。

ブラウザの種類(Firefox、Chrome、Safari、IE...)を確認する必要があります。

テストケースのフォームを定義する:
要件には、UI・ログイン機能・ログイン速度のテストが含まれます。

モジュールの影響を判断する:
ユーザーのログインアカウントがシステムのデータベースに対して実際のアカウントであるかどうかを確認することができます

ログインした後、ホームページにリダイレクトされます。

Step2:テストケースの作成


UIケースを定義する;
UIケースの定義には全画面のレイアウトが含まれています:色、フォント、サイズ、ラベルの色、長さ、幅、高さ、テキストボックスの種類、ボタン、フォームの位置、テキストボックス、ボタン、ページ上のリンク...

UIケースを1つのケースだけに分割するのであれば、さまざまなテストケースに分かれます。なので、UIテストケースに結合したり、UIサブグループごとに分割したりできます。

機能テストケースを定義する;
ここでの機能は、メール/電話とパスワードのテキストボックス2つとログインボタン1つとパスワードを忘れた場合のリンク1つを含むログインです。

したがって、次のようなケースが想定されます。

メール/電話のテキストボックスの場合:

通常の場合、正しい電話番号やWebシステムに登録されたメールアドレスでログインできるかどうかをテストで確認します。

異常なケースには次のものが含まれます:

・正しくない電話番号が使われた場合:市外局番が追加された電話番号、前に国コードが入力されていない…など

・メールアドレスを入力せずにログインした場合。

・また、ネットワークの切断、弱いネットワーク、3Gの使用、Wi-Fi、LANネットワーク、Cookieの盗用、セッション、複数のブラウザへのログインなどの場合も異常なケースに含まれることがあります。

境界ケースには次のものが含まれます。

テキストボックスに入力できる最小文字数と最大文字数をテキストで入力します。テスト用に多くの文字を含むメールを作成したり、テスト用にできるだけ短いメールを作成したりすることができます。

パスワードボックスと同じですが、パスワードの暗号化を再度確認します。

●ログインボタンの場合:
通常の場合は次のとおりです。テキストに値を入力し、ログインボタンを押下して、キーボードからEnterキーを押します。

異常なケースには次のものが含まれます:

ボタンを押し続けるか、押し続ける

境界ケースには次のものが含まれます:このケースをチェックする必要はありません

おわりに

今回は完全なテストケースを作成する方法について具体的な手順を説明しました。テストケースはテストプロセスが効果的であり、製品の品質が顧客の要件に準拠しているかどうかを判断するのに役立つため、テストケースを正しく作成することは、テストプロセスにとって非常に重要です。

なお、Excelで作成する場合は、拡張・縮小・並べ替え・列や行の追加などが簡単にできますが、非常に時間がかかります。また、多くの制限された機能により面倒なこともありますので、あらかじめご注意ください。