Алекс Смит: Тестирование ПО с Нуля до Специалиста
January 26, 2024

Задания для закрепления

Задание 1

Опишите процесс разработки программного продукта, перечислив все основные этапы (раскрыть их), прокомментировав роли всех ее участников, на каждом этапе

Ваш ответ должен быть структурированным, не простым письмом без разграничения, а по пунктам 1,2,3 и т.д

Этапы SDLC:

1. Составление требований. На этом этапе 2 стороны (руководитель проекта и заказчик) встречаются для того, чтобы составить документ Требования, который должен включать в себя полное описание разрабатываемого продукта, а именно: функциональные и нефункциональные свойства.
________________________________________
Лица, принимающие участие на этапе:
Руководитель проекта - специалист, организовывающий работу команды и представляющий компанию-исполнителя перед заказчиком.
Бизнес-аналитик - специалист, анализирующий и разрабатывающий бизнес-логику продукта.

2. Проектирование. На этом этапе осуществляется проектирование frontend и backend составляющих. Так же на этом этапе подключается дизайнер, проектируется графическая составляющая в виде MockUp.
________________________________________
Лица, принимающие участие на этапе:
Руководитель проекта.
Бизнес-аналитик.Дизайнер - специалист, проектирующий визуальную и графическую составляющую проекта, а так же отвечающий за UI/UX.

3. Разработка. В данном этапе разворачивают и настраивают сервера (для разработки и продакшена), разрабатывают сам продукт (backend и frontend). В ходе этого этапа используется различные языки программирования и инструменты для работы и сборки промежуточный версий продукта.
________________________________________
Лица, принимающие участие на этапе:
Разработчики
DevOps-инженеры

4. Тестирование. На этом этапе происходит проверка продукта на соответствие ожидаемого результата поведения и фактического. В случае выявления багов (дефектов) продукт отправляют обратно на стадию разработки, составив баг-репорт.
________________________________________
Лица, принимающие участие на этапе:
Тестировщики
QA

5. Релиз. На этом этапе готовую сборку (билд) загружают на сервер для того, чтобы конечный пользователь мог им пользоваться.
________________________________________
Лица, принимающие участие на этапе:
Разработчики
DevOps-инженеры

6. Поддержка. На этом этапе осуществляется консультация конечных пользователей, а так же помощь в поддержании работоспособности продукта.
________________________________________
Лица, принимающие участие на этапе:
Специалисты технической поддержки Разработчики

Задание 2

1) Опишите что такое функциональное и нефункциональное тестирование

2) Приведите определение и пример каждого (ВСЕХ) из вида функционального и нефункционального тестирования и их подвидов (например дымовое - это когда, объемное - это когда и т.д.) То есть перечислить все виды функционального и нефункционального тестирования, в виде - определение + пример.

Все примеры будут строиться на разработке мессенджера.

Функциональное тестирование - тестирование технической и функциональной частей, проверяется соответствие функциональных требований к реальным характеристикам продукта. Основная задача такого тестирования - проверка что продукт обладает всем функционалом, который требует заказчик.

Виды функционального тестирования:

  1. Смоук-тест - тестирование после выпуска каждой сборки (билда). Направлено для подготовки к расширенному тестированию. Определяет готовность приложения к выполнению основных задач.
    Пример: Проверяем отправку сообщений, оповещение о доставке. Доставлено ли сообщение другому пользователю.
  2. Тест критического пути - тестирование, проводимое с целью проверки функциональности пользователя в повседневном (обычном) использовании.
    Пример: Отправляем сообщение, получаем отчет о доставке, о прочтении. Отправляем геолокацию, фото и картинки. Записываем голосовые сообщения.
  3. Расширенное тестирование - проверка всей заявленной функциональности.
    Пример: Отправлять одновременно больше видео нескольким пользователям. Принимать большие видео от нескольких пользователей одновременно. Отправлять несколько точек в геолокации. Отправлять файлы разных форматов, очень большие файлы и тд.

Нефункциональное тестирование - тестирование с целью проверки свойст продукта в соответствии с его нефункциональным требованиям. Т.е. надежность, доступность, безопасность, удобство.

Виды нефункционального тестирования:

  1. Тестирование доступности - доступно ли людям с ограниченными возможностями.
    Пример: Может ли человек, получив голосовое, прослушать его из верхнего динамика.
  2. Тестирование локализации и интернетизации - тестирование с целью проверки адаптации ПО к любой культуре или особенностям языка другой страны.
    Пример: Можно ли писать сообщения иероглифами (поддерживает ли кодировку)(локализация) или есть ли функция в мессенджере для оповещения о молитвенном времени (интернационализация).
  3. Тестирование безопасности - тестирование направленное на проверку безопасности конфиденциальных данных и защиту от хакерских атак, вирусов и тд.
    Пример: Отправить файл, зараженный вирусом и проверить, пропустит ли его мессенджер. Или встроить в картинку инъекцию.
  4. Проверка удобства - тестирование направленное на удобство пользования и дизайна.
    Пример: Проверить, удобно ли будет пользоваться одной рукой, не режет ли глаз цвета, не маленькая ли кнопка отправить и тд.
  5. Нагрузочное тестирование - проводимое тестирование использования в пределах нормы.
    Пример: Сервер мессенджера рассчитан на 10 человек, и им пользуются 10 человек, отправляя сообщения и допустимые файлы допустимых размеров.
  6. Стресс-тестирование - нагрузка, превышающая норму в несколько раз.
    Пример: Сервер мессенджера рассчитан на 10 человек, а им одновременно пользуются 30 человек, активно отправляя сообщения, фото и файлы друг другу.
  7. Тестирование стабильности - тестирование, направленное на продолжительное испытание в пределах нормы.
    Пример: Сервер мессенджера рассчитан на 10 человек, им пользуются 10 человек в рамках стандартного использования в течении месяца (переписываются, отправляют картинки и тд).
  8. Инсталляционное тестирование - тестирование, направленное на проверку установки, обновления и удаления приложения.
    Пример: Скачать приложение, установить его, удалить, установить еще раз и после обновить.