Тестирование является основным методом измерения качества, определения корректности, реальной надежности и безопасности функционирования программ на всех этапах ЖЦ ПС. Однако процесс тестирования программ имеет свои особенности по сравнению с тестированием аппаратуры:
1) отсутствие эталонной программы, которой должны точно соответствовать все результаты тестирования;
2) принципиальная невозможность использования полных тестовых наборов для исчерпывающей проверки функционирования сложных ПС;
3) относительно невысокая степень формализации критериев качества результатов тестирования и достигаемых при этом корректности и надежности функционирования испытуемых ПС.
Модели внешней среды и наборы тестов по сложности соизмеримы с
тестируемыми объектами и не гарантированы от ошибок. В результате в программах и данных всегда остаются ошибки. Часть из них выявляется в процессе эксплуатации ПС в реальной среде.
Тестирование включает в себя: собственно тестирование, диагностику и локализацию ошибок, а также корректировку отлаживаемых программ и контроль правильности устранения обнаруженных ошибок (прил. 1.3).
Цель тестирования – точно установить наличие ошибок. Ошибки устраняются в процессе отладки.
После устранения обнаруженных ошибок применяется контрольное тестирование, цель которого состоит в подтверждении правильности выполненной корректировки программы и отсутствии ранее обнаруженной ошибки. Успешность тестирования определяется отсутствием устранявшейся ошибки, а также вторичных ошибок, которые могут появиться после проведенной корректировки.
Процесс тестирования проходит следующие этапы:
· Выбор метода тестирования, адекватного объекту и этапу отладки, а также основной его цели.
· Планирование тестирования в соответствии с выбранным методом с учетом ограниченных ресурсов отладки, имеющихся для достижения заданного качества программы.
· Разработка или моделирование наборов конкретных тестовых значений и соответствующих им эталонов.
· Составление отладочных заданий с указанием контролируемых параметров, исходных данных и эталонов.
· Реализация процесса тестирования и получение результатов функционирования объекта отладки при подготовленных тестах и отладочных заданиях.
· Сравнение результатов тестирования с эталонами и обнаружение отклонений для принятия решений о проведении дополнительного тестирования с целью диагностики и локализации ошибок, а также для контроля правильности корректировки программ.
· Оценка полноты проведенного тестирования выбранным методом и необходимости применения другого метода.
· Оценка наличия ресурсов для продолжения отладки и момента ее завершения, а также определение достигнутого качества программ.