Регрессионное тестирование — это дополнительный способ проверить программу, которая раньше уже прошла удачное тестирование. Регрессионное тестирование проводят в том случае, когда в уже протестированной программе были выполнены какие-либо изменения или исправления ошибок. Его цель — выявить и удостовериться, что внесенные в программу изменения никак не коснулись тех частей программ, которые остались без изменений.
Регрессионное тестирование
Бывают такие случаи, что после тестирования в программе обнаруживаются ошибки. Программу отправляют на доработку, чтобы ошибки исправили. Ошибки были исправлены путем внесения изменений в код программы. Однако эти изменения кода в какой-либо части программы могут косвенно задеть другую часть программы, которая до этого работала безупречно. То есть изменения в коде для устранения одних ошибок могут провоцировать возникновение ошибок в других частях кода. Регрессионное тестирование проводится как раз для выявления и устранения потенциальных ошибок, которых ранее в программе не было.
Такие ошибки могут получаться непреднамеренно. Разработчику дали установки, что исправить — он исправил. А то, что эти исправления могут спровоцировать ошибку в другом месте, может быть совсем не видно. Из этого следует, что регрессионное тестирование — это один из ключевых инструментов для обеспечения качества программы в случае внесения каких-либо исправлений в ее скрипты после уже проведенного удачного тестирования.
Когда проводят регрессионное тестирование
Итак, мы уже выяснили, что регрессионное тестирование запускают в том случае, когда были внесены какие-либо изменения в программный продукт. Это могут быть:
- исправления багов;
- умышленное изменение кода: добавление, изменение, удаление функций;
- внесение изменений в конфигурацию рабочего окружения: обновили PHP, Java, Linux, Windows, MySQL и т. д.;
- переезд на другие серверы;
- и др.
При этом изменения изменениям рознь. Не нужно запускать регрессионное тестирование, когда вносятся небольшие изменения в проект. Например, когда на сайте поменяли логотип или изменили формат даты. То есть из-за мелких изменений в проекте не стоит перепроверять весь сайт на наличие возможных багов. Если из-за изменения логотипа на сайте «ломается» весь ресурс, то тут вам тестирование не поможет. Тут нужно найти того «программиста», кто вам сделал сайт, и спросить у него, почему так происходит.
Преимущества и недостатки регрессионного тестирования
В качестве преимуществ можно отметить:
- улучшение конечного качества программного продукта;
- наличие регрессионных ошибок демонстрирует истинное качество программирования и архитектуры проекта: чем больше ошибок, тем хуже качество кода.
В качестве недостатков можно отметить:
- дорогие ошибки, потому что времени на поиск ошибок уделяется много, а их количество небольшое;
- рутинность, потому что приходится проходить одни и те же тесты много раз подряд.
Заключение
Регрессионное тестирование — это дополнительный гарант качества вашего программного продукта. Основная масса подобных тестов проходит «вручную», потому что, как ни странно, очень часто автоматизация регрессионного тестирования приводит к дополнительным финансовым затратам. В итоге получается, что проводить такие тесты дешевле руками молодых тестировщиков, чем автоматизированными решениями профессионалов тестирования.
Другое