カスタム データストアのテストのガイドライン
カスタム データストア クラスから派生したすべてのデータストアには共通の動作があります。このテスト手順は、すべてのカスタム データストアが備えていなければならない最小限の動作と機能のセットをテストするためのガイドラインを提供します。カスタム データストア固有の機能を検定するためには、追加のテストが必要です。
カスタム データストアの開発の指示に基づいてカスタム データストアを作成した場合は、以下のテスト手順に従ってカスタム データストアを検定します。最初にユニット テストを実行してから、ワークフロー テストを実行します。
ユニット テストではデータストアのコンストラクターとメソッドを検定します。
ワークフロー テストではデータストアの使用方法を検定します。
これらのすべてのテスト ケースには以下の共通点があります。
テストの説明で指定されている場合を除き、空でないデータストア
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