Тестирование
Тестирование - это проверка того, что продукт работает так, как ожидается, и не ломается в реальных условиях. Любая разработка требует тестирования. Без него ошибки доходят до пользователей, что приводит к жалобам и потере доверия.
В первую очередь хотелось бы выделить два категории тестов.
Заголовок раздела «В первую очередь хотелось бы выделить два категории тестов.»Ручное тестирование
Заголовок раздела «Ручное тестирование»Его выполняет человек. Он проходит пользовательские сценарии и при обнаружении ошибок возвращает задачу в разработку. Ручное тестирование особенно важно на ранних этапах, при проверке новых функций и интерфейсов, где важно живое восприятие, удобство и логика поведения пользователя. Оно позволяет находить проблемы, которые сложно или невозможно выявить автоматическими тестами.
Автоматическое тестирование
Заголовок раздела «Автоматическое тестирование»Сценарии использования выполняются автоматически с помощью тестов, встроенных в систему. Если кодовая база обновляется и новые изменения не проходят проверки, такой код не допускается к публикации.
Test-driven development. TDD. Это метод разработки, при котором сначала пишутся тесты, а затем создается код, который их проходит. Этот подход помогает избежать ошибок, улучшает дизайн и структуру кода и делает его более гибким для изменений. Он способствует созданию надежного и протестированного кода с самого начала разработки. И это просто удобно!
- Тестирование начинается слишком поздно в процессе разработки.
- Требования размыты, противоречивы или постоянно меняются.
- Нехватка времени, бюджета и ресурсов на полноценные проверки.
- Чрезмерная вера в автоматизацию как универсальное решение.
- Слабое понимание бизнес логики и целей продукта.
- Тесты покрывают ожидаемые сценарии, но не реальное поведение пользователей.
- Сложность поддержки автотестов при частых изменениях кода.
- Рост сложности систем, интеграций и зависимостей.
- Ожидание полного отсутствия ошибок в продукте.
Направление тестирования:
Заголовок раздела «Направление тестирования:»Функциональное тестирование - проверка реализуемости функциональных требований, то есть способности в определенных условиях решать задачи, нужные пользователям. Выполняет ли программа свое предназначение.
Тестирование производительности - отвечает на вопросы «Выдержит ли сайт N посетителей?», «С какой скоростью будет работать?».
Юзабилити-тестирование - удобно ли пользоваться продуктом.
Тестирование безопасности - очевидно же :)