Главная » Просмотр файлов » В.В. Кулямин - Технологии программирования. Компонентный подход

В.В. Кулямин - Технологии программирования. Компонентный подход (1134162), страница 21

Файл №1134162 В.В. Кулямин - Технологии программирования. Компонентный подход (В.В. Кулямин - Технологии программирования. Компонентный подход) 21 страницаВ.В. Кулямин - Технологии программирования. Компонентный подход (1134162) страница 212019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

подтверждение того, чтоон действительно удовлетворяет потребностям и ожиданиям пользователей, заказчиков идругих заинтересованных сторон.66Эффективность верификации и валидации, как и эффективность разработки ПО в целом,зависит от полноты и корректности формулировки требований к программному продукту.Основой любой системы обеспечения качества являются методы его обеспечения и контроля.Методы обеспечения качества [9] представляют собой техники, гарантирующие достижениеопределенных показателей качества при их применении.

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

Такого родаситуации называют тестовыми или просто тестами.Тестирование — конечная процедура. Набор ситуаций, в которых будет проверятьсятестируемое ПО, всегда конечен. Более того, он должен быть настолько мал, чтобы тестированиеможно было провести в рамках проекта разработки ПО, не слишком увеличивая его бюджет исроки. Это означает, что при тестировании всегда проверяется очень небольшая доля всехвозможных ситуаций. По этому поводу Дейкстра (Dijkstra) заметил, что тестирование позволяетточно определить, что в программе есть ошибка, но не позволяет утверждать, что там нет ошибок.Тем не менее, тестирование может использоваться для достаточно уверенного вынесенияоценок о качестве ПО.

Для этого необходимо иметь критерии полноты тестирования,описывающие важность различных ситуаций для оценки качества, а также эквивалентности изависимости между ними. Этот критерий может утверждать, что все равно в какой из ситуаций, Aили B, проверять правильность работы ПО, или, если программа правильно работает в ситуацииA, то, скорее всего, в ситуации B все тоже будет правильно.

Часто критерий полнотытестирования задается при помощи определения эквивалентности ситуаций, дающей конечный67набор классов ситуаций. В этом случае считают, что все равно, какую из ситуаций одного классаиспользовать в качестве теста. Такой критерий называют критерием тестового покрытия, апроцент классов эквивалентности ситуаций, случившихся во время тестирования, — достигнутымтестовым покрытием.Таким образом, основные задачи тестирования: построить такой набор ситуаций, который былбы достаточно представителен и позволял бы завершить тестирование с достаточной степеньюуверенности в правильности ПО вообще, и убедиться, что в конкретной ситуации ПО работаетправильно, в соответствии с требованиями.ПроверяемыетребованияКритерииполнотытестированияРазработкатестовТестируемоеПОВыполнениетестовНабортестовАнализрезультатовРезультатытестирования —отчетыРисунок 25.

Схема процесса тестирования.Тестирование — наиболее широко применяемый метод контроля качества. Для оценки многихатрибутов качества не существует других эффективных способов, кроме тестирования.Организация тестирования ПО регулируется следующими стандартами.• IEEE 829-1998 Standard for Software Test Documentation.Описывает виды документов, служащих для подготовки тестов.• IEEE 1008-1987 (R1993, R2002) Standard for Software Unit Testing.Описывает организацию модульного тестирования (см. ниже).• ISO/IEC 12119:1994 (аналог AS/NZS 4366:1996 и ГОСТ Р-2000, также принят IEEE подномером IEEE 1465-1998) Information Technology. Software packages — Quality requirementsand testing.Описывает требования к процедурам тестирования программных систем.Тестировать можно соблюдение любых требований, соответствие которым выявляется вовремя работы ПО.

Из характеристик качества по ISO 9126 этим свойством не обладают толькоатрибуты удобства сопровождения. Поэтому выделяют виды тестирования, связанные с проверкойопределенных характеристик и атрибутов качества — тестирование функциональности,надежности, удобства использования, переносимости и производительности, а также тестированиезащищенности, функциональной пригодности и пр. Кроме того, особо выделяют нагрузочное илистрессовое тестирование, проверяющее работоспособность ПО и показатели егопроизводительности в условиях повышенных нагрузок — при большом количестве пользователей,интенсивном обмене данными с другими системами, большом объеме передаваемых илииспользуемых данных, и пр.На основе исходных данных, используемых для построения тестов, тестирование делят наследующие виды.• Тестирование черного ящика, нацеленное на проверку требований. Тесты для него икритерий полноты тестирования строятся на основе требований и ограничений, четкозафиксированных в спецификациях, стандартах, внутренних нормативных документах.Часто такое тестирование называется тестированием на соответствие (conformance68testing).

Частным случаем его является функциональное тестирование — тесты для него,а также используемые критерии полноты проведенного тестирования определяют на основетребований к функциональности.Еще одним примером тестирования на соответствие является аттестационное иликвалификационное тестирование, по результатам которого программная системаполучает (или не получает) официальный документ, подтверждающий ее соответствиеопределенным требованиям и стандартам.• Тестирование белого ящика, оно же структурное тестирование — тесты создаются наоснове знаний о структуре самой системы и о том, как она работает.

Критерии полнотыоснованы на проценте элементов кода, которые отработали в ходе выполнения тестов. Дляоценки степени соответствия требованиям могут привлекаться дополнительные знания освязи требований с определенными ограничениями на значения внутренних данныхсистемы (например, на значения параметров вызовов, результатов и локальныхпеременных).• Тестирование, нацеленное на определенные ошибки. Тесты для такого тестированиястроятся так, чтобы гарантированно выявлять определенные виды ошибок.

Полнотатестирования определяется на основе количества проверенных ситуаций по отношению кобщему числу ситуаций, которые мы пытались проверить. К этому виду относится,например, тестирование на отказ (smoke testing), в ходе которого просто пытаютсявывести систему из строя, давая ей на вход как обычные данные, так и некорректные, снарочно внесенными ошибками.Другим примером служит метод оценки полноты тестирования при помощи наборамутантов — программ, совпадающих с тестируемой всюду, кроме нескольких мест, гдеспециально внесены некоторые ошибки.

Чем больше мутантов не проходит успешно черезданный набор тестов, тем полнее и качественнее проводимое с его помощью тестирование.Еще одна классификация видов тестирования основана на том уровне, на который ононацелено. Эти же разновидности тестирования можно связать с фазой жизненного цикла, накоторой они выполняются.• Модульное тестирование (unit testing) предназначено для проверки правильностиотдельных модулей, вне зависимости от их окружения. При этом проверяется, что еслимодуль получает на вход данные, удовлетворяющие определенным критериямкорректности, то и результаты его корректны.

Для описания критериев корректностивходных и выходных данных часто используют программные контракты — предусловия,описывающие для каждой операции, на каких входных данных она предназначенаработать, постусловия, описывающие для каждой операции, как должны соотноситьсявходные данные с возвращаемыми ею результатами, и инварианты, определяющиекритерии целостности внутренних данных модуля.Модульное тестирование является важной составной частью отладочного тестирования,выполняемого разработчиками для отладки написанного ими кода.• Интеграционное тестирование (integration testing) предназначено для проверкиправильности взаимодействия модулей некоторого набора друг с другом. При этомпроверяется, что в ходе совместной работы модули обмениваются данными и вызовамиопераций, не нарушая взаимных ограничений на такое взаимодействие, например,предусловий вызываемых операций.

Характеристики

Тип файла
PDF-файл
Размер
3,61 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее