Задания для закрепления
Задание 1
Опишите процесс разработки программного продукта, перечислив все основные этапы (раскрыть их), прокомментировав роли всех ее участников, на каждом этапе
Ваш ответ должен быть структурированным, не простым письмом без разграничения, а по пунктам 1,2,3 и т.д
1. Составление требований. На этом этапе 2 стороны (руководитель проекта и заказчик) встречаются для того, чтобы составить документ Требования, который должен включать в себя полное описание разрабатываемого продукта, а именно: функциональные и нефункциональные свойства.
________________________________________
Лица, принимающие участие на этапе:
Руководитель проекта - специалист, организовывающий работу команды и представляющий компанию-исполнителя перед заказчиком.
Бизнес-аналитик - специалист, анализирующий и разрабатывающий бизнес-логику продукта.
2. Проектирование. На этом этапе осуществляется проектирование frontend и backend составляющих. Так же на этом этапе подключается дизайнер, проектируется графическая составляющая в виде MockUp.
________________________________________
Лица, принимающие участие на этапе:
Руководитель проекта.
Бизнес-аналитик.Дизайнер - специалист, проектирующий визуальную и графическую составляющую проекта, а так же отвечающий за UI/UX.
3. Разработка. В данном этапе разворачивают и настраивают сервера (для разработки и продакшена), разрабатывают сам продукт (backend и frontend). В ходе этого этапа используется различные языки программирования и инструменты для работы и сборки промежуточный версий продукта.
________________________________________
Лица, принимающие участие на этапе:
Разработчики
DevOps-инженеры
4. Тестирование. На этом этапе происходит проверка продукта на соответствие ожидаемого результата поведения и фактического. В случае выявления багов (дефектов) продукт отправляют обратно на стадию разработки, составив баг-репорт.
________________________________________
Лица, принимающие участие на этапе:
Тестировщики
QA
5. Релиз. На этом этапе готовую сборку (билд) загружают на сервер для того, чтобы конечный пользователь мог им пользоваться.
________________________________________
Лица, принимающие участие на этапе:
Разработчики
DevOps-инженеры
6. Поддержка. На этом этапе осуществляется консультация конечных пользователей, а так же помощь в поддержании работоспособности продукта.
________________________________________
Лица, принимающие участие на этапе:
Специалисты технической поддержки
Разработчики
Задание 2
1) Опишите что такое функциональное и нефункциональное тестирование
2) Приведите определение и пример каждого (ВСЕХ) из вида функционального и нефункционального тестирования и их подвидов (например дымовое - это когда, объемное - это когда и т.д.) То есть перечислить все виды функционального и нефункционального тестирования, в виде - определение + пример.
Все примеры будут строиться на разработке мессенджера.
Функциональное тестирование - тестирование технической и функциональной частей, проверяется соответствие функциональных требований к реальным характеристикам продукта. Основная задача такого тестирования - проверка что продукт обладает всем функционалом, который требует заказчик.
Виды функционального тестирования:
- Смоук-тест - тестирование после выпуска каждой сборки (билда). Направлено для подготовки к расширенному тестированию. Определяет готовность приложения к выполнению основных задач.
Пример: Проверяем отправку сообщений, оповещение о доставке. Доставлено ли сообщение другому пользователю. - Тест критического пути - тестирование, проводимое с целью проверки функциональности пользователя в повседневном (обычном) использовании.
Пример: Отправляем сообщение, получаем отчет о доставке, о прочтении. Отправляем геолокацию, фото и картинки. Записываем голосовые сообщения. - Расширенное тестирование - проверка всей заявленной функциональности.
Пример: Отправлять одновременно больше видео нескольким пользователям. Принимать большие видео от нескольких пользователей одновременно. Отправлять несколько точек в геолокации. Отправлять файлы разных форматов, очень большие файлы и тд.
Нефункциональное тестирование - тестирование с целью проверки свойст продукта в соответствии с его нефункциональным требованиям. Т.е. надежность, доступность, безопасность, удобство.
Виды нефункционального тестирования:
- Тестирование доступности - доступно ли людям с ограниченными возможностями.
Пример: Может ли человек, получив голосовое, прослушать его из верхнего динамика. - Тестирование локализации и интернетизации - тестирование с целью проверки адаптации ПО к любой культуре или особенностям языка другой страны.
Пример: Можно ли писать сообщения иероглифами (поддерживает ли кодировку)(локализация) или есть ли функция в мессенджере для оповещения о молитвенном времени (интернационализация). - Тестирование безопасности - тестирование направленное на проверку безопасности конфиденциальных данных и защиту от хакерских атак, вирусов и тд.
Пример: Отправить файл, зараженный вирусом и проверить, пропустит ли его мессенджер. Или встроить в картинку инъекцию. - Проверка удобства - тестирование направленное на удобство пользования и дизайна.
Пример: Проверить, удобно ли будет пользоваться одной рукой, не режет ли глаз цвета, не маленькая ли кнопка отправить и тд. - Нагрузочное тестирование - проводимое тестирование использования в пределах нормы.
Пример: Сервер мессенджера рассчитан на 10 человек, и им пользуются 10 человек, отправляя сообщения и допустимые файлы допустимых размеров. - Стресс-тестирование - нагрузка, превышающая норму в несколько раз.
Пример: Сервер мессенджера рассчитан на 10 человек, а им одновременно пользуются 30 человек, активно отправляя сообщения, фото и файлы друг другу. - Тестирование стабильности - тестирование, направленное на продолжительное испытание в пределах нормы.
Пример: Сервер мессенджера рассчитан на 10 человек, им пользуются 10 человек в рамках стандартного использования в течении месяца (переписываются, отправляют картинки и тд). - Инсталляционное тестирование - тестирование, направленное на проверку установки, обновления и удаления приложения.
Пример: Скачать приложение, установить его, удалить, установить еще раз и после обновить.