これはガイドの最初の部分にすぎません。 はじめに:)。 コミュニティに興味がある場合は、公開して続行します。
テストとは
テストとは、さまざまな条件、入力データ、環境下でソフトウェア製品の動作がどの程度期待を満たしているかを特定できるアクティビティです。
製品をテストすることにより、開発者は製品の試運転中にエラーが発生する可能性を最小限に抑えます。
テストは、手動モードと自動モードの両方で実行できます。 手動モードでは、テスターは製品インターフェイスを使用して、エラーの有無にかかわらず任意のデータを入力し、ボタンの押下などに対するソフトウェアの応答を確認します。 ただし、プログラムに変更が加えられた場合は、すべてのテストを再度繰り返す必要があります。
自動モードでは、開発者はソフトウェア製品の一連のテストを作成し、クライアントのアクションをエミュレートし、データをプログラムインターフェイスに送信し、期待される結果に対する応答を分析します。 一度書かれたこのようなテストは、ソフトウェア製品のライフサイクル全体で使用でき、プログラムの機能が新しい開発で補完されている場合、開発プロセス中に古いコンポーネントの機能が壊れているかどうかを簡単に確認できます。
自動テストの利点:
- ソフトウェア開発の任意の段階で複数のテストを実行する機能。
- 「ヒューマンファクター」の欠如(疲労、物忘れ、テスターの不注意…)。 テストを作成すると、テストの品質を損なうことなく複数回実行できます。
- 製品を稼働させた後、ユーザーによるテストを使用する機能-テストを行います。
- テストはソフトウェア製品よりも前に作成できるため、開発中のソフトウェアの一種の仕様となり、その動作を厳密に定義および制御します(テスト駆動開発-TDD)。
- このテストでは、特別なクライアントインターフェイスを使用せずに、個々のモジュールとソフトウェアコンポーネントを直接操作して確認できます。
- アプリケーションAPIが壊れていないことを確信しながら、ソフトウェアの内部アーキテクチャを変更する機能。
- 一連の品質テストは、新しいソフトウェアのドキュメントを作成するときに非常に役立ちます。
上記のすべてが、「手動」テストを放棄して完全に自動に切り替える必要があることを意味するものではありません。 両方の合理的な組み合わせが必要です。
自動テストでは、プログラムの機能とパフォーマンスをチェックできますが、ユーザーの動作を制御することはできません(完全に非論理的な場合があります)。 したがって、最も高品質のテストを行うには、開発と自動テストを正常に完了した後、ユーザーのアクションを分析し、プログラムインターフェイスの操作で発生する問題を特定する手動テストを実行する必要があります。
Perlテスト
Perlでテストプログラムを作成するために最も一般的に使用されるモジュールは、 Test :: Simple 、 Test :: MoreおよびTest :: Harnessです。 これらのモジュールは、TAPプロトコルに従って動作します。
Test :: MoreおよびTest :: Simpleを使用すると、プログラマは特定のモジュール、プログラムコンポーネントなどの動作をテストするスクリプトを作成できます。テスト結果に関する情報は、TAP形式で非常にコンパクトな形式で表示されます。
テスト::ハーネスは、作成されたテストスクリプトの管理を合理化する機会を提供します(50、100、1000を超えるスクリプトがある場合は非常に重要です)。 テストスクリプトのグループを実行して実行し、それらから受信し、結果を要約して分析するプログラムを作成できます。 また、それらをユーザーに便利な形式で表示します。
バージョン5.8以降、Test :: MoreおよびTest :: HarnessモジュールはPerlコアの一部です。 Perlの以前のバージョンでは、これらのモジュールはCPANで利用できます。
最初のテスト
たとえば、忘れられない「Hello、World!」を返す関数を作成し、その動作をテストします。
関数、 hello.plファイル:
#!/ usr / bin / perl
サブハロー{
return "Hello、world!";
}
1;
hello()関数をテストします。テストする関数の名前-hello.tでスクリプトを呼び出します
#!/ usr / bin / perl
Use Test :: More tests => 2;
require_ok( 'hello.pl');
ok(hello()eq“ Hello、world!”、“ Function hello()return 'Hello、world!'”);
require_okのおかげで、requireを介してスクリプトを接続する機能をテストしています。 このテストが成功すると、require_okは、指定されたスクリプトに対してrequireコマンドを発行することにより、hello.plを自動的に使用可能にします。
ok()の最初の引数は条件式です。 ok()は、hello()関数の結果を取得し、参照と比較します。 受信データと参照データが同一の場合、レポートではテストに合格したものとしてマークされます。 ok()に渡される2番目の引数は 、テストに関する任意のテキストによるコメントです(たとえば、テスト対象、理由、結果として取得される内容など)。 テストレポートが非常に読みやすくなりました。
テストを実行し、テスト結果を確認します。
%perl hello.t
1..2
わかりました1-「hello.pl」が必要です。
ok 2-関数hello()は、「Hello、world!」を返します
おめでとうございます、あなたは最初のテストを書き、テストを無事完了しました!
便利なリンク
RUS
最も重要な10のPerl開発プラクティス。
自動テストとphpUnit環境を作成します。
Libtapを使用したテスト。 スティグ・ブラウタセット、ウラジミール・ククセノク訳
「自動テストの編成と命名」、Kirill Maximov
Perl:さらに学ぶ。 ランダル・シュワルツ。 -オライリー
ENG
テストライブラリの構築
Perlテスト:開発者のノート。 色彩別では、イアン・ラングワース。 -オライリー
http://petdance.com/perl/automated-testing/(プレゼンテーション)