Link Search Menu Expand Document

EEGLABテストケース

ユニットテストケースとは?

テストケースは、テストするために構築された小さな関数呼び出しです 特定の関数呼び出し - ここで EEGLAB 関数. そのためには 関数ごとの少なくとも1つのテスト ケース、しかし、多くのEEGLAB機能のために、 利用可能なGUIの全範囲をテストするために、より多くのテストケースが必要な場合があります コマンドラインオプション(およびその組み合わせ)

異なる種類のテストケースがあります。 一部のテストケースのみのテスト 特定の関数が特定の組み合わせを使用するときにクラッシュしません 入力パラメータ。 これは、EEGLABのテストの大部分を構成します。 グラフィカルな出力機能。 いくつかの他のテストケースは、与えられた 出力が数値的に正確であるかどうか機能およびテスト。

EEGLABテストケースリポジトリ

EEGLAB の機能の全ての使用はテストケースではカバーしません。 5,000件のテストケースがすべて約10%のカバーであることをお詫び申し上げます。 可能な関数呼び出しのバリエーション。

サーバでテストケースを実行したい場合は、お問い合わせください。 上記のユニットテストパッケージの合計サイズは約2 GBです。 コードをダウンロードした後(ディレクトリ/フォルダに完璧) 名前 “/unittesting”)、MATLABのこのフォルダに移動し、実行します runlocal.m機能。 すべてのテストを実行します。 終了時 テスト(通常約15分)、任意の機能のリスト 失敗した場合は返却されます。 例えば、バグが2つに折り込まれている場合 ‘decompresserpss’ と ‘pop_epoch’ の関数、’runlocal’ の出力は、 で:

function /Users/arno/eeglab-testcases/trunk/unittesting_binary/pop_read_erpss/test_pop_read_erpss.m
    msg Error using ==> read_erpss at 245
 decompresserpss function error (see message above)
 *********************************************
 function /Users/arno/eeglab-testcases/trunk/unittesting_general/unittesting_popfunc/pop_epoch/test_pop_epoch.m
    msg Error using ==> pop_epoch at 123
 ??? Index exceeds matrix dimensions.
 *********************************************

失敗した関数を含む各フォルダーに移動し、 コマンドラインから関数を呼び出します。 例えば、


>> cd /Users/arno/eeglab-testcases/trunk/unittesting_binary/pop_read_erpss
>> test_pop_read_erpss

関数は再び失敗し、それをデバッグすることを可能にしますonの スポット

上記のサンプルエラーを例に示します。 すべて リポジトリに含まれているテストケース(5,000以上)が作成されています。 実行中のMATLABのいくつかのバージョンで動作するように検証 Windows、Mac OSX、Linux

EEGLABテストケースサブリポジトリ

上記のテストケースリポジトリは非常に大きい(2 GB)なので、 独立して実行できるサブフォルダにテストケースを分離します。

  • unittesting_common フォルダーには、適用に必要な共有コードが含まれています。 テストケース。 次に、次のフォルダのいずれかをチェックすることができます

  • unittesting_general フォルダーには、すべてのシグナル処理のテストが含まれています。 EEGLAB(全試験の90%)の機能。 アフター フォルダをダウンロードし、runlocal.m 関数を入力
  • unittesting_studyfunc フォルダーには、対処する関数のすべてのテストケースが含まれています。 EEGLABの研究。 匿名化されたデータでテストSTUDYが含まれているため 複数のテスト対象では、このフォルダはより大きい(1.2 GB)。 アフター このフォルダをダウンロードし、実行します runlocal.m 関数はそれに含まれる。
  • unittesting_binary フォルダには、複数のバイナリデータファイルを読むためのテストケースが含まれています。 フォーマット。 複数の匿名化されたバイナリテストデータファイルを含むため、 このフォルダも大き(500 MB)です。 このフォルダをダウンロードした後、 ランローカル それに含まれている機能。

新しいテストケースの追加

EEGLAB の開発者や EEGLAB のユーザーコミュニティでは、ユニットテストが EEGLAB のコードベースが安定していることを確認するのに役立つため、新しいテストケースが役立ちます。 可能です。 関数やスクリプトにテストケースを追加して、それらを確実にするために 同じ出力を続けてください。 またはテストケースを追加したい場合 オプションの非標準の組み合わせで呼び出しる関数。 EEGLABの機能に関するテストケースがあります。 リポジトリ、[email protected] までお問い合わせください。

理想的なテストケースは何ですか? 理想的なテストケースはEEGLAB関数を実行します 入力パラメータの一部(役に立つ)の組み合わせと、そのチェック 関数出力は正しいです。 これは節約を伴うかもしれません 検証-to-be-correct 出力データをファイルに保存し、テストケースを比較 ファイル内のデータを出力します。 しかし, 広告が行くように, 「いくつかのテストは、 テストなしよりも優れています。 そのため、テストがまだチェックされていない場合でも 機能出力は、テストケーススイートに追加して満足します。 理想的には、あなたのテストは同じテスト入力データを使用して下さい テストケースリポジトリまたはチュートリアルデータを配布して “sample_data” フォルダ内の EEGLAB。

EEGLABスクリプトをユニットテストに追加

標準 MATLAB と EEGLAB 関数を呼び出す複雑なスクリプトがある場合 EEGLABでは今後も引き続きご支援を賜りますようお願い申し上げます。 リリース、スクリプトと関連データを送ってください。 [email protected].

これまでのところ、Arnaud Delormeのほとんどのテストケース関数は、 ケタン、アンドレアス・ロメイケ、ロニー・リンダー