Перейти к содержимому

Тестирование

Тестирование - это проверка того, что продукт работает так, как ожидается, и не ломается в реальных условиях. Любая разработка требует тестирования. Без него ошибки доходят до пользователей, что приводит к жалобам и потере доверия.

В первую очередь хотелось бы выделить два категории тестов.
Заголовок раздела «В первую очередь хотелось бы выделить два категории тестов.»

Его выполняет человек. Он проходит пользовательские сценарии и при обнаружении ошибок возвращает задачу в разработку. Ручное тестирование особенно важно на ранних этапах, при проверке новых функций и интерфейсов, где важно живое восприятие, удобство и логика поведения пользователя. Оно позволяет находить проблемы, которые сложно или невозможно выявить автоматическими тестами.

Сценарии использования выполняются автоматически с помощью тестов, встроенных в систему. Если кодовая база обновляется и новые изменения не проходят проверки, такой код не допускается к публикации.

Test-driven development. TDD. Это метод разработки, при котором сначала пишутся тесты, а затем создается код, который их проходит. Этот подход помогает избежать ошибок, улучшает дизайн и структуру кода и делает его более гибким для изменений. Он способствует созданию надежного и протестированного кода с самого начала разработки. И это просто удобно!

  • Тестирование начинается слишком поздно в процессе разработки.
  • Требования размыты, противоречивы или постоянно меняются.
  • Нехватка времени, бюджета и ресурсов на полноценные проверки.
  • Чрезмерная вера в автоматизацию как универсальное решение.
  • Слабое понимание бизнес логики и целей продукта.
  • Тесты покрывают ожидаемые сценарии, но не реальное поведение пользователей.
  • Сложность поддержки автотестов при частых изменениях кода.
  • Рост сложности систем, интеграций и зависимостей.
  • Ожидание полного отсутствия ошибок в продукте.

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

Тестирование производительности - отвечает на вопросы «Выдержит ли сайт N посетителей?», «С какой скоростью будет работать?».

Юзабилити-тестирование - удобно ли пользоваться продуктом.

Тестирование безопасности - очевидно же :)