Разработка сложных программных изделий


Тестирование программного изделия


Процесс тестирования проходит несколько этапов: поблочное, комплексное и системное.

Тестирование блоков показывает правильность реализации всех компонент программного изделия, начиная с само­го нижнего уровня, определенного в детальном проекте, вплоть до самого нижнего уровня архитектурного проекта (обычно на уровне задач). Модули, которые не вызывают другие модули, — модули нижнего уровня детального проекта.

При тестировании блоков обычно проверяется правильность не только того, что функционально выполняет модуль, но и того, как он это делает. Таким образом, при тестировании блоков использу­ется не только функциональное тестирование (тестирование "черно­го ящика"), но и структурное тестирование (тестирование "белого ящика").

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

Тестирование блоков обычно выполняется отдельными работ­никами или группой, ответственной за разработку этих компонент.

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

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

Системное тестирование — процесс тестирования интегрированного программного изделия.
Оно осуществляется в процессе разработки или в условиях моделирования эксплуатации. Системное тестирование должно подтверждать соответствие разра­ботанного программного изделия целям, установленным в докумен­те Требования пользователя.

Системное тестирование включает:

• передачу данных в систему, проверку корректности обработки данных и вывод результатов;

• прогон тестов с целью проверки выполнения требований поль­зователя;

• стрессовое тестирование для верификации предельных харак­теристик программного изделия;

• предварительную оценку надежности и пригодности к сопро­вождению;

• проверку правильности Руководства пользователя. В системных тестах контролируются возможные тенденции в появлении ошибок в программном обеспечении. Изучение этих тен­денций позволяет судить о возможностях последующей приемки программного изделия.

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


Содержание раздела