Надёжность ПО (All in one) (2014) (1158540), страница 11
Текст из файла (страница 11)
сток кода,интервал разработки в 18 месяцев) составляетоколо 1 человеко-месяцаОдин и тот же профиль функционированияможет быть использован (с минимальнымиизменениями) разными версиями однойпрограммы без увеличения стоимости59Построение профиляфункционирования1.2.3.4.5.6.Выявить режимы функционированияВыявить инициатора операцииВыбрать представлениеПостроить списокфункций и операцийОпределить частоты использованиякаждой операцииЗадать вероятности использованиякаждой операции, разделив частоты наобщее число вызовов601.
Режим функционирования (1)Определить все возможные режимыфункционирования и выбрать только наиболееважные на основании таких критериев как:Время (время года, день недели, время дня)Тип пользователя (покупатель или пользователь)Опыт пользователя (новичок или эксперт)Условия работы (режим перегрузки, обычный)Ограничения функциональностиКритичность (режим остановки атомных станций)611. Режим функционирования (2)Примеры:Время (часы пика и простоя телефонной станции)Различные типы пользователей (пользователь,системный администратор, …)Опыт пользователя (использование различных наборовкоманд новичками и экспертами в системередактирования видео)Ограничения функциональности (такие операции каквызов справки в банкомате или защита соединения втранзакционной системе должны быть доступнывсегда)622.
Инициаторы операцийВозможные инициаторы(субъекты из схем случаев использования):Пользователи систем (любой, кто инициируетсобытие, включая системного администратора ипользователей)Внешние системы (другие системы,взаимодействующие с разрабатываемой системой)Собственные подсистемы (задачи поддержки иадминистрирования: аудит, резервное копированиеданных, …)633. Выбор представленияИспользуйте табличное представление есликаждой операции соответствует небольшоеколичество атрибутовИспользуйте графическое представление еслибольшинство операций описываетсянесколькими атрибутамиНа практике может быть удобнымиспользование смешанного представления иликонвертации одного представления в другое64Пример представленияПусть для разрабатываемого приложениявыполняется следующее:80% используют систему для личных нужд, 20% - дляработы.20% пользователей подписаны на бесплатныеобновления в течение года, 5% - в течение 3х лет.Остальные на обновление не подписаны.90% пользователей установило обновлениебезопасности, остальные 10% этого не сделали.Каким будет функциональный профильсистемы?654.
Список операцийРазбейте каждый режимфункционирования на отдельныеоперации.1. Число операций2. Явные и неявные операции3. Изначальный список операций4. Переменные окружения5. Финальные список операций664.1 Число операцийСтоимость подсчёта надёжности и тестированияпрямо пропорциональна общему числуоперацийОбычно от нескольких десятков до сотенЧисло операций увеличивается вместе сразмером проекта, числом режимовфункционирования, числом ключевых входныхпеременных, …Обычно лучше оставить только те операции,которые покрывают все значительноотличающиеся виды обработки674.2 Явные или неявныеоперации (1)Ключевая входная переменная - входнаяпеременная сразу для нескольких операций, чьёзначение важно для возможности отличать этиоперации между собойНеявный профиль выражается как множествоподпрофилей, каждый из которых включаетключевую входную переменную исоответствующую ей вероятностьЯвный профиль – множество наборов значенийдля всех ключевых переменныхОбычно профиль легче выразить в неявнойформе684.2 Явные или неявныеоперации (2)Пример: неявный профильВходная переменная AВходная переменная BзначениевероятностьЗначениеВероятность0.60.30.1B1B2B30.70.20.10.120.060.02A1B3A2B3A3B3A1A2A3Пример: явный профиль:A1B1A2B1A3B10.420.210.07A1B2A2B2A3B20.060.030.01694.3 Изначальный списокоперацийИзначальный список операций – пробныйсписок, обычно разделённый по режимамфункционирования и инициаторам операцийИсточники, которые могут быть полезны присоставлении списка начальных операций:Требования к системе(основной источник)Случаи использования, модели работыДиаграммы процесса работыЧерновики инструкций для пользователейПредыдущие версии программыПрототипы704.4 Переменные окруженияПеременные окружения описывают условия,влияющие на процесс выполнения программыПример: сетевой траффик, конфигурацияоборудования и операционной системыНекоторые переменные окружения могутотображаться на режимы функционированияПеречислите все переменные окружения, которыемогут привести к разной реакции программы, азатем выберете из них те, чьё влияние на поведениепрограммы наиболее велико714.5 Финальный списокопераций (1)Финальный список операций основан насужении изначального списка операций спомощью следующих критериев:Режим функционированияПеременные окруженияКлючевые входные переменныеЗависимости между переменнымиЕсли между отдельными операциямисуществует связь (одна операция происходит,если происходит другая), то лучше объединитьэти операции724.5 Финальный списокопераций (2)Между функциями и операциями могутпоявиться значительные отличияНекоторые функции (решающие несвязанныезадачи) могут отображаться на одни и те жеоперации (реализующие разную обработку)Пример: Перемещение объекта в памяти(функция) может быть отображена в операциисоздания, копирования и удаления735.
Частоты операций (1)Частоты использования операций строятсянезависимо для каждого режимафункционирования на основе данныхсистемного журнала, ручной сборкиданных и опытаЕсли на этой стадии обнаруживаютсясвязанные операции, их лучше объединить745. Частоты операций (2)Пример: Система управления звонками756. Вероятности операцийВероятности операций определяются с помощьюделения индивидуальных частот операций наобщее число их вызовов.76ДокументацияРежимфункционированияИнициатор / ключеваявходная переменная /Переменная окруженияСписокоперацийЧастота /вероятностьоперации1.2.3.1.2.1.2.3.4.77Спасибо за внимание!78НАДЁЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯЛекция 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.