отчет. отчет НИР. "Верификация программного обеспечения"
Скачать 24.04 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮЖДЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)" (МАИ) Институт № 2 "Авиационные, ракетные двигатели и энергетические установки" Кафедра 207 "Метрология, стандартизация и сертификация" Отчет НИР на тему "Верификация программного обеспечения" Выполнил: студент группы М2О - 105М - 19 Салихов А.Р. Проверила: к.т.н., профессор каф. 207 Монахова В.П. Работа зачтена с оценкой “______________” /дата, подпись / Москва 2019 год Содержание 1.Введение…………………………………………………………………………3 2.Верификация…………………………………………………………………….4 3.Цели и задачи процесса верификации…………………………………………5 4.Заключение………………………………………………………………………8 5.Список литературы……………………………………………………………...9 1. Введение Предполагается, что разрабатываемое программное обеспечение является частью более общей системы. Подобная система включает аппаратные, информационные и организационные (человек-пользователь, человек-оператор и т.п.) компоненты, разрабатываемые, возможно, разными коллективами. Поэтому необходимы документы разработки, определяющие требования к различным компонентам системы и правила их взаимодействия. Кроме того, предполагается, что отказы системы могут приводить к последствиям той или иной тяжести, поэтому при разработке программного обеспечения необходимы и оправданы усилия, потраченные на выявление скрытых дефектов. В первую очередь, это касается средств и процедур верификации программного обеспечения. 2.Верификация Верификация – это процесс определения, выполняют ли программные средства и их компоненты требования, наложенные на них в последовательных этапах жизненного цикла разрабатываемой программной системы. Основная цель верификации состоит в подтверждении того, что программное обеспечение соответствует требованиям. Дополнительной целью является выявление и регистрация дефектов и ошибок, которые внесены во время разработки или модификации программы. Верификация является неотъемлемой частью работ при коллективной разработке программных систем. При этом в задачи верификации включается контроль результатов одних разработчиков при передаче их в качестве исходных данных другим разработчикам. Для повышения эффективности использования человеческих ресурсов при разработке, верификация должна быть тесно интегрирована с процессами проектирования, разработки и сопровождения программной системы. Заранее разграничим понятия верификации и отладки. Оба этих процесса направлены на уменьшение ошибок в конечном программном продукте, однако отладка – процесс, направленный на локализацию и устранение ошибок в системе, а верификация – процесс, направленный на демонстрацию наличия ошибок и условий их возникновения. Кроме того, верификация, в отличие от отладки – контролируемый и управляемый процесс. Верификация включает в себя анализ причин возникновения ошибок и последствий, которые вызовет их исправление, планирование процессов поиска ошибок и их исправления, оценку полученных результатов. Все это позволяет говорить о верификации, как о процессе обеспечения заранее заданного уровня качества создаваемой программной системы 3. Цели и задачи процесса верификации Основная цель процесса – доказательство того, что результат разработки соответствует предъявленным к нему требованиям. Обычно процесс верификации проводится сверху вниз, начиная от общих требований, заданных в техническом задании и/или спецификации на всю информационную систему до детальных требований на программные модули и их взаимодействие. В состав задач процесса входит последовательная проверка того, что в программной системе: • общие требования к информационной системе, предназначенные для программной реализации, корректно переработаны в спецификацию требований высокого уровня к комплексу программ, удовлетворяющих исходным системным требованиям; • требования высокого уровня правильно переработаны в архитектуру ПО и в спецификации требований к функциональным компонентам низкого уровня, которые удовлетворяют требованиям высокого уровня; • спецификации требований к функциональным компонентам ПО, расположенным между компонентами высокого и низкого уровня, удовлетворяют требованиям более высокого уровня; • архитектура ПО и требования к компонентам низкого уровня корректно переработаны в удовлетворяющие им исходные тексты программных и информационных модулей • исходные тексты программ и соответствующий им исполняемый код не содержат ошибок. Кроме того, верификации на соответствие спецификации требований на конкретный проект программного средства подлежат требования к технологическому обеспечению жизненного цикла ПО, а также требования к эксплуатационной и технологической документации. Цели верификации ПО достигаются посредством последовательного выполнения комбинации из инспекций проектной документации и анализа их результатов, разработки тестовых планов тестирования и тест-требований, тестовых сценариев и процедур и последующего выполнения этих процедур. Тестовые сценарии предназначены для проверки внутренней непротиворечивости и полноты реализации требований. Выполнение тестовых процедур должно обеспечивать демонстрацию соответствия испытываемых программ исходным требованиям. На выбор эффективных методов верификации и последовательность их применения в наибольшей степени влияют основные характеристики тестируемых объектов: • класс комплекса программ, определяющийся глубиной связи его функционирования с реальным временем и случайными воздействиями из внешней среды, а также требования к качеству обработки информации и надежности функционирования; • сложность или масштаб (объем, размеры) комплекса программ и его функциональных компонентов, являющихся конечными результатами разработки; • преобладающие элементы в программах: осуществляющие вычисления сложных выражений и преобразования измеряемых величин или обрабатывающие логические и символьные данные для подготовки и отображения решений. Определим некоторые понятия и определения, связанные с процессом тестирования, как составной части верификации. Майерс дает следующие определения основных терминов: • тестирование - процесс выполнения программы с целью обнаружения ошибки. • тестовые данные – входы, которые используются для проверки системы. • тестовая ситуация (test case) – входы для проверки системы и предполагаемые выходы в зависимости от входов, если система работает в соответствии с ее спецификацией требований. • хорошая тестовая ситуация – та ситуация, которая обладает большой вероятностью обнаружения пока еще необнаруженной ошибки. • удачный тест - тест, который обнаруживает пока еще необнаруженную ошибку. • ошибка - действие программиста на этапе разработки, которое приводит к тому, что в программном обеспечении содержится внутренний дефект, который в процессе работы программы может привести к неправильному результату. • отказ – непредсказуемое поведение системы, приводящее к неожидаемому результату, которое могло быть вызвано дефектами, содержащимся в ней. Таким образом, в процессе тестирования программного обеспечения, как правило, проверяют следующее: • Проверка того, что программное обеспечение соответствует требованиям на него, • Проверка того, что в ситуациях, не отраженных в требованиях, программное обеспечение ведет себя адекватно, то есть не происходит отказ системы. • Проверка программного обеспечения на предмет типичных ошибок, которые делают программисты. 4.Заключение Верификация это сложный и объемный процесс требующий большого количества времени, а также знаний и подготовки со стороны персонала и разработчиков ПО. Необходимо обладать навыками и знания, а также контролирующей документацией для того, чтобы грамотно использовать ресурсы, которыми располагает разработчик ПО. Список литературы https://www.ispras.ru/publications/methods_of_software_verification.pdf https://www.studmed.ru/download/sinicyn-sv-nalyutin-nyu-verifikaciya-programmnogo-obespecheniya_5bed68048a6.html https://habr.com/ru/post/244337/ |