Цели курса
Целью данного курса лекций является изложение комплексного взгляда на процесс верификации программного обеспечения. Предметом обсуждения являются различные подходы и методы, применяемые в области верификации и, в частности, тестирования программного обеспечения.
Предполагается, что разрабатываемое программное обеспечение является частью более общей системы. Подобная система включает аппаратные, информационные и организационные (человек-пользователь, человек-оператор и т.п.) компоненты, разрабатываемые, возможно, разными коллективами. Поэтому необходимы документы разработки, определяющие требования к различным компонентам системы и правила их взаимодействия.
Кроме того, предполагается, что отказы системы могут приводить к последствиям той или иной тяжести, поэтому при разработке программного обеспечения необходимы и оправданы усилия, потраченные на выявление скрытых дефектов. В первую очередь, это касается средств и процедур верификации программного обеспечения.
|
|
В состав курса входит ряд практических занятий, иллюстрирующих на примере простой системы приемы и методы верификации программного обеспечения в среде Microsoft Visual Studio 2005 Team Edition for Software Testers.
Для кого предназначен этот курс?
Настоящий курс ориентирован на студентов и специалистов – разработчиков программного обеспечения, изучающих вопросы технологии создания программных систем с повышенными требованиями к критичности. То есть таких систем, отказы которых могут привести к катастрофическим последствиям или значительным материальным потерям.
Основная ориентация курса на персонал, который непосредственно вовлечен в процесс верификации программного обеспечения системы. Материал курса будет полезен для руководителей проектов, разработчиков требований и архитектуры системы, так как от них зависит организация работ и качество проектной документации.
В курсе затронуты вопросы конфигурационного управления и управления качеством, которые могут быть интересны всем участникам программного проекта.
Необходимые предварительные знания
Предполагается, что для восприятия материала курса необходимо знать язык программирования С или С++ и быть знакомым с основами разработки программных систем. Желательно иметь представление о модульном и объекно-ориентированном подходах, пошаговой детализации и коллективной разработке программного обеспечения.
ТЕМА 1. Введение. Место верификации среди процессов разработки программного обеспечения (лекция 1)
Верификация – это процесс определения, выполняют ли программные средства и их компоненты требования, наложенные на них в последовательных этапах жизненного цикла разрабатываемой программной системы.
|
|
Основная цель верификации состоит в подтверждении того, что программное обеспечение соответствует требованиям. Дополнительной целью является выявление и регистрация дефектов и ошибок, которые внесены во время разработки или модификации программы.
Верификация является неотъемлемой частью работ при коллективной разработке программных систем. При этом в задачи верификации включается контроль результатов одних разработчиков при передаче их в качестве исходных данных другим разработчикам.
Для повышения эффективности использования человеческих ресурсов при разработке, верификация должна быть тесно интегрирована с процессами проектирования, разработки и сопровождения программной системы.
Заранее разграничим понятия верификации и отладки. Оба этих процесса направлены на уменьшение ошибок в конечном программном продукте, однако отладка – процесс, направленный на локализацию и устранение ошибок в системе, а верификация – процесс, направленный на демонстрацию наличия ошибок и условий их возникновения.
Кроме того, верификация, в отличие от отладки – контролируемый и управляемый процесс. Верификация включает в себя анализ причин возникновения ошибок и последствий, которые вызовет их исправление, планирование процессов поиска ошибок и их исправления, оценку полученных результатов. Все это позволяет говорить о верификации, как о процессе обеспечения заранее заданного уровня качества создаваемой программной системы.