5.20. Планирование тестирования программ

Одно из необходимых условий надлежащего тестирования программ— это выделение на него в плановом порядке достаточных ресурсов времени, которые, как показывает практика, примерно равны затратам времени на программирование. Поскольку существует тенденция планировать только работу по программированию, нетрудно понять," отчего все проекты выполняются с нару-шениями сроков. Это говорит о необходимости раздельно планировать затраты времени на разработку, кодирование, отладку и тестирование программ и отдавать себе отчет в том, что сдвиг сроков окончания разработки алгоритма на неделю будет приводить к такому же сдвигу сроков по всем остальным этапам.

Системам, для которых крайне необходимы всесторонние испытания, требуется еще и дополнительный резерв времени. Например, по оценкам НАСА, стоимость испытаний программ в рамках проекта "Аполлон" составила 80% общей стоимости разработки программного обеспечения. Конечно, эта цифра столь велика потому, что указанный проект требовал всеобъемлющего тестирования, однако подобные оценки по операционным системам ЭВМ показывают, что на их тестирование приходится от 30 до 60% общих затрат на разработку.

5.20.1. ГРАФИКИ ПРОВЕДЕНИЯ ИСПЫТАНИИ

Гораздо легче контролировать испытания,- если они проводятся по этапам. Очень часто пренебрегают делением на этапы, а выделяют общее время на проведение всех испытаний. В результате затруднения, возникающие на каком-либо одном этапе, поглощают время, требуемое для других этапов.

Планируйте надлежащим образом затраты времени на испытания.

Необходимо выделять определенное время для каждого этапа испытаний. Тогда двухнедельная задержка в тестировании какого-либо элемента программы будет своевременным предупреждением руководителям проекта о том, что если не выделить дополнительных ресурсов, то вся работа будет выполнена с отставанием от графика на две недели. К сожалению, часто в целях соблюдения установленного графика в случае возникающих задержек последующие этапы испытаний проводятся поверхностно. Планирование испытаний позволяет строже контролировать процесс тестирования и заблаговременно узнавать о возможных нарушениях графика.

5.20.2. ПЛАНИРОВАНИЕ ПРОГРАММНЫХ ИСПЫТАНИИ

Очень часто бывает желательно получать информацию о ходе тестирования программ. При этом нас интересуют ответы на два вопроса: выдерживается ли график? достаточно ли полно проверена программа? Получить ответы на эти вопросы столь же важно, сколь и трудно. Однако существуют методы работы, позволяющие следить за ходом тестирования программ.

Как известно, большие системы обычно разделяют на подсистемы или компоненты. Компоненты в свою очередь состоят из элементарных блоков, представляющих собой наименьшие различные элементы программ. Может существовать много уровней такого разбиения и множество элементов на каждом уровне. Традиционный подход к тестированию предполагает первоначальную -проверку наименьших, элементов с последующим объединением их в более крупные блоки и повторением проверки постепенно укрупняемых узлов до тех пор, пока не пройдет испытания вся система в целом.

Для придания тестированию целенаправленного характера необходимо уже в процессе программирования сформировать библиотеку контрольных примеров. Эта работа должна выполняться не программистами, а группой испытателей, работающей параллельно с ними; однако необходимым условием является использование обеими группами одних и тех же исходных требований (о группах испытателей, или тестирования, речь будет идти ниже). Если требования сформулированы нечетко, то разработанные тесты не будут согласовываться с программой, что, вообще говоря, помогает своевременно уточнять проектную документацию. Параллельная разработка тестов служит не только целям подготовки программных испытаний, но и целям проверки правильности сформулированных требований к системе. Поэтому, если какая-либо программа не работает при прогонке предназначенных для нее тестов, этот факт свидетельствует скорее об ошибке в спецификации, чем в тесте или в программе.

Когда контрольные примеры проектируются специальной группой испытателей, может быть поставлен вопрос об отчетности этой группы по показателям, характеризующим процент опробованных тестов и процент тестов с благоприятными результатами испытаний. Располагая ежедневной информацией о результатах тестирования, руководство может контролировать ход программных испытаний.

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

5.19. Окончательное утверждение программы || Оглавление || 5.21. Оценка полноты проверки программы


Услуги