1 2 3 Тест 4. Модуль: APIDataManager. Метод: func initBeaconsAndGeofencesAndImageTargets(completion- Handler: @escaping ErrorType? -> ()) Тип: Позитивный. Описание: Метод делает GET-запрос на сервер. В случае успешного выполне- ния запроса метод не возвращает ошибку (в замыкании ErrorType? передаётся равным nil). В случае неудачного выполнения запроса возвращается одна из сле- дующих ошибок: ошибка подключения к сети Интернет (networkError), ошибка сервера (serverError), ошибка разбора JSON-файла, полученного с сервера (model- Error). Исходные данные: Есть подключение к сети Интернет, сервер работает кор- ректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращае- мых данных»). Ожидаемый результат: Метод не возвращает ошибку. Тест 5. Модуль: APIDataManager. Метод: func getCities(completionHandler: @escaping ([CityModel]?, ErrorType?) -> ()) Тип: Негативный. X17 Описание: Метод делает GET-запрос на сервер. В случае успешного выполне- ния запроса метод не возвращает ошибку (в замыкании ErrorType? передаётся равным nil). В случае неудачного выполнения запроса возвращается одна из сле- дующих ошибок: ошибка подключения к сети Интернет (networkError), ошибка сервера (serverError), ошибка разбора JSON-файла, полученного с сервера (model- Error). Исходные данные: Нет подключения к сети Интернет. Ожидаемый результат: Метод возвращает ошибку networkError. Тест 6. Модуль: APIDataManager. Метод: func getCities(completionHandler: @escaping ([CityModel]?, ErrorType?) -> ()) Тип: Негативный. Описание: Метод делает GET-запрос на сервер. В случае успешного выполне- ния запроса метод не возвращает ошибку (в замыкании ErrorType? передаётся равным nil). В случае неудачного выполнения запроса возвращается одна из сле- дующих ошибок: ошибка подключения к сети Интернет (networkError), ошибка сервера (serverError), ошибка разбора JSON-файла, полученного с сервера (model- Error). Исходные данные: Есть подключение к сети Интернет, сервер возвращает ошибку с кодом ответа в диапазоне от 400 до 599. Ожидаемый результат: Метод возвращает ошибку serverError. Тест 7. Модуль: APIDataManager. Метод: func getCities(completionHandler: @escaping ([CityModel]?, ErrorType?) -> ()) Тип: Негативный. Описание: Метод делает GET-запрос на сервер. В случае успешного выполне- ния запроса метод не возвращает ошибку (в замыкании ErrorType? передаётся равным nil). В случае неудачного выполнения запроса возвращается одна из сле- дующих ошибок: ошибка подключения к сети Интернет (networkError), ошибка X18 сервера (serverError), ошибка разбора JSON-файла, полученного с сервера (model- Error). Исходные данные: Есть подключение к сети Интернет, сервер работает кор- ректно, возвращает несоответствующий формату JSON-файл (см. раздел «Кор- ректность возвращаемых данных»). Ожидаемый результат: Метод возвращает ошибку modelError. Тест 8. Модуль: APIDataManager. Метод: func getCities(completionHandler: @escaping ([CityModel]?, ErrorType?) -> ()) Тип: Позитивный. Описание: Метод делает GET-запрос на сервер. В случае успешного выполне- ния запроса метод не возвращает ошибку (в замыкании ErrorType? передаётся равным nil). В случае неудачного выполнения запроса возвращается одна из сле- дующих ошибок: ошибка подключения к сети Интернет (networkError), ошибка сервера (serverError), ошибка разбора JSON-файла, полученного с сервера (model- Error). Исходные данные: Есть подключение к сети Интернет, сервер работает кор- ректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращае- мых данных»). Ожидаемый результат: Метод не возвращает ошибку. Тест 9. Модуль: CityModel. Метод: func getCities(from data: NSDictionary?) -> [CityModel]? Тип: Позитивный. Описание: Метод получает список городов в формате JSON и преобразует его в CityModel. В случае успешного разбора JSON-файла возвращает массив [City- Model]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Валидный JSON-файл в нужном формате с известным ко- личеством элементов (см. раздел «Корректность возвращаемых данных»). X19 Ожидаемый результат: Метод возвращает массив [CityModel] с количеством элементов, равным количеству элементов в JSON-файле. Тест 10. Модуль: CityModel. Метод: func getCities(from data: NSDictionary?) -> [CityModel]? Тип: Негативный. Описание: Метод получает список городов в формате JSON и преобразует его в CityModel. В случае успешного разбора JSON-файла возвращает массив [City- Model]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Несоответствующий формату JSON-файл (см. раздел «Кор- ректность возвращаемых данных»). Ожидаемый результат: Метод возвращает nil. Тест 11. Модуль: BeaconModel. Метод: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? Тип: Позитивный. Описание: Метод получает список beacons в формате JSON и преобразует его в BeaconModel. В случае успешного разбора JSON-файла возвращает массив [BeaconModel]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Валидный JSON-файл в нужном формате с известным ко- личеством элементов (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: Метод возвращает массив [BeaconModel] с количеством элементов, равным количеству элементов в JSON-файле. Тест 12. Модуль: BeaconModel. Метод: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? Тип: Негативный. Описание: Метод получает список beacons в формате JSON и преобразует его в BeaconModel. В случае успешного разбора JSON-файла возвращает массив [BeaconModel]. В случае неудачного разбора JSON-файла возвращает nil. X20 Исходные данные: Несоответствующий формату JSON-файл (см. раздел «Кор- ректность возвращаемых данных»). Ожидаемый результат: Метод возвращает nil. Тест 13. Модуль: GeofenceModel. Метод: func getGeofences(from data: NSDictionary?) -> [Geofence- Model]? Тип: Позитивный. Описание: Метод получает список geofences в формате JSON и преобразует его в GeofenceModel. В случае успешного разбора JSON-файла возвращает массив [GeofenceModel]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Валидный JSON-файл в нужном формате с известным ко- личеством элементов (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: Метод возвращает массив [GeofenceModel] с количе- ством элементов, равным количеству элементов в JSON-файле. Тест 14. Модуль: GeofenceModel. Метод: func getGeofences(from data: NSDictionary?) -> [Geofence- Model]? Тип: Негативный. Описание: Метод получает список geofences в формате JSON и преобразует его в GeofenceModel. В случае успешного разбора JSON-файла возвращает массив [GeofenceModel]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Несоответствующий формату JSON-файл (см. раздел «Кор- ректность возвращаемых данных»). Ожидаемый результат: Метод возвращает nil. Тест 15. Модуль: ImageTargetModel. Метод: func getImageTargets(from data: NSDictionary?) -> [Image- TargetModel]? Тип: Позитивный. X21 Описание: Метод получает список ImageTargets в формате JSON и преобразует его в ImageTargetModel. В случае успешного разбора JSON-файла возвращает массив [ImageTargetModel]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Валидный JSON-файл в нужном формате с известным ко- личеством элементов (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: Метод возвращает массив [ImageTargetModel] с количе- ством элементов, равным количеству элементов в JSON-файле. Тест 16. Модуль: ImageTargetModel. Метод: func getImageTargets(from data: NSDictionary?) -> [Image- TargetModel]? Тип: Негативный. Описание: Метод получает список ImageTargets в формате JSON и преобразует его в ImageTargetModel. В случае успешного разбора JSON-файла возвращает массив [ImageTargetModel]. В случае неудачного разбора JSON-файла возвращает nil. Исходные данные: Несоответствующий формату JSON-файл (см. раздел «Кор- ректность возвращаемых данных»). Ожидаемый результат: Метод возвращает nil. Описание интеграционных тестов Тест 17. Методы: 1. APIDataManager: func initBeaconsAndGeofencesAndImageTargets (completionHandler: @escaping ErrorType? -> ()) 2. BeaconModel: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? Тип: Общий. Этап интеграции: 1.1. X22 Описание: • Получение с сервера списка всех доступных geofences, beacons и Image- Targets. • Разбор массива beacons из JSON-файла в модель. Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [BeaconModel]. Тест 18. Методы: 1. APIDataManager: func initBeaconsAndGeofencesAndImageTargets (completionHandler: @escaping ErrorType? -> ()) 2. BeaconModel: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? 3. GeofenceModel: func getGeofences(from data: NSDictionary?) -> [GeofenceModel]? Тип: Общий. Этап интеграции: 1.2. Описание: • Получение с сервера списка всех доступных geofences, beacons и Image- Targets. • Разбор массива beacons из JSON-файла в модель. • Разбор массива geofences из JSON-файла в модель. Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). X23 Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [BeaconModel]. • В APIDataManager вернулся массив [GeofenceModel]. Тест 19. Методы: 1. APIDataManager: func initBeaconsAndGeofencesAndImageTargets (completionHandler: @escaping ErrorType? -> ()) 2. BeaconModel: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? 3. GeofenceModel: func getGeofences(from data: NSDictionary?) -> [GeofenceModel]? 4. ImageTargetModel: func getImageTargets(from data: NSDictionary?) -> [ImageTargetModel]? Тип: Общий. Этап интеграции: 1.3. Описание: • Получение с сервера списка всех доступных geofences, beacons и Image- Targets. • Разбор массива beacons из JSON-файла в модель. • Разбор массива geofences из JSON-файла в модель. • Разбор массива imageTargets из JSON-файла в модель. Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [BeaconModel]. X24 • В APIDataManager вернулся массив [GeofenceModel]. • В APIDataManager вернулся массив [ImageTargetModel]. Тест 20. Методы: 1. APIDataManager: func initBeaconsAndGeofencesAndImageTargets (completionHandler: @escaping ErrorType? -> ()) 2. BeaconModel: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? 3. GeofenceModel: func getGeofences(from data: NSDictionary?) -> [GeofenceModel]? 4. ImageTargetModel: func getImageTargets(from data: NSDictionary?) -> [ImageTargetModel]? 5. CardsVC: func getGeofencesBeaconsAndImageTargets() Тип: Общий. Этап интеграции: 1.4. Описание: • Получение с сервера списка всех доступных geofences, beacons и Image- Targets. • Разбор массива beacons из JSON-файла в модель. • Разбор массива geofences из JSON-файла в модель. • Разбор массива imageTargets из JSON-файла в модель. • Получение списка geofences, beacons и ImageTargets, а также сценариев к ним и обновление данных в базе данных. Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. X25 • В APIDataManager вернулся массив [BeaconModel]. • В APIDataManager вернулся массив [GeofenceModel]. • В APIDataManager вернулся массив [ImageTargetModel]. • Geofences, beacons и ImageTargets, а также сценарии к ним добавились в базу данных. Тест 21. Методы: 1. APIDataManager: func initBeaconsAndGeofencesAndImageTargets (completionHandler: @escaping ErrorType? -> ()) 2. BeaconModel: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? 3. GeofenceModel: func getGeofences(from data: NSDictionary?) -> [GeofenceModel]? 4. ImageTargetModel: func getImageTargets(from data: NSDictionary?) -> [ImageTargetModel]? 5. CardsVC: func getGeofencesBeaconsAndImageTargets() 6. CardsVC: func showCards() Тип: Общий. Этап интеграции: 1.5. Описание: • Получение с сервера списка всех доступных geofences, beacons и Image- Targets. • Разбор массива beacons из JSON-файла в модель. • Разбор массива geofences из JSON-файла в модель. • Разбор массива imageTargets из JSON-файла в модель. • Получение списка geofences, beacons и ImageTargets, а также сценариев к ним и обновление данных в базе данных. • Отображение списка карточек с полученными geofences, beacons и Image- Targets на экране. X26 Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [BeaconModel]. • В APIDataManager вернулся массив [GeofenceModel]. • В APIDataManager вернулся массив [ImageTargetModel]. • Geofences, beacons и ImageTargets, а также сценарии к ним добавились в базу данных. • Список карточек с полученными geofence, beacons и ImageTargets отобра- жается на экране. Тест 22. Методы: 1. APIDataManager: func initBeaconsAndGeofencesAndImageTargets (completionHandler: @escaping ErrorType? -> ()) 2. BeaconModel: func getBeacons(from data: NSDictionary?) -> [BeaconModel]? 3. GeofenceModel: func getGeofences(from data: NSDictionary?) -> [GeofenceModel]? 4. ImageTargetModel: func getImageTargets(from data: NSDictionary?) -> [ImageTargetModel]? 5. CardsVC: func getGeofencesBeaconsAndImageTargets() 6. CardsVC: func showCards() 7. GoogleMapsVC: func setUpMarkers() Тип: Общий. Этап интеграции: 1.6. X27 Описание: • Получение с сервера списка всех доступных geofences, beacons и Image- Targets. • Разбор массива beacons из JSON-файла в модель. • Разбор массива geofences из JSON-файла в модель. • Разбор массива imageTargets из JSON-файла в модель. • Получение списка geofences, beacons и ImageTargets, а также сценариев к ним и обновление данных в базе данных. • Отображение списка карточек с полученными geofences, beacons и Image- Targets на экране. • Создание на карте маркеров для всех доступных geofences, beacons и ImageTargets. Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [BeaconModel]. • В APIDataManager вернулся массив [GeofenceModel]. • В APIDataManager вернулся массив [ImageTargetModel]. • Geofences, beacons и ImageTargets, а также сценарии к ним добавились в базу данных. • Список карточек с полученными geofence, beacons и ImageTargets отобра- жается на экране. • На карте установлены маркеры для всех доступных geofences, beacons и ImageTargets. Тест 23. Методы: X28 1. APIDataManager: func getCities(completionHandler: @escaping ([CityModel]?, ErrorType?) -> ()) 2. CityModel: func getCities(from data: NSDictionary?) -> [City- Model]? Тип: Общий. Этап интеграции: 2.1. Описание: • Получение с сервера списка городов. • Разбор массива городов из JSON-файла в модель. Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [CityModel]. Тест 24. Методы: 1. APIDataManager: func getCities(completionHandler: @escaping ([CityModel]?, ErrorType?) -> ()) 2. CityModel: func getCities(from data: NSDictionary?) -> [City- Model]? 3. ChooseCityVC: func showCities() Тип: Общий. Этап интеграции: 2.2. Описание: • Получение с сервера списка городов. • Разбор массива городов из JSON-файла в модель. • Отображение списка городов на экране. X29 Исходные данные: • Есть подключение к сети Интернет. • Сервер работает корректно, возвращает валидный JSON-файл (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: • С сервера получен JSON-файл. • В APIDataManager вернулся массив [CityModel]. • Список городов отображается на экране. Описание аттестационных тестов Тест 25. Экран: Главный экран приложения. Тип: Позитивный. Описание: Проверка отображения списка карточек, полученных из базы дан- ных, для выбранного города. Алгоритм: Запустить приложение. Выбрать город. Исходные данные: Есть подключение к сети Интернет, сервер работает кор- ректно (см. раздел «Корректность возвращаемых данных»). Ожидаемый результат: Автоматический переход на главный экран приложения. На экране отображается список ранее полученных карточек. 1 2 3 |