Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Directrices de prueba para datastores personalizados

Todos los almacenes de datos que se derivan de las clases de almacén de datos personalizadas comparten algunos comportamientos comunes. Este procedimiento de prueba proporciona directrices para probar el conjunto mínimo de comportamientos y funcionalidades que deben tener todos los almacenes de datos personalizados. Necesitará pruebas adicionales para calificar cualquier funcionalidad única de su almacén de datos personalizado.

Si ha desarrollado el almacén de datos personalizado según las instrucciones, siga estos procedimientos de prueba para calificar el almacén de datos personalizado.Desarrollar almacén de datos personalizado Primero realice las pruebas unitarias, seguidas de las pruebas de flujo de trabajo:

  • Las pruebas unitarias califican el constructor y los métodos del almacén de datos.

  • Las pruebas de flujo de trabajo califican el uso del almacén.

Para todos estos casos de prueba:

  • A menos que se especifique en la descripción de la prueba, suponga que está probando un almacén de datos no vacío.ds

  • Compruebe los casos de prueba en las extensiones de archivo, las codificaciones de archivos y las ubicaciones de datos (como) que el datastore personalizado está diseñado para admitir.Hadoop®

Las pruebas unitarias

Construcción

Las directrices de prueba unitaria para el constructor de almacén de datos son las siguientes.

Descripción del caso de pruebaSalida esperada

Compruebe si el constructor de almacén de datos personalizado funciona con las entradas mínimas requeridas.

Objeto datastore del tipo de almacén de datos personalizado con las propiedades y los métodos mínimos esperados

Compruebe si el objeto de almacén de datos tiene como una de sus superclases.dsmatlab.io.Datastore

Ejecute este comando:

isa(ds,'matlab.io.Datastore') 

O1true

Llame al constructor de almacén de datos personalizado con las entradas necesarias y cualquier argumentos de entrada admitidos y argumentos de par nombre-valor.

Objeto datastore del tipo de almacén de datos personalizado con las propiedades y los métodos mínimos esperados

read

Directrices de prueba unitaria para el métodoread

Descripción del caso de pruebaSalida esperada

Llame al método en un objeto de almacén de datos.readds

t = read(ds);

Los datos desde el principio del almacén

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Vuelva a llamar al método en el objeto de almacén de datos.read

t = read(ds);

Los datos a partir del punto final de la operación de lectura anterior

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Siga llamando al método en el objeto de almacén de datos en un bucle while.read

while(hasdata(ds))   t = read(ds); end

No hay errores

Corrija los datos en el formato correcto

Cuando los datos están disponibles para leer, Compruebe la salida (si existe) del método.inforead

Llamar a un objeto de almacén de datos.ds

[t,info] = read(ds);

No hay error

contiene la información esperadainfo

contiene los datos esperadost

Cuando no haya más datos disponibles para leer, llame al objeto DataStore.read

Salida esperada o un mensaje de error basado en la implementación de un almacén de datos personalizado.

readall

Directrices de prueba unitaria para el métodoreadall

Descripción del caso de pruebaSalida esperada

Llame al método en el objeto de almacén de datos.readall

Todos los datos

Llame al método en el objeto de almacén de datos, cuando sea.readallhasdata(ds)false

Lea desde el almacén de datos hasta is y, a continuación, llame al método.hasdata(ds)falsereadall

while(hasdata(ds))   t = read(ds); end
readall(ds)

Todos los datos

hasdata

Directrices de prueba unitaria para el métodohasdata

Descripción del caso de pruebaSalida esperada

Llame al método en el objeto de almacén de datos antes de realizar cualquier llamada ahasdataread

true

Llame al método en el objeto de almacén de datos después de realizar algunas llamadas a, pero antes de que se lean todos los datoshasdataread

true

Cuando haya más datos disponibles para leer, llame al método y, a continuación, llame al método.readallhasdata

true

Cuando no haya más datos disponibles para leer, llame al método.hasdata

false

reset

Directrices de prueba unitaria para el métodoreset

Descripción del caso de pruebaSalida esperada

Llame al método en el objeto de almacén de datos antes de realizar cualquier llamada al método.resetread

Compruebe que el método devuelva los datos apropiados después de una llamada al método.readreset

reset(ds); t = read(ds);

No hay errores

Devuelve los datos desde el principio del almacén de datos.read

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Cuando haya más datos disponibles para leer, llame al método después de realizar algunas llamadas al método.resetread

Compruebe que el método devuelva los datos apropiados después de realizar una llamada al método.readreset

No hay errores

El método devuelve datos desde el principio del almacén de datos.read

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Cuando haya más datos disponibles para leer, llame al método después de realizar una llamada al método.resetreadall

Compruebe que el método devuelva los datos apropiados después de realizar una llamada al método.readreset

No hay errores

El método devuelve datos desde el principio del almacén de datos.read

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Cuando no haya más datos disponibles para leer, llame al método en el objeto datastore y, a continuación, llame al métodoresetread

Compruebe que devuelve los datos apropiados después de una llamada al método.readreset

No hay errores

El método devuelve datos desde el principio del almacén de datos.read

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

progress

Directrices de prueba unitaria para el métodoprogress

Descripción del caso de pruebaSalida esperada

Llame al método en el objeto de almacén de datos antes de realizar cualquier llamada al método.progressread

o una salida esperada en función de la implementación de un almacén de datos personalizado.0

Llame al método en el objeto de almacén de datos después de realizar una llamada a, pero antes de realizar las llamadas aprogressreadallread

readall(ds); progress(ds)

o una salida esperada en función de la implementación de un almacén de datos personalizado.0

Llame al método en el objeto de almacén de datos después de realizar algunas llamadas a y mientras hay más datos disponibles para leer.progressread

Una fracción entre y o una salida esperada basada en la implementación de un almacén de datos personalizado.01

Llame al método en el objeto datastore cuando no haya más datos disponibles para leer.progress

o una salida esperada en función de la implementación de un almacén de datos personalizado.1

preview

Directrices de prueba unitaria para el métodopreview

Descripción del caso de pruebaSalida esperada

Llame al objeto de almacén de datos antes de realizar llamadas a.previewread

El método devuelve los datos esperados desde el principio del almacén de datos, en función de la implementación de almacén de datos personalizada.preview

Llame al objeto de almacén de datos después de realizar algunas llamadas a y mientras haya más datos disponibles para leer.previewread

El método devuelve los datos esperados desde el principio del almacén de datos, en función de la implementación de almacén de datos personalizada.preview

Llame al objeto de almacén de datos después de realizar una llamada a y mientras hay más datos disponibles para leer.previewreadall

El método devuelve los datos esperados desde el principio del almacén de datos, en función de la implementación de almacén de datos personalizada.preview

Llame al objeto de almacén de datos después de realizar algunas llamadas a y una llamada a.previewreadreset

El método devuelve los datos esperados desde el principio del almacén de datos, en función de la implementación de almacén de datos personalizada.preview

Llame al objeto datastore cuando no haya más datos disponibles para leer.preview

El método devuelve los datos esperados desde el principio del almacén de datos, en función de la implementación de almacén de datos personalizada.preview

Llame después de hacer algunas llamadas al método y después llame otra vez.previewreadread

El método devuelve datos a partir del punto final de la operación de lectura anterior.read

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Llame y, a continuación, llame al almacén de datos.previewreadall

El método devuelve todos los datos del datastore.readall

Mientras que datastore tiene datos disponibles para leer, llamar y luego llamar.previewhasdata

El método devuelve.hasdatatrue

partition

Directrices de prueba unitaria para el métodopartition

Descripción del caso de pruebaSalida esperada

Llame al objeto de almacén de datos con un número válido de particiones y un índice de partición válido.partitionds

Llame a una partición del almacén de datos y Compruebe la información.read

subds = partition(ds,n,index) read(subds)

Compruebe que la partición es válida.

isequal(properties(ds),properties(subds)) isequal(methods(ds),methods(subds))

El método divide el almacén de datos en particiones y devuelve la partición correspondiente a la especificada.partitionnindex

La partición devuelta debe ser un objeto de almacén de datos del almacén de datos personalizado.subds

El almacén de datos con particiones debe tener los mismos métodos y propiedades que el almacén de datos original.subds

La declaración vuelve.isequaltrue

La llamada en la partición devuelve datos a partir del principio de la partición.read

Si especifica el tamaño de lectura, el tamaño de los datos devueltos equivale al tamaño de lectura.

Llame al objeto de almacén de datos con el número de particiones especificadas como y de la partición devuelta especificada como.partitionds1index1

Compruebe los datos devueltos mediante una llamada y en una partición del almacén de datos con particiones.readpreview

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)) 

La partición debe ser un objeto de almacén de datos del almacén de datos personalizado.subds

La partición debe tener los mismos métodos y propiedades que el almacén de datos original.subdsds

Las declaraciones y devuelve.isequalisequalntrue

Llame a la partición con un número válido de particiones y un índice de partición válido.partitionsubds

El reparticionamiento de una partición del almacén de datos debe funcionar sin errores.

initializeDatastore

Si el almacén de datos hereda de, a continuación, compruebe el comportamiento de uso de las directrices de esta tabla.matlab.io.datastore.HadoopFileBasedinitializeDatastore

Descripción del caso de pruebaSalida esperada

Llame al objeto de almacén de datos con un struct válido.initializeDatastoredsinfo

La estructura contiene estos campos:info

  • FileName

  • Offset

  • Size

es de tipo de datos y los campos y son del tipo de datos Double.FileNamecharOffsetSize

Por ejemplo, inicialice la estructura y, a continuación, llame al objeto de almacén de datos.infoinitializeDatastoreds

info = struct('FileName','myFileName.ext',...                        'Offset',0,'Size',500) initializeDatastore(ds,info)

Compruebe la inicialización examinando las propiedades del objeto de almacén de datos.

ds

El método inicializa el objeto de almacén de datos personalizado con la información necesaria de la estructura.initializeDatastoredsinfo

getLocation

Si el almacén de datos hereda de, a continuación, compruebe el comportamiento del uso de estas directrices.matlab.io.datastore.HadoopFileBasedgetLocation

Descripción del caso de pruebaSalida esperada

Llame al objeto de almacén de datos.getLocation

location = getLocation(ds)

En función de la implementación de su almacén de datos personalizado, el resultado es cualquiera de estos:location

  • Lista de archivos o directorios

  • un objetomatlab.io.datastore.DsFileSet

Si es un objeto, entonces llame para verificar los archivos en la salida.locationmatlab.io.datastore.DsFileSetresolvelocation

resolve(location)

El método devuelve la ubicación de los archivos en.getLocationHadoop

isfullfile

Si el almacén de datos hereda de, a continuación, compruebe el comportamiento del uso de estas directrices.matlab.io.datastore.HadoopFileBasedisfullfile

Descripción del caso de pruebaSalida esperada

Llame al objeto de almacén de datos.isfullfile

En función de la implementación de almacén de datos personalizada, el método devuelve o.isfullfiletruefalse

Pruebas de flujo de trabajo

Compruebe las pruebas de flujo de trabajo en el entorno adecuado.

  • Si el almacén de datos sólo hereda de, a continuación, compruebe todas las pruebas de flujo de trabajo en una sesión local.matlab.io.DatastoreMATLAB®

  • Si el almacén de datos tiene compatibilidad de procesamiento en paralelo (hereda de), compruebe las pruebas de flujo de trabajo en entornos de ejecución paralelos, comomatlab.io.datastore.PartitionableParallel Computing Toolbox™ MATLABParallel Server™.

  • Si el almacén de datos tiene compatibilidad (hereda de), compruebe las pruebas de flujo de trabajo en un clúster.Hadoopmatlab.io.datastore.HadoopFileBasedHadoop

Alto flujo de trabajo

Las directrices de prueba para el flujo de trabajotall

Descripción del caso de pruebaSalida esperada

Cree una matriz alta llamando al objeto de almacén de datos.tallds

t = tall(ds)

La función devuelve una salida que es el mismo tipo de datos que la salida del método del almacén de dato.tallread

Para este paso de prueba, cree un objeto datastore con datos que se ajusten a la memoria del sistema. A continuación, cree una matriz alta con este objeto de almacén de datos.

t = tall(ds)

Si los datos son numéricos, aplique una función adecuada como la función a ambos y, a continuación, compare los resultados.meandst

Si los datos son del tipo de datos o, a continuación, aplicar la función en una columna de y una columna de, a continuación, comparar los resultados.stringcategoricaluniquedst

Aplicar y verificar el resultado.gather

Para ver ejemplos, vea.Big Data Workflow Using Tall Arrays and Datastores (Parallel Computing Toolbox)

No hay errores

La función devuelve una salida del tipo de datos correcto (no de un tipo de datos).tall

La función devuelve el mismo resultado si se aplica a o a.dst

MapReduce Workflow

Las directrices de prueba para el flujo de trabajo MapReduce

Descripción del caso de pruebaSalida esperada

Llame al objeto de almacén de datos. Para obtener más información, consulte.mapreduceds

outds = mapreduce(ds,@mapper,@reducer)
mapreduce

Para admitir el uso de la función, el método de su almacén de datos personalizado debe devolver los argumentos de salida y.mapreducereadinfodata

No hay error

La operación MapReduce devuelve el resultado esperado

Próximos pasos

Nota

Este procedimiento de prueba proporciona directrices para probar el conjunto mínimo de comportamientos y funcionalidades para almacenes de datos personalizados. Las pruebas adicionales son necesarias para calificar cualquier funcionalidad única de su almacén de datos personalizado.

Después de completar la implementación y la validación del almacén de datos personalizado, el almacén de datos personalizado está listo para su uso.

Consulte también

| |

Temas relacionados