講演 - ユニットテストを行う方法

ユニットテストを行う方法

必要なスキル:
1、コードの基本的な特性;
2、エラーが発生し、
図3に示すように、ユニットテスト方法及びそのようなものドライバコード、コード・スタブ・コードおよびモックなどの主要な基本的な技術、

理由コードとエラーのまず、基本的な特性

コード規則は、条件分岐、ループ処理などの関数の呼び出しによって、最も基本的なロジック制御を見つけることができます。

機能コードを実行するには、論理的に、正しい完了し、正しい分類が徹底的に行われなければならない、各カテゴリ内の処理ロジックの同僚が正しくなければなりません。

オーダー、典型的には、以下の考慮事項があり、論理設計を実装し、正しいコードを開発するために:
1、正しい機能論理を達成するために、いくつかの通常の入力がある;
2、複数の入力境界がある場合、特別な処置を必要とする;
3、様々な潜在的に違法な入力とどのように対処するの可能性。

第二に、ユニットテストのコメント

ユニットテストケース「のデータ入力」及び「出力予想」に設定され
、完全な「入力データ」:

  • 関数の測定された入力パラメータ。
  • グローバル静的変数内部テスト機能が読み取られます。
  • 内部メンバ変数のテスト機能が読まれる必要があります。
  • 関数は内部関数呼び出しのデータが得られ、
  • 内部関数の呼び出しサブルーチン書き換えデータ。
  • 組込みシステムは、データが割り込み通話に書き換えられ、

    明確な期待される出力がない場合は、テスト自体は意味を失います。関数の戻り値として、絶対に同じように単純ではない「それは入ることが予想される」、機能実行書き換えが完了した後、すべてのデータが含まれている必要があります。
  • 機能テストの値を返します。
  • 関数の測定された入力パラメータ。
  • 書き換え可能な関数メンバ変数を測定しました。
  • 試験関数の書き換え可能なグローバル変数。
  • テスト中の機能を更新するファイル。
  • 測定されたデータベースの更新機能。
  • メッセージキュー更新機能を測定し;

    期待される出力値については、関数論理セットのコードに応じて、厳密でなければならないが、期待される出力を計算するためのコードを読み取ることができません。
    一部の等価クラスまたは境界値ならば、テスト時間はテストケースを設計していないだろう、開発を考慮せずに、テストは死角が発生します。
第三に、ドライバコード、コードスタブコードとモック

ドライバのコードは、機能テスト、およびモックスタブコードを呼び出すために使用されたコードは、関数呼び出しの本当のテストの代わりに使用するコードです。


13191251-55d225dfb5af3c97.png
3つの論理関係

ドライバコード(ドライバ)機能テストを呼び出すコードを意味します。試験装置では、典型的には、データ準備関数を呼び出す前に測定された駆動モジュールを備えており、検証関数呼び出し相関結果は、3つのステップを測定しました。フレームユニットテストによって決定コードの通常駆動構造。
スタブ・コード(スタブ)は、仮コード実際のコードの代わりに使用されます。以下のような:Aは、このシミュレーションの機能は、いわゆるスタブコードで実現するためにB、論理関数Aをテストするために、あなたが関数Bをシミュレートする必要があり、まだ達成すべきに、関数Bを呼び出す関数の内部実装

例えば:


13191251-2b81b11fb829493f.png
機能は、測定の関数であり、

目に見える、関数Aが関数Bを呼び出しますが、B細胞機能のテスト段階ではなく、実際の関数B関数Bのフェイクで、達成されていない、Bは、この偽のスタブの関数です。

13191251-fcb2cd44cb724511.png
パイルは、ファンクション(機能B)を達成します

可視 アプリケーションのスタブ・コードは第1の分離の役割を果たしたと満たされ、テスト対象のコードは独立して、リンクをコンパイルし、独立して実行することができます。同僚は、スタブ・コード実行パスは、さらに、測定された関数の機能を有しています。
書き込みスタブコードは、3つの原則の対象となります。

  • スタブは、元のプロトタイプのみ異なる内部実装、スタブに接続するには、このテストコードの正確に同じ機能を有します。
  • アイソレーションを実現するための、比較的簡単な余裕がスタブは、単にコンパイルを接続を目的としたオリジナルの関数宣言に加え、空の実装を、維持する必要があります。
  • スタブ制御機能適切な内部入力テスト機能としてテストケースのニーズ、出力データに基づいて、最も広く使用されています。

モックとスタブコードは、実際の一時的なコードの代わりに使用されるコードと非常によく似て隔離充填の役割を果たしています。


13191251-7db0874c635afd19.png
モックとスタブの違い

実際のプロジェクトのユニットテストを実行するには?

通常は底部モジュール又はモジュールがコアユニットテストを用いてテストされる1;
2は、ユニットテストフレームワークは、開発言語に関連付けられた、決定します。Java(登録商標)、JUnitの&TestNGのような、C / C ++ - CppTest $パラソフトC / C ++テスト、 モックコードと選択コードパイルフレームは、具体的に使用開発スタック技術です。
3、コードカバレッジの統計ツール、JavaのJaCoCo、イスタンブールではJavaScript。
図4は、それが自動的にユニットテストをトリガーする、ユニットテスト、継続的インテグレーションとコードカバレッジの統計情報は、各コードが送信されることを確実にするために、組立ラインの統合を行う実行する必要があります。この送信コードを受け入れることができるようにユニットテストで速度とコードカバレッジを渡します。

記事は引用している:
https://time.geekbang.org/column/article/10275

おすすめ

転載: blog.csdn.net/weixin_34200628/article/details/90819662