Надёжность ПО (All in one) (2014) (1158540), страница 12
Текст из файла (страница 12)
Подсчёт числа новых сценариевМетодология:Число тестовых сценариев зависит от:Времени:(доступное время доступные люди)/(среднее время создания сценария)Стоимости:(доступный бюджет) / (средний расход на созданиесценария)Число выбирается как минимальное израссчитанных значений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.
Граничные условияПроверьте, корректны лиустановленные на диапазоныграничные условияПроверьте, могут ли нестрогие знакибыть заменены на строгие и наоборотПроверьте корректность ограничениячисла итераций циклов...38ПримерыПусть программа ожидает вводапрописной буквы в диапазоне A-ZПроверьте корректность её работы насимволах непосредственно перед ‘A’ исразу после ‘Z’Пусть программа ожидает ввода строгозаданного числа параметровПопытайтесь ввести на один параметрменьше и больше393. Визуальное изменениесостояния программыКаждое взаимодействие с программой(установка входного параметра, выборпункта из меню, …) изменяет состояниепрограммыПроверьте все рутинные операции, которыебудет совершать пользовательПроверьте любые конфигурации, которые могуткак-то повлиять на поведение программыВыберете случайно несколькодругих операций40Документирование отказаЗапишите полный набор входящихпараметров, на которых программаотказалаСоздайте тестовый сценарий,способный воспроизвести отказНайдите класс эквивалентныхтестовых сценариевСозданный сценарий впоследствииможет быть использован в качестверегрессионного41Что необходимо для успешноготестирования?Планирование тестированияТехнологии тестированияСредства тестированияУправление тестированиемОбучение построению тестовЭффективность тестовКонтроль качества тестовВзаимодействие с пользователями42Диаграмма оценкитестированияУспешностьтестированияоцениваетсяна основании8параметров.•43Планирование тестированияСоответствует ли план тестирования целямпроекта и требованиям, которые к немупредъявляются?Вовлечены ли пользователи системы впроцесс создания плана тестирования?Включает ли он рекомендациипользователей?Изменился ли план тестирования послеизменения требований к программе?Содержит ли план описание требований кпрограммному обеспечению? Согласны липользователи с этими требованиями?44Технологии тестированияСуществует ли подробнаядокументация по используемымтехнологиям тестирования? Ведутся литесты в соответствии с этойтехнологией?Покрывают ли используемыетехнологии тестирования весьнеобходимый спектр мероприятий?Ведётся ли разработка механизмовулучшения технологий тестирования?Участвует ли команда в их разработке?45Средства тестированияИспользуются ли автоматизированныесредства для генерации и повторногоиспользования тестовых данных?Правильно ли выбраны средстватестирования для данного программногообеспечения?Умеют ли разработчики тестов пользоватьсядоступными средствами тестирования?Учитываются ли в тестовом планехарактеристики средств тестирования?Существует ли возможность полученияконсультации специалистов по работе сконкретными средствами тестирования? 46УправлениеВыделено ли достаточное количестворесурсов на выполнение заявленноготестового плана?Происходили ли ротации в составекоманды тестирования на протяженииразработки проекта?Правильно ли распределены ресурсымежду отделами разработки ПО и еготестированием?Соблюдаются ли командойтестирования существующиетехнологии?47ОбучениеПредусмотрено ли обучение командытестирования работе с новымисредствами?Завершено ли обучение команды доначала процесса тестирования?Разбирается ли команда втеоретических основах технологийтестирования? Понимают ли они зачемпроводятся те или иные мероприятия?Обладают ли члены командыдостаточными знаниями для анализа48результатов тестирования?ЭффективностьУчитываются ли классы тяжести отказов вовремя разработки тестов для ихобнаружения?Используются ли средства подсчётастатистики результатов тестирования?Учитывают ли выделенный бюджет исоставленный план возможные отклонения?Принимается ли во вниманиеэффективность использования средствавтоматизированного тестирования?Учитывается ли вероятность ошибки,подсчитанная на основе предыдущейстатистики?49Контроль качества тестированияПроводятся ли мероприятия понедопущению повторения совершённыхкомандой тестирования ошибок?Проверяется ли разработанный плантестирования на соответствиесуществующим стандартам?Предусмотрены ли способы проверкивыполнения плана тестирования?Ведётся ли регулярная отчётность?Собираются ли резюмирующие внутренниеотчёты об общей эффективноститестирования в процессе разработки ПО?50Тестирование ипользователиПредоставляется ли пользователямудобный способ выражения своихзамечаний по поводу использованияпродукта?Обладают ли пользователидостаточными знаниями для оценкифронта работ по тестированию?Ознакомлены ли пользователи спланом тестирования? Одобрен ли имисуществующий план?51Спасибо за внимание!52НАДЁЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯЛекция 12:Проведение тестирования.Анализ данных оботказах для принятия решенийВМиК МГУ им.