Все хранилища данных, полученные из пользовательских классов хранилищ данных, имеют общее поведение. Эта процедура тестирования содержит рекомендации по тестированию минимального набора поведения и функциональных возможностей, которые должны быть у всех пользовательских хранилищ данных. Для определения уникальных функциональных возможностей настраиваемого хранилища данных потребуются дополнительные тесты.
Если настраиваемое хранилище данных разработано на основе инструкций в разделе Разработка настраиваемого хранилища данных, выполните следующие процедуры тестирования, чтобы получить квалификацию настраиваемого хранилища данных. Сначала выполните модульные тесты, а затем тесты рабочего процесса:
Модульные тесты определяют конструктор хранилища данных и методы.
Тесты рабочего процесса определяют использование хранилища данных.
Для всех этих тестовых случаев:
Если в описании теста не указано, предположим, что выполняется тестирование непустого хранилища данных ds.
Проверьте тестовые примеры расширений файлов, кодировок файлов и расположений данных (например, Hadoop ®), которые поддерживает пользовательское хранилище данных.
Ниже приведены инструкции по модульному тестированию для конструктора хранилища данных.
| Описание тестового примера | Ожидаемые выходные данные |
|---|---|
|
Проверьте, работает ли конструктор пользовательского хранилища данных с минимально необходимыми входными данными. |
Объект хранилища данных пользовательского типа хранилища данных с минимальными ожидаемыми свойствами и методами |
|
Проверка объекта хранилища данных Выполните следующую команду: isa(ds,'matlab.io.Datastore') |
|
|
Вызовите конструктор пользовательского хранилища данных с требуемыми входными данными и всеми поддерживаемыми входными аргументами и аргументами пары имя-значение. |
Объект хранилища данных пользовательского типа хранилища данных с минимальными ожидаемыми свойствами и методами |
readРуководство по тестированию установки для read метод
| Описание тестового примера | Ожидаемые выходные данные |
|---|---|
|
Позвоните в t = read(ds); |
Данные из начала хранилища данных Если указан размер чтения, то размер возвращаемых данных эквивалентен размеру чтения. |
|
Позвоните в t = read(ds); |
Данные, начиная с конечной точки предыдущей операции чтения Если указан размер чтения, то размер возвращаемых данных эквивалентен размеру чтения. |
|
Продолжить вызов 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 технологический процесс
| Описание тестового примера | Ожидаемые выходные данные |
|---|---|
|
Создание массива высокого уровня путем вызова t = tall(ds) |
|
|
На этом этапе тестирования создайте объект хранилища данных с данными, помещенными в системную память. Затем создайте массив высокого уровня с помощью этого объекта хранилища данных. t = tall(ds) Если данные числовые, примените соответствующую функцию, такую как Если данные относятся к типу данных Обратиться Примеры см. в разделе Рабочий процесс больших данных с использованием массивов и хранилищ данных (панель инструментов параллельных вычислений). |
Ошибок нет Функция возвращает вывод правильного типа данных (не Функция возвращает тот же результат, к которому она применяется |
Руководство по тестированию рабочего процесса MapReduce
| Описание тестового примера | Ожидаемые выходные данные |
|---|---|
|
Звонить outds = mapreduce(ds,@mapper,@reducer) mapreduce.
Для поддержки использования |
Без ошибок Операция MapReduce возвращает ожидаемый результат |
Примечание
Эта процедура тестирования содержит рекомендации по тестированию минимального набора поведения и функциональных возможностей для пользовательских хранилищ данных. Дополнительные тесты необходимы для определения любых уникальных функциональных возможностей пользовательского хранилища данных.
После завершения внедрения и проверки пользовательского хранилища данных оно готово к использованию.
Сведения о добавлении справки по реализации настраиваемого хранилища данных см. в разделе Создание справки по классам.
Чтобы предоставить доступ к пользовательскому хранилищу данных другим пользователям, см. раздел Создание и совместное использование панелей инструментов.
matlab.io.Datastore | matlab.io.datastore.HadoopLocationBased | matlab.io.datastore.Partitionable