План тестирования
4 Описание методов и варианты тестов.
обозначения:
ВД - Входные Данные
ОР - Ожидаемый Результат
-------------------------
Тестирование класса MasterHoleyCache
-------------------------
Группа тестов 1: Метод checkout - заполнение кэша из хранилища.
Тест 1.1:
ВД: Вызвать после инициализации хранилица (объекта класса LdapSanStorage)
ОР: Заполненный кэш из дерева LDAP.
Тест 1.2:
ВД: Вызвать перед инициализацией хранилица (объекта класса LdapSanStorage)
ОР: Должно быть сгенерировано исключение типа NullPointerException
Группа тестов 2: Метод add - добавление элемента в кэш.
Тест 2.1:
ВД: Передавать различные элементы наследованные от SanElement
ОР: Добавление элемента в кэш. Вывод на экран значения ID этого элемента в кэше.
Тест 2.2:
ВД: Передеать элемент типа null
ОР: Должно быть сгенерировано исключение типа NullPointerException
Тест 2.3:
ВД: Повторно передать элемент, который только что передавали
ОР: Должно быть сгенерировано исключение типа ElementExistException
Группа тестов 3: Метод removeByID - удаление элемента из кэша по идентификатору.
Тест 3.1:
ВД: Передать корректный ID, т.е. тот, который сейчас занят в кэше.
ОР: Удаление элемента из кэша и хранилища.
Тест 3.2:
ВД: Передать некорректный ID, т.е. тот, который сейчас не занят в кэше.
ОР: Должно быть сгенерировано исключение типа UnknownIDException
Группа тестов 4: Метод remove - удаление элемента из кэша по SanElement.
Тест 4.1:
ВД: Передать корректный SanElement, т.е. тот, который существует в кэше
ОР: Удаление элемента из кэша и хранилища.
Тест 4.2:
ВД: Передать элемент типа null
ОР: Должно быть сгенерировано исключение типа NullPointerException
Тест 4.3:
ВД: Передать SanElement, которого нет в кэше.
ОР: Должно быть сгенерировано исключение типа UnknownElementException
Группа тестов 5: Метод isLoaded - проверка на загруженность элемента в кэше
Тест 5.1:
ВД: Передать корректный SanElement, т.е. тот, который существует в кэше
ОР: Должно быть возвращено значение true - такой элемент существует в кэше
Тест 5.2:
ВД: Передать элемент типа null
ОР: Должно быть сгенерировано исключение типа NullPointerException
Тест 5.3:
ВД: Передать SanElement, которого нет в кэше.
ОР: Должно быть возвращено значение false - такого элемента нет в кэше
Группа тестов 6: Метод isLoadedByID - проверка на загруженность элемента в кэше
Тест 6.1:
ВД: Передать корректный ID, т.е. тот, который сейчас занят в кэше.
ОР: Должно быть возвращено значение true - такой ID существует в кэше
Тест 6.2:
ВД: Передать некорректный ID, т.е. ID меньший 0 и ID больший размера кэша
ОР: Должно быть сгенерировано исключение типа UnknownIDException
Тест 6.3:
ВД: Передать ID, которого нет в кэше.
ОР: Должно быть возвращено значение false - такого ID нет в кэше
Группа тестов 7: Метод countOfLoaded - количество элементов загруженных в кэш
Тест 7.1:
ВД: Вызвать метод, когда кэш пуст
ОР: Должно быть возвращено значение 0
Тест 7.2:
ВД: Загрузить n элементов в кэш (Подсчитать их при загрузке, при изначальном пустом кэше). Вызвать метод.
ОР: Должно быть возвращено значение n.
Тест 7.3:
ВД: Инициализировать кэш при изначально не пустом дереве. Вызвать метод (Он возвратит n ). Загрузить
m элементов в кэш. Вызвать метод.
ОР: Должно быть возвращено значение n + m.
Группа тестов 8: Метод countOfID - количество ID занятых в кэше
Тест 8.1:
ВД: Вызвать метод, когда кэш пуст
ОР: Должно быть возвращено значение 0
Тест 8.2:
ВД: Загрузить n элементов в кэш (Подсчитать их при загрузке, при изначальном пустом кэше). Вызвать метод.
ОР: Должно быть возвращено значение n.
Тест 8.3:
ВД: Инициализировать кэш при изначально не пустом дереве. Вызвать метод (Он возвратит n ). Загрузить
m элементов в кэш. Вызвать метод.
ОР: Должно быть возвращено значение n + m.
Группа тестов 9: Метод getElements - получить элементы заданного типа
Тест 9.1:
ВД: Необходимо иметь не пустое дерево LDAP. Инициализировать кэш. Вызвать метод с типом SanElement.
ОР: Должно быть возвращено множество элементов, находящихся в дереве.
Тест 9.2:
ВД: Необходимо иметь не пустое дерево LDAP. Инициализировать кэш. Вызвать метод с типом Device.
ОР: Должно быть возвращено множество элементов типа Device, находящихся в дереве.
Тест 9.3:
ВД: Необходимо иметь не пустое дерево LDAP. Инициализировать кэш. Вызвать метод с типом IPNetwork.
ОР: Должно быть возвращено множество элементов типа IPNetwork, находящихся в дереве.
Группа тестов 10: Метод get - получить элементы заданного типа
Тест 10.1:
ВД: Необходимо иметь не пустое дерево LDAP. Два кэша. Необходимо брать ID у одного кэша и вызывать
метод у другого
ОР: Должно быть возвращен элемент, с переданным идентификатором
------------------------------
Тестирование класса LdapSanStorageManager
------------------------------
Группа тестов 1: Конструктор класса - соединение с сервером.
Тест 1.1:
ВД: Вызвать конструктор с корректными параметрами сервера. Дерево на сервере LDAP пусто.
ОР: Подключение к серверу.
Тест 1.2:
ВД: Вызвать конструктор с неправильным каким-либо параметром.
ОР: Должно быть сгенерировано исключение типа StorageBadConnectionException
Тест 1.3:
ВД: Вызвать конструктор с корректными параметрами сервера.
Дерево на сервере не пусто с установленным главным устройством.
ОР: Подключение к серверу. Создание в кэше массива занятых идентификаторов.
Чтение из Ldap главного устройства (rootDevice).
Тест 1.4:
ВД: Вызвать конструктор с корректными параметрами сервера.
Дерево на сервере не пусто. Главное устройство не установлено.
ОР: Подключение к серверу. Создание в кэше массива занятых идентификаторов.
Выбор из списка устройств главного.
Группа тестов 2: getElements - чтение группы элементов с дерева.
Тест 2.1:
ВД: Дерево на сервере пусто.
ОР: Кэш остался пуст.
Тест 2.2:
ВД: Дерево на сервере не пусто. Кэш пуст.
ОР: Все элементы из дерева LDAP должны быть прочитаны с сервера и загружены в кэш.
Тест 2.3:
ВД: Дерево на сервере не пусто. Кэш уже содержит все элементы дерева.
ОР: Кэш должен не измениться.
Тест 2.4:
ВД: Дерево на сервере не пусто. Вызвать метод для определенного типа SAN элементов.
(Например, Device,Network,Floor и т.д.)
ОР: В кэш должны быть добавлены элементы соответствующего типа.
Группа тестов 3: commit - запись изменени в дерево.
Тест 3.1:
ВД: Загруженный кэш из дерева. Никаких изменений не выполнено.
ОР: Дерево на сервере не должно измениться.
Тест 3.2:
ВД: Загруженный кэш из дерева. Добавить какой-либо элемент SAN структуры.
ОР: Добавленный элемент должен быть записан на сервер, сохранив все свои свойства.
Тест 3.3:
ВД: Загруженный кэш из дерева. Изменить свойство какого-либо объекта
ОР: Измененное свойство элемента должно быть записано в дерево.
------------------------------
Тестирование класса LdapWriter
------------------------------
Группа тестов 1: Запись элементов Device
Тест 1.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа Device
ОР: На сервере должны быть записаны элементы типа Device.
Группа тестов 2: Запись элементов LinkInterface
Тест 2.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа LinkInterface
ОР: На сервере должны быть записаны элементы типа LinkInterface
Группа тестов 3: Запись элементов Room
Тест 3.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа Room
ОР: На сервере должны быть записаны элементы типа Room
Группа тестов 4: Запись элементов Floor
Тест 4.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа Floor
ОР: На сервере должны быть записаны элементы типа Floor
Группа тестов 5: Запись элементов Building
Тест 5.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа Building
ОР: На сервере должны быть записаны элементы типа Building
Группа тестов 6: Запись элементов Network
Тест 6.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа Network
ОР: На сервере должны быть записаны элементы типа Network
Группа тестов 7: Запись элементов NetworkInterface
Тест 7.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа NetworkInterface
ОР: На сервере должны быть записаны элементы типа NetworkInteface
Группа тестов 8: Запись элементов CompositOU
Тест 8.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа CompositOU
ОР: На сервере должны быть записаны элементы типа CompositOU
Группа тестов 9: Запись элементов SimpleOU
Тест 9.1:
ВД: Сгенерировать SAN структуру. Получить из нее элементы типа SimpleOU
ОР: На сервере должны быть записаны элементы типа SimpleOU
------------------------------
Тестирование класса Cache
------------------------------
Группа тестов 1: Конструктор класса
Тест 1.1:
ВД: Вызвать конструктор с корректными параметрами
ОР: Должен создаться кэш
Тест 1.2:
ВД: Вызвать конструктор с массивом для freeID null.
ОР: Должно быть сгенерировано исключение типа CacheException
Группа тестов 2: Метод add - добавление элемента
Тест 2.1:
ВД: Передать в метод корректный SanElement
ОР: Элемент должен добавиться в кэш
Тест 2.2:
ВД: Передать в метод SanElement равный null
ОР: Должно быть сгенерировано исключение типа CacheException("Cache: attempt to add null instaed of element.")
Тест 2.3:
ВД: Вызвать метод у не инициализированного cache
ОР: Должно быть сгенерировано исключение типа CacheException("Trying to work with not created cache.")
Тест 2.4:
ВД: Вызвать метод два раза подряд с одним и тем же элементом
ОР: Должно быть сгенерировано исключение типа RuntimeException"Cache:
INTERNAL ERROR: attempt to replace existing element (ID = "+id+").")
Группа тестов 3: Метод get - выбор элемента из кэша
Тест 2.1:
ВД: Передать в метод корректный SanElement
ОР: Элемент должен вернуться элемент из кэш
Тест 3.2:
ВД: Передать в метод SanElement равный null
ОР: Должно быть сгенерировано исключение типа CacheException("Cache: attempt to get null instaed of element.")
Тест 3.3:
ВД: Вызвать метод у не инициализированного cache
ОР: Должно быть сгенерировано исключение типа CacheException("Trying to work with not created cache.")
------------------------------
Тестирование класса Ldap
------------------------------
Группа тестов 1: Соединение с сервером
Тест 1.1:
ВД: Попробовать соединиться с корректными параметрами сервера
ОР: Должно произойти соединени
Тест 1.2:
ВД: Соединиться с корректными параметрами сервера, который не запущен в данный момент
ОР: Должно быть сгенерировано исключение типа BadConnectionException
Тест 1.3:
ВД: Соединиться c сервером с неправильно заданным паролем
ОР: Должно быть сгенерировано исключение типа BadConnectionException
Тест 1.4:
ВД: Соединиться с сервером с неправильно заданным suffix
ОР: Должно быть сгенерировано исключение типа BadConnectionException
Тест 1.5:
ВД: Соединиться c сервером с неправильно заданным url
ОР: Должно быть сгенерировано исключение типа BadConnectionException
Группа тестов 2: Записать на сервер запись
Тест 2.1:
ВД: Запись. Для записи использовать корректную иерархию объектов сервера.
ОР: На сервере должна быть эта запись
Тест 2.2:
ВД: Запись. Для записи использовать не корректную иерархию объектов сервера.
ОР: Должно быть сгенерировано исключение некорректной записи.
Группа тестов 3: Прочитать запись с сервер запись
Тест 3.1:
ВД: Запись в дереве Ldap. Для чтения использовать корректную иерархию объектов сервера.
ОР: Получить объект с набором свойств.
Тест 3.2:
ВД: Запись в дереве Ldap. Для записи использовать не корректную иерархию объектов сервера.
ОР: Должно быть сгенерировано исключение некорректной чтения.