Тестирование программного изделия
Процесс тестирования проходит несколько этапов: поблочное, комплексное и системное.
Тестирование блоков показывает правильность реализации всех компонент программного изделия, начиная с самого нижнего уровня, определенного в детальном проекте, вплоть до самого нижнего уровня архитектурного проекта (обычно на уровне задач). Модули, которые не вызывают другие модули, — модули нижнего уровня детального проекта.
При тестировании блоков обычно проверяется правильность не только того, что функционально выполняет модуль, но и того, как он это делает. Таким образом, при тестировании блоков используется не только функциональное тестирование (тестирование "черного ящика"), но и структурное тестирование (тестирование "белого ящика").
Стратегия структурного тестирования предполагает такой подбор тестовых данных, при котором, во-первых, каждый оператор программы будет выполнен, по крайней мере, один раз, и, во-вторых, все пути выполнения программы будут охвачены соответствующими тестовыми наборами. Для проведения поблочного тестирования используются также и специальные автоматизированные средства.
Тестирование блоков обычно выполняется отдельными работниками или группой, ответственной за разработку этих компонент.
Комплексное тестирование также выполняется во время фазы детального проектирования, когда формируются основные компоненты программного изделия и объединяются с целью его построения. Комплексное тестирование направлено на верификацию интерфейсов главных компонент. Комплексное тестирование предшествует системному тестированию.
Комплексное тестирование контролирует согласованность всех данных, передаваемых через интерфейсы, со спецификациями структур данных в архитектурном проекте. Комплексное тестирование должно также подтверждать, что потоки управления, определенные в архитектурном проекте программного изделия, полностью реализованы.
Системное тестирование — процесс тестирования интегрированного программного изделия.
Оно осуществляется в процессе разработки или в условиях моделирования эксплуатации. Системное тестирование должно подтверждать соответствие разработанного программного изделия целям, установленным в документе Требования пользователя.
Системное тестирование включает:
• передачу данных в систему, проверку корректности обработки данных и вывод результатов;
• прогон тестов с целью проверки выполнения требований пользователя;
• стрессовое тестирование для верификации предельных характеристик программного изделия;
• предварительную оценку надежности и пригодности к сопровождению;
• проверку правильности Руководства пользователя. В системных тестах контролируются возможные тенденции в появлении ошибок в программном обеспечении. Изучение этих тенденций позволяет судить о возможностях последующей приемки программного изделия.
Для большинства программных изделий, которые предназначены для включения в более крупные программные системы, а также для систем, использующих специальную периферию, часто возникает необходимость построения имитаторов окружающей обстановки, т.е. той обстановки, в которой будет функционировать разрабатываемое изделие. Их разработку также необходимо планировать.