ПОЛУЧЕНИЕ ПРАКТИЧЕСКИХ НАВЫКОВ ВЕРИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Синицын Сергей Владимирович (SVSinitsyn@mephi.ru)
Московский инженерно-физический институт (Национальный исследовательский ядерный университет), г. Москва
Аннотация В докладе рассматривается подход, основанный на применении опыта промышленного тестирования программного обеспечения высокой степени критичности. В учебных занятиях по курсу «Верификация программного обеспечения» используется специальный программный проект «Калькулятор». В качестве среды верификации применяется MS Visual Studio.
THE WAY TO RAISE EXPERIENCE IN SOFTWARE VERIFICATION
Sinitsyn Sergey (SVSinitsyn@mephi.ru)
Moscow physical engineering institute (National nuclear research university)
Annotation The goal and methods of education course “Software verification”, based on practical experience of software development for critical applications is discussed. Some features of the software product “Calculator” built for education purposes are described. Its main function is to be a test harness for student’s software verification tasks based on MS Visual Studio tools.
Задачей современного обучения в IT-области является обеспечение технологической подготовки, под которой понимается процесс получения студентами знаний и навыков в области создания программного продукта в условия разработки, соответствующих уровню СММI не ниже третьего. В рамках данного доклада обсуждаются практические рекомендации развития навыков промышленной верификации программного обеспечения [1]. Существенное влияние на формирование предлагаемой точки зрения оказало тридцатипятилетнее сотрудничество кафедры «Кибернетика» МИФИ с предприятиями авиационной промышленности в области разработки бортового программного обеспечения и, в частности, опыт применения DO-178B [2].
Ранее на конференциях АПКИТ неоднократно обсуждались различные аспекты технологической подготовки. В данном докладе рассматриваются только вопросы развития навыков в области верификации. При этом верификация рассматривается как процесс доказательства наличия несоответствий между требованиями и программной продукцией. Как один из способов верификации, но не единственный, используется тестирование.
Очевидно, что для успешного выполнения верификации необходимо наличие не только требований, но и результирующих документов разработки: спецификаций архитектуры, программного кода и т.п. Поэтому для обеспечения поддержки учебного курса был разработан специальный программный проект, включающий в себя весь комплекс программных документов. Практическое тестирование на занятиях выполняется в среде MS Visual Studio.
В качестве тестируемого объекта был создан программный комплекс с условным названием "Калькулятор", который реализует простейшие математические функции для работы с целыми числами. Однако, в отличие от стандартных калькуляторов, реализованный программный комплекс может обрабатывать целые арифметические выражения, состоящие из последовательности операций и скобок.
Для того чтобы студенты могли на практике увидеть принципы и опробовать различные приемы тестирования и верификации, учебный пример представляет собой программный комплекс, включающий интерфейсную часть, позволяющую проверять требования GUI, вычислитель, на котором моделируются ограничения разрядной сетки, переполнения и прочие особенности арифметический преобразований. Кроме того в архитектуру комплекса включен набор процедур работы с символьными строками (обработчик выражения), создающий среду для работы с различными структурами данных.
Таким образом в архитектуре системы "Калькулятор" выделено 3 модуля. Каждый из модулей занимается определенной задачей. Соответственно, вся система - это взаимодействие этих 3-х модулей. Разбиение программного комплекса на модули обеспечивает возможность проведения, как модульного тестирования, так и тестирования межмодульного взаимодействия.
Для методического обеспечения курса при поддержке компании Microsoft и ООО ДС «БАРС» было написано учебное пособие, "Верификация программного обеспечения" [1] позднее изданное ИНТУИТ.
Учебное пособие представляет знания и опыт, которые были накоплены кафедрой «Кибернетика» МИФИ в области программной инженерии и основано на реальных технологических процессах верификации, применяющихся в настоящее время при разработке высокоустойчивых прикладных систем. В курсе сочетаются фундаментальный подход к теоретическим вопросам верификации и использование современных инструментальных средств.
Программный комплекс "Калькулятор" разработан на платформе Microsoft .NET 2.0 на языке программирования C# 2.0. Это позволяет эффективно применять инструментальные средства компании Microsoft в учебных целях для тестирования комплекса "Калькулятор".
В состав Microsoft Visual Studio 2005 Team System (MVSTE) входит Microsoft Visual Studio 2005 Team Edition for Software Testers [3]. Эта инструментальная среда предназначена как для разработчиков, так и для тестировщиков программного обеспечения. В ней содержится все, что необходимо для тщательного и всестороннего тестирования продукта, в том числе для анализа покрытия кода.
MVSTE for Software Testers содержит следующие инструменты для тестирования:
- Manual Testing (ручное тестирование)
- Web Testing (функция веб-тестирования)
- Unit Testing (модульное тестирование)
- Code Coverage (анализ покрытия кода)
- Ordered Testing (упорядоченное тестирование)
- средства управления тестированием, позволяющие составлять тесты, выполнять их и отслеживать весь процесс
Для проведения учебного курса "Верификация программного обеспечения" используется очная форма обучения с лекционными, семинарскими и лабораторными занятиями. Лекции содержат изложение комплексного взгляда на процесс верификации программного обеспечения. Предметом обсуждения являются различные подходы и методы, применяемые в области верификации и, в частности, тестирование программного обеспечения. Рассматривается зависимость применяемых подходов от уровня критичности разработываемого программного продукта.
Целью семинарских занятий является закрепление лекционного материала путем демонстрации на одном сквозном примере подходов к тестированию и верификации программного обеспечения. Средой для тестирования является среда разработки MVSTE, предоставляющая набор средств автоматизации и управления процессом тестирования. Лабораторные работы направлены на практическое закрепление изученного на лекционных и семинарских занятиях материала.
В докладе рассматриваются как теоретические основы курса верификации, так и практические приемы развития у студентов навыков промышленной разработки программного обеспечения.
Литература
- Синицын С.В., Налютин Н.Ю. Верификация программного обеспечения: Учебное пособие. М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2008. - 368 с.
- Software Considerations in Airborne Systems and Equipment Certification, RTCA, 1992
- Троелсен. Э. С# и платформа .NET. Библиотека программиста - СПб.: Питер. 2006. - 796 с.: ил.
|