カスタム データ ストアのテストのガイドライン
カスタム データ ストア クラスから派生したすべてのデータ ストアには共通の動作があります。このテスト手順は、すべてのカスタム データ ストアが備えていなければならない最小限の動作と機能のセットをテストするためのガイドラインを提供します。カスタム データ ストア固有の機能を検定するためには、追加のテストが必要です。
カスタム データストアの開発の指示に基づいてカスタム データ ストアを作成した場合は、以下のテスト手順に従ってカスタム データ ストアを検定します。最初にユニット テストを実行してから、ワークフロー テストを実行します。
ユニット テストではデータ ストアのコンストラクターとメソッドを検定します。
ワークフロー テストではデータ ストアの使用方法を検定します。
これらのすべてのテスト ケースには以下の共通点があります。
テストの説明で指定されている場合を除き、空でないデータ ストア
ds
をテストしていることが想定されています。カスタム データストアで設計上サポートされているファイルの拡張子、ファイルのエンコード、およびデータの場所 (Hadoop® など) についてテスト ケースを検証します。
ユニット テスト
構築
データ ストアのコンストラクターに関するユニット テストのガイドラインは以下のとおりです。
テスト ケースの説明 | 期待される出力 |
---|---|
カスタム データ ストアのコンストラクターが最低限の必須入力で動作するかどうかをチェックします。 | 期待される最小限のプロパティとメソッドをもつカスタム データ ストア タイプのデータ ストア オブジェクト |
データストア オブジェクト 以下のコマンドを実行します。 isa(ds,'matlab.io.Datastore') |
|
カスタム データ ストア コンストラクターを、必須入力と任意のサポートされる入力引数、および名前と値の引数ペアで呼び出します。 | 期待される最小限のプロパティとメソッドをもつカスタム データ ストア タイプのデータ ストア オブジェクト |
read
read
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
データ ストア オブジェクト t = read(ds); | データ ストアの先頭からのデータ 読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
データ ストア オブジェクトに対して t = read(ds); | 前回の読み取り操作の終了点から開始するデータ 読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
データ ストア オブジェクトに対して、while ループ内で while(hasdata(ds)) t = read(ds); end | エラーなし 正しい形式の正しいデータ |
読み取り可能なデータがある場合、 データ ストア オブジェクト [t,info] = read(ds); | エラーなし
|
読み取り可能なデータがなくなった場合に、データ ストア オブジェクトに対して | カスタム データ ストアの実装に基づき、期待される出力またはエラー メッセージ。 |
readall
readall
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
データ ストア オブジェクトに対して | すべてのデータ |
while(hasdata(ds)) t = read(ds); end readall(ds) | すべてのデータ |
hasdata
hasdata
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
| |
|
|
読み取り可能なデータがまだある場合に、 |
|
読み取り可能なデータがなくなった場合に、 |
|
reset
reset
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
reset(ds); t = read(ds); | エラーなし
読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
読み取り可能なデータがまだある場合に、
| エラーなし
読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
読み取り可能な追加のデータがまだある場合に、
| エラーなし
読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
読み取り可能なデータがなくなった場合に、データ ストア オブジェクトに対して
| エラーなし
読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
progress
progress
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
|
|
readall(ds); progress(ds) |
|
|
|
読み取り可能なデータがなくなった場合に、データ ストア オブジェクトに対して |
|
preview
preview
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
|
|
|
|
|
|
|
|
読み取り可能なデータがなくなった場合に、データ ストア オブジェクトに対して |
|
|
読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
|
|
データ ストアに読み取り可能なデータがある間に、 |
|
partition
partition
メソッドのユニット テストのガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
有効な区画数と有効な分割インデックスを指定して、データ ストア オブジェクト データ ストアの区画に対して subds = partition(ds,n,index) read(subds) 区画が有効であることを検証します。 isequal(properties(ds),properties(subds)) isequal(methods(ds),methods(subds)) |
返される区画 分割されたデータ ストア
区画に対して 読み取りサイズを指定する場合は、返されるデータのサイズが読み取りサイズと同等になります。 |
区画数を 分割されたデータ ストアの区画に対して subds = partition(ds,1,1) isequal(properties(ds),properties(subds)) isequal(methods(ds),methods(subds)) isequaln(read(subds),read(ds)) isequaln(preview(subds),preview(ds)) | 区画 区画
|
有効な区画数と有効な分割インデックスを指定して、区画 | データ ストアの区画の再分割はエラーなしで動作しなければなりません。 |
initializeDatastore
データ ストアが matlab.io.datastore.HadoopFileBased
から継承している場合は、次の表のガイドラインを使用して initializeDatastore
の動作を検証してください。
テスト ケースの説明 | 期待される出力 |
---|---|
有効な
たとえば、 info = struct('FileName','myFileName.ext',... 'Offset',0,'Size',500) initializeDatastore(ds,info) データ ストア オブジェクトのプロパティを確認することで初期化を検証します。 ds |
|
getLocation
データストアが matlab.io.datastore.HadoopFileBased
から継承している場合は、以下のガイドラインを使用して getLocation
の動作を検証します。
テスト ケースの説明 | 期待される出力 |
---|---|
データ ストア オブジェクトに対して location = getLocation(ds) カスタム データ ストアの実装に基づき、
resolve(location) |
|
isfullfile
データストアが matlab.io.datastore.HadoopFileBased
から継承している場合は、以下のガイドラインを使用して isfullfile
の動作を検証します。
テスト ケースの説明 | 期待される出力 |
---|---|
データ ストア オブジェクトに対して | カスタム データ ストアの実装に基づき、 |
ワークフロー テスト
適切な環境下でワークフロー テストを検証します。
データストアが
matlab.io.Datastore
からのみ継承している場合は、すべてのワークフロー テストをローカル MATLAB® セッションで検証します。データストアが並列処理をサポートしている場合 (
matlab.io.datastore.Partitionable
から継承) は、Parallel Computing Toolbox™、MATLAB Parallel Server™ などの並列実行環境でワークフロー テストを検証します。データストアが Hadoop をサポートしている場合 (
matlab.io.datastore.HadoopFileBased
) は、Hadoop クラスター内でワークフロー テストを検証します。
tall ワークフロー
tall
ワークフローのテスト ガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
データ ストア オブジェクト t = tall(ds) | 関数 |
このテスト ステップでは、システム メモリに収まるサイズのデータを含むデータ ストア オブジェクトを作成します。次に、このデータ ストア オブジェクトを使用して tall 配列を作成します。 t = tall(ds) データが数値の場合は、 データが
たとえば、tall 配列およびデータ ストアを使用するビッグ データのワークフロー (Parallel Computing Toolbox)を参照してください。 | エラーなし 関数は正しいデータ型の出力を返します (
|
MapReduce ワークフロー
MapReduce ワークフローのテスト ガイドライン
テスト ケースの説明 | 期待される出力 |
---|---|
データ ストア オブジェクト outds = mapreduce(ds,@mapper,@reducer) mapreduce を参照してください。 関数 | エラーなし MapReduce 演算は期待される結果を返します。 |
次のステップ
メモ
このテスト手順は、カスタム データ ストアの最小限の動作と機能のセットをテストするためのガイドラインを提供します。カスタム データ ストア固有の機能を検定するためには追加のテストが必要です。
実装と検証が完了したらカスタム データ ストアの使用を開始できます。
カスタム データ ストアにヘルプを追加するには、クラスのヘルプの作成を参照してください。
カスタム データ ストアを他のユーザーと共有するには、ツールボックスの作成と共有を参照してください。
参考
matlab.io.Datastore
| matlab.io.datastore.Partitionable
| matlab.io.datastore.HadoopLocationBased