|
Обычным делом в процессе тестирования программы является внесение в нее изменений, связанных, с исправлением обнаруженных ошибок. Эти изменения особенно опасны из-за возможности возникновения новых ошибок, так как программист, вносящий изменения, бывает озабочен лишь устранением выявленной ошибки и легко упускает из виду другие факторы, которые могут привести к новым затруднениям. Другим опасным в этом смысле действием является модифицирование программы. Учитывая эти обстоятельства, следует сохранять старые тестовые данные для того, чтобы, используя их повторно для проверки измененной программы, приобрести уверенность в отсутствии новых ошибок.
С каждой программой должен быть постоянно связан некоторый набор контрольных примеров для ее первоначального тестирования, а также для повторных проверок после каждого внесения изменений. Если такой набор тестов доступен для многократного использования и может по требованию запускаться автоматически, вряд ли станет программист пренебрегать тестированием в любых условиях.
Все сохраняемые для многократного использования контрольные примеры должны вводиться в работу по повторному тестированию возможно раньше. Неразумно было бы прогонять несколько тестов, устранять обнаруженные ошибки, а повторное тестирование откладывать на более позднее время. Если программа, подлежащая тестированию, плоха, лучше обнаружить это немедленно. Кроме того, гораздо выгоднее исправлять сразу большое число ошибок, чем устранять их поодиночке, или, если брать худший случай, дешевле переписать сразу весь неработоспособный модуль, чем делать это в разное время по частям.
Библиотеки тестовых входных и выходных данных иногда называют сценариями. Создание хороших контрольных примеров является трудоемким делом, поэтому тестовые данные не следует уничтожать после использования — их необходимо сохранять для повторного применения в дальнейшем. Для того чтобы будущие пользователи сценариев хорошо понимали их и могли применить на практике, сценарии необходимо полно документировать. Это жизненно важно, поскольку потребность в их применении может возникнуть через несколько лет, когда после модификации соответствующей программы необходимо будет выполнить ее повторное испытание.
Повторное тестирование иногда называют избыточным или регрессивным. Его отличие от первоначального тестирования заключается в том, что работа ведется в направлении от сложных тестов к простым, причем прогон последних имеет место лишь в том случае, если предшествующие более сложные тесты дали неблагоприятные результаты. Тогда возврат к более простым тестам способствует выявлению ошибок.
Повторяйте тестирование после каждого случая внесения изменений в программу.
⇐5.21. Оценка полноты проверки программы || Оглавление || 5.23. Группа тестирования⇒
|