Регрессионное тестирование - лучший способ устранения ошибок в ПО
При написании программного обеспечения, а особенно в больших проектах, избежать ошибок практически невозможно. Однако, если их не удается обнаружить сразу, то впоследствии, накапливаясь с каждой новой версией программы, они могут привести к полной неработоспособности программного обеспечения или к частым сбоям в работе. Только тогда обнаружить их будет гораздо сложнее, чем при проведении полного тестирования продукта после каждой серьёзной правки кода. Дело в том, что старые погрешности обрастают новыми строками кода, и на ошибки в данном блоке ложиться вина вновь написанного функционала.
В основном, регрессионное тестирование применяется в том случае, если после изменения исходного кода перестают работать те функции программы, которые работали в более ранних версиях. Различают три этапа такого тестирования.
Первый этап - это проверка на дефекты, которые могли появиться в процессе внесения правки в код. Обычно проверяется только та часть кода, которая редактировалась, и её прямые связи с другими блоками программного обеспечения.
Второй - поиск ошибок, которые возникали ранее и были устранены, однако могли появиться вновь. Используются данные прошлых тестов, которые делались при подготовке предыдущей версии к выходу.
И третий этап - это полная проверка всей функциональности блока, взаимосвязанных с ним блоков, и всей программы в целом. При этом проводится наблюдение, не нарушается ли функциональность даже в тех элементах программы, которые не были затронуты при редактировании кода.
В результате прохождения всех этапов тестирования складывается полная картина относительно стабильности работы программного обеспечения и возможность избежать проблем при выпуске новых версий ПО. Все вышеописанные действия можно делать как в ручном, так и в автоматическом режиме, как, например, проверяет на работоспособность свои программные продукты компания Перфоманс Лаб. Возможно также комбинировать эти два метода и сравнивать результаты проверки, в таком случае вероятность их возникновения получается достаточно низкой.
При ручной проверке остаётся шанс пропустить какую-либо ошибку, даже используя проверенные временем шаблоны. В случае с автоматической проверкой не только тестируется код, но и создаются файлы отчёта, которые могут быть применены для прохождения второго и третьего этапов при проверке новых версий, что позволяет ускорить процесс.
Однако, даже применяя все виды тестирования, полностью избежать всех ошибок не удастся. Почему? Существуют скрытые ошибки, которые могут проявить себя только в каком-то конкретном случае и в определённых обстоятельствах. Поэтому рекомендуется встраивать в программу форму обратной связи, которая сможет отправлять отчёты при возникновении ошибки. Это ещё один метод тестирования - когда непосредственно на рабочем месте у пользователя создаётся файл отчета.