Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 11. Подготовка к тестированию

Лекция 11. Подготовка к тестированию (Лекции)

PDF-файл Лекция 11. Подготовка к тестированию (Лекции) Надёжность программного обеспечения (53342): Лекции - 7 семестрЛекция 11. Подготовка к тестированию (Лекции) - PDF (53342) - СтудИзба2019-09-18СтудИзба

Описание файла

Файл "Лекция 11. Подготовка к тестированию" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

НАДЁЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯЛекция 11:Подготовка к тестированиюВМиК МГУ им. М.В. Ломоносова,Кафедра АСВК, Лаборатория Вычислительных КомплексовАссистент Волканов Д.Ю.План лекцииПрямые и косвенные переменныеПолевые испытания и регрессионноетестированияЧто такое сценарий теста?Как управлять сценариями теста?Процесс тестированияКлассы эквивалентности играничные условияКак разрабатывать сценарии тестов?Подготовка успешного тестирования2SRE: процесс• 5 шагов в SREпроцессе:– Определить необходимыйуровень надежности– Разработатьфункциональный разрез– Подготовка длятестирования– Выполнить тестирование– Проанализировать данныеоб ошибках ииспользовать их дляпринятия решенийDefine NecessaryReliabilityDevelopOperational ProfilePrepare for TestExecute TestApply Failure Datato Guide Decisions3Основные понятия (1)Прогон: наименьшее задание, котороеможет быть вызвана внешним воздействием.Прогон ассоциируется с входнымсостоянием (набором входных переменных).Прогоны с одинаковыми входнымисостояниями называются прогонами одноготипаОперация – группа типов прогона с точкизрения её архитектуры программыТестовая процедура – программа, котораяустанавливает переменные окружения ивызывает случайные тестовые сценарии в4случайные моменты времениОсновные понятия (2)Типы тестовТест на поиск ошибок: выполнениеодной операции, максимальнонезависимое от других операцийНагрузочный тест: тестирование нареальных данных с подсчётомпоказателей производительностиРегрессионный тест: проверкафункциональности после каждогозначительного изменения в коде5Основные понятия (3)Прямые входные переменные явноуправляют поведением программыПример: аргументы, введённые данныеВажны во время тестированияфункциональностиКосвенные входные переменные могуттолько влиять на результат операцийПример: сетевой траффик, переменныеокруженияВажны во время нагрузочного тестирования6ПримерПрямые и косвенные входныепеременные и их эффект нарезультат операции7Что такое тестовыйсценарий?Тестовый сценарий – спецификация прогонав виде перечисления имён входныхпеременных и их значенийТестовый сценарий не зависит от режимафункционирования программыОдин и тот же тестовый сценарий можетвыполняться в разных режимахфункционирования.

Поэтому тестовыйсценарий может соответствовать сразунескольким прогонам с разнымпотенциально возможными отказами8Хороший тестовый сценарийСуществует разумная вероятностьобнаружения ошибкиНе обладает избыточностьюЛучше других подходит к сценариюНе слишком прост и не слишкомсложенДелает ошибку в программе очевидной9ПримерТестовый сценарийопределяется входнымсостояниемВ теории (необязательно напрактике) можнопровести прогоны длялюбого входногосостояния10Тестовые сценарии ипрогоныСпецификация косвенных входныхпеременных даёт тестовому сценариюнедостающий контекст для того, чтобы тотстал прогономВо время тестов функциональности влияниекосвенных входных переменных нарезультат должно быть сведено к минимуму,чтобы убедиться в реальной надёжностисистемыИспользование косвенных входныхпеременных важно во время нагрузочныхтестов11ПроцедураСостоит из двух этапов:1) Подготовка тестовых сценариев(управление сценариями)Использование реальных данных ифункциональных профилейПодготовка тестовых процедур2)Создание одной процедуры для каждогорежима функционирования, используяего профиль и частоты использованияопераций12Управление тестовымисценариямиПодготовка тестовых сценариев включает:1.Подсчёт числа новых тестовых сценариев,которые нужно создать для данной версиипрограммы2.Распределение сценариев средиподсистем, которые необходимотестировать[уровень системы]3.Распределение сценариев между новымиоперациями внутри каждой подсистемы[уровень операций]4.Описание новых сценариев тестирования5.Добавление новых сценариев131.

Подсчёт числа новых сценариевМетодология:Число тестовых сценариев зависит от:Времени:(доступное время  доступные люди)/(среднее время создания сценария)Стоимости:(доступный бюджет) / (средний расход на созданиесценария)Число выбирается как минимальное израссчитанных значений142. Распределение сценариев междуподсистемами (1)БольшинствоИнтерфейссценариев нужнодля сторонних системориентировать напоиск ошибок вПриобретённые РазработанныеразрабатываемомкомпонентыкомпонентыпродуктеОС, системное ПОАппаратное обеспечение152.

Распределение сценариев междуподсистемами (2)Большинство сценариев нужно ориентировать напоиск ошибок в разрабатываемом продуктеСоздавайте больше сценариев для операций сбольшей вероятностью использованияНе создавайте сценариев для приобретённыхкомпонентов, если они уже использовались ранее.В противном случае создайте для них числосценариев, соответствующее риску ихиспользования в контексте надёжности системыЕсли ваша программа значительно зависит отфункций операционной системы и её надёжностьнеизвестна, то на её проверку необходимовыделить 20-30% сценариев163.

Распределение сценариев междуоперациями (1)1.2.3.4.Конвертируйте графические представленияпрофилей функционирования в табличноепредставлениеНайдите новые критические операции,которые редко встречаются, и выделите длякаждой из них приблизительное числотребуемых сценариевВыделите по одному сценарию для каждойновой редко встречающейся операцииРаспределите оставшееся число сценариевмежду остальными новыми операциями173. Распределение сценариев междуоперациями (2)Найдитепороговуювероятность: 0,5делёные на числоновых сценариев.Выделите поодному тесту длякаждой новойнечастойоперацииНовые операцииНечастыеКритическеРаспределите оставшиеся тестовые сценариимежду оставшимися новыми операциямиВыделите по 24 сценария длякаждойнечастойкритическойоперации183.1 Критические операцииКритическая операция – операция, получениерезультата которой принципиально важно, аотказ выполнения ведёт к значительномуущербу (определённому в соответствии склассами тяжести отказа)Пример критической операции – остановкареактора атомной электростанции в случае егоперегрева.

Эта операция используется крайнередко, но очень важнаВыделяйте только редкие критическиеоперации, так как остальные будут провереныза счёт их использования сразу во многихсценариях выполнения программы193.2 Нечастые операцииНечастые операции – те которые бы непроверялись в случае равномерногораспределения тестовых сценариев из-заочень маленькой вероятности ихиспользованияУстановите порог вероятностииспользования операции. Хороший выборего значения равен отношению 0.5 кколичеству новых тестовых сценариевВыделите по одному тестовому сценариюдля всех операций с вероятностью нижепорогового значения20Пример (1)Число тестовых сценариев: 500Первая версия программы.

Все сценарии новыеПусть в программе есть одна критическаяоперация. Выделяем для ей проверки 2 сценарияРассчитываем пороговое значение вероятностииспользования: 0.5 / 500 = 0.001Пусть число операций с вероятностью нижепороговой равно двум. Выделяем по тесту накаждую из нихРаспределяем оставшиеся сценарии 500 - (2+2) =496 между остальными операциями всоответствии с их вероятностями использования21Пример (2)Вероятности операций для нормальногорежима функционированияНечастыеоперациис вероятностьюниже пороговойКритическая операция22Пример (2)Вероятности операций для нормальногоРаспределяемрежима функционированиясценарии всоответствии свероятностямиНечастыеоперациис вероятностьюниже пороговойКритическая операция234. Задание тестовыхсценариев (1)Простое определение:Тестовый сценарий – спецификацияпрогона в виде перечисления имёнвходных переменных и их значенийЛучшее определение:Тестовый сценарий – случайиспользования, описанный в терминахтестовых входных данных, условийвыполнения и ожидаемых результатовСлучаи использования должны бытьописаны до начала разработки тестовых24сценариев4.

Задание тестовыхсценариев (2)Обычное описание случаяиспользования включает:Имя случая использованияИнициаторЦельUse CaseActorПредусловияРезультат (Постусловия)Детальное описаниеИсключения и альтернативные Use-Case Definitionпути выполнения25Тестовые сценарииДля каждого случая использованиядолжно быть создано не меньше двухсценариев:Один для штатного выполнения, другой –для отказаМожет создаваться и большееколичество сценариев, покрывающихисключения и альтернативные путивыполнения265. Добавление нового сценария внабор тестов программы (1)Набор тестов обычно состоит из старыхсценариев (оставшихся после выходапредыдущих версия программ) и новыхсценариев (для добавленных функций)Для каждого режима функционированияпрограммы необходимо разработать свойпрофиль функционирования теста,отличающийся от профиля программы:Редким операциям уделяется больше вниманияДобавлены новые операции275.

Добавление нового сценария внабор тестов программы (2)Для описания профиля функционированиятеста для заданного режима начните с:Режима и профиля функционирования(для первой версии программы)Режима и профиля функционирования теста(для последующих версий программы)Измените вероятности операций с учётомновых редких критических операцийИзмените вероятности вновь добавленныхопераций с учётом взаимного влиянияопераций друг на друга28Тестовая процедураТестовая процедура – программа,которая устанавливает переменныеокружения и вызывает случайныетестовые сценарии в случайныемоменты времениПодготавливается по одной тестовойпроцедуре для каждого режимафункционирования29Как описать тестовыйсценарий?Для заданной операции определите наборызначений прямых входных переменных, длякоторых программа будет вести себя поодному сценариюТогда тестовый сценарий можно описатькак:Комбинацию значений входных переменныхВремя их передачи на вход программеЕсли число выделенных комбинацийпревосходит число доступных сценариев, тосценарии должны создаваться только для ихчасти30Как создать тестовыйсценарийНа основе пользовательских сценариев ислучаев использования2.

На базе классов эквивалентности1.3.На базе граничных условий4.Подготовка одного теста для класса операцийПрограмма, которая не работает на простыхусловиях, не работает и на граничных условияхНа основе диаграммы изменениясостояний311. Классы эквивалентностиГруппа сценариев «эквивалентна» если: Все они проверяют одну операцию Если один сценарий может найтиошибку, остальные скорее всего тожесмогут Если один сценарий не может найтиошибку, остальные – тоже не смогут Они используют одинаковый наборвходных переменных и влияют назначения одинакового набора32выходных переменныхЗамечание (1)Не забывайте о классахэквивалентности для некорректныхвходных данныхПример:Пусть программа принимает на вход любоецелое число между 1 и 99Тогда существует 4 класса эквивалентности:Целые числа между 1 и 99 (корректный ввод)Любое целое число меньше 1 (некорректныйввод)Любое целое число больше 99 (некорректныйввод)Не целое число (некорректный ввод)33Замечание (2)Обращайте внимание на диапазонзначений переменныхПример:Пусть программа принимает на вход любоецелое число между 1 и 99Тогда существует 4 класса эквивалентности:Сделайте тест для очень больших значенийПроверьте небольшие отрицательные значения,так как знак может обрабатываться некорректно34Замечание (3)Проверяйте переполнение стекарекурсивных программПример:Пусть программа осуществляет рекурсивныйобход дерева в глубинуПроверьте корректность её работы на большомдереве, вытянутом в список35Замечание (4)Если входные данные принадлежат кодной группе, то все числа из этойгруппы должны включаться в одинкласс эквивалентностиПример:Пусть программа просит пользователя ввестиимяПрограмма должна корректно принимать любыебуквы алфавита в любом регистреПопытайтесь ввести однобуквенное или оченьдлинное имяПроверьте корректность обработки символов неиз таблицы ASCII36Замечание (5)Обращайте внимание назависимости между входнымипеременнымиПример:Путь программа принимает на входзначения трёх углов треугольникаПопытайтесь ввести углы, сумма которых неравна 180 градусам372.

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