Тестирование и испытание программ

Вполне вероятно, что даже при использовании самых лучших способов программирования, программные комплексы всё же будут содержать те или иные ошибки. Целью испытаний программы является подтверждение того, что она соответствует проектным замыслам. Любая корректировка программы может быть сведена к трём типовым операциям:

- исключение части или всей подпрограммы;

- вставка компонент или новой целой подпрограммы на имеющееся свободное место;

- замена части или всей подпрограммы в пределах освобождающегося свободного места или с расширением программы и использованием дополнительной памяти.

Необходимые исправления вводятся в текст программы, программа перетранслируется и повторно тестируется данными. После подтверждения правильности выполненной корректировки продолжается отладка по новым тестам, либо программа передаётся на эксплуатацию. В больших комплексах программ внесение изменений усложняется и требует проведения дополнительных работ. Роль дополнительных работ возрастает, когда комплекс программ отлажен и проводятся завершающие стадии проверок. Экспериментальный анализ выполненных при этом корректировок показывает, что около 30% внесённых изменений являются неправильными и не устраняют ошибку, либо вносят новую ошибку в программу. Эти новые ошибки трудно обнаружить, так как их последствия не проявляются на тестах повторяющихся проверок и связаны
с функционированием комплекса программ в иных режимах. Поэтому при корректировке программ необходимы дополнительные работы по анализу возможных последствий внесённых изменений.

Средства проверки состоят из двух основных модулей: инструментального модуля и анализатора. Исходная программа испытуемого модуля вначале поступает в инструментальный модуль, который снабжает проверяемый модуль дополнительными операторами. Эти операторы называются датчиками и счётчиками, а сам процесс введения указанных операторов носит название инструментального оснащения. В процессе инструментального оснащения исходной программы её функции должны оставаться неизменными, т. е. оператор-датчик и оператор-счётчик не должны менять функционального назначения программы. Снабжёнными дополнительными операторами блок программы транслируется обычным способом, а полученная выходная программа прогоняется с использованием её тестовых данных. При этом на выходе программы, помимо обычных результатов, получают также инструментальный файл данных. Затем этот инструментальный файл данных и файл данных исходной программы, снабжённый дополнительными операторами, вводятся в модуль анализатора, который выдаёт на выходе сведения о поведении испытуемого модуля в процессе его выполнения. В каждом таком отсчёте содержится информация о числе случаев появления каждого оператора, числе случаев выбора конкретного маршрута в каждой точке ветвления и о времени, необходимом для выполнения каждого оператора. Подобная информация используется при проверке структуры программы; она даёт уверенность в правильности логики и кода программы, гарантирует, что каждый оператор и каждое ответвление программы выполняется хотя бы один раз. Можно также обеспечить вызов хотя бы один раз каждой подпрограммы. Длительность испытаний зависит от конфигурации системы
и состава испытаний, но типичным можно считать период, включая испытания в условиях пользователя от 1 до 6 месяцев, иногда и более.

Наши рекомендации