Lecture 08 1/23/2016 9:18:00 AM Test Management. В этой лекции мы поговорим о том, как организуется тестирование. Как происходит управление тестированием и какие ключевые моменты принимаются во внимание при принятии решений. Risk and Testing Начнём с рассмотрения того как определение рисков влияет на ход тестирования. Невозможно говорить об управлении тестированием без того, чтобы оценить риски. Под Риском понимается фактор, который в будущем может привести к негативным последствиям Выражается ввиде «степени вляияния» и «вероятности»: УРОВЕНЬ РИСКА = ВЕРОЯТНОСТЬ ПРОЯВЛЕНИЯ х СТЕПЕНЬ ВЛИЯНИЯ (в случае проявления) Если бы не было рисков, то не было бы необходимости в тестировании. Риски оцениваются в двух ситуациях. Для определения «рисков проекта» и «рисков продукта». Project risks (Риски проекта) Управляя тестированием проекта test leader основывается на рисках проекта. Риски могут повлиять на качество и своевременность предоставления продукта. В риски проекта входят: 1. Проблемы/перебои поставщика a. Невозможность third-party компании предоставить необходимую часть вовремя (или полная невозможность предоставления) b. Несоответсвие acceptance criteria, описаном в контракте 2. Organizational factors a. Нехватка квалификации команды b. Органгизацционные проблемы (реструктуризация, смена менеджмента) 3. Проблемы специалистов a. Проблемы определения правильных требований к продукту b. Уровень команды разработчиков и тестирования Для каждого риска определяется вероятность проявления риска, степень влияния (что будет если риск будет иметь место), а также действия по «смягчению» проявления рисков (уменьшение вероятности проявления рисков, уменьшение влияния рисков) Например, если существует риск того, что сторонний разработчик станет банкротом во время разработки проекта, тест менеджер должен проанализировать финансовое состояние стороннего поставщика и определить вероятность такого события. Например, оценить степень вероятности банкротства как 3 балла в диапазоне от 1 до 5 (1 – высокий риск, 5 – низкий). Влияние на проект такого события – очень высокое. Выставляется 1. Таким образом УРОВЕНЬ РИСКА: 3 х 1 = 1 1 Lecture 08 1/23/2016 9:18:00 AM Оценив риски принимается решение. Например, отказаться от услуг стороннего производителя. Или постоянно контролировать финансовое состояние сторонней компании. Как говорилось в начале курса, все риски описываются в тест плане. Product risks (риски продукта) При планировании и выборе тестов тест-лидер определяет риски продукта – области, потенциально содержащие ошибки. Такие области могут повлиять на качество прождукта. Примерами рисков продукта могут быть: 1. Плохие requirements (приводят к неопределённостям в реализации продукта) 2. Плохие качественные характеристики продукта (например, защищённость, стабильность, производительность) 3. Программа не соответствует требованиям и предоставляет функциональность, не предусмотренную функиональность. Выявление рисков продукта позволяет определить, когда именно начинать тестирование в процессе разработки. Например, риск плохих спецификаций может быть уменьшен с помощью формальных ревью (static testing) как только requirements были задокументированы. Определение рисков продукта также позволяет определить объём тестирования на каждый компонент программы или системы в целом. Уменьшение рисков продукта также может распространяться на действия не относящиеся непосредственно к тестированию. Например, в случае предоставления плоходокументированных спецификаций, вероятно, предпочтительней будет заменить Business Analyst, чем многократно возвращать спецификации на доработку. Применение подхода по определению рисков продукта позволит: 1. Определить техники тестирования 2. Степень/глубину тестирования (чем выше риск, тем больше будет покрытие тестирования) 3. Провести приоретизирование запланированых тестов с целью выявления критических ошибок на самых раниях стадиях тестирования 4. Определить действия, которые помогли бы уменьшить риски (например, провести трейнинги членов команды) Для того, чтобы убедиться, что вероятность появления ошибок минимизирована, подход по определению рисков продукта также включает в себя: 1. Постоянное отслеживание новых рисков. (например, появление новых багов) 2. Переоценивание известных рисков (например, благодаря привентивным действиям существующие риски могли быть существенно уменьшены или полностью устранены) Test organization (организация тестирования) Подтема: независимое тестирование. 2 Lecture 08 1/23/2016 9:18:00 AM Под независимым тестированием подразумивается тестирование не девлопером, создавшим код. Проведение независимого тестирования возможно улучшить результативность. <тестирование препочтительно проводить с помощью специальных людей, не авторов кода. Психолонический момент. Создатель считает, что всё что было сделано – необходимо и правильно. Тестер же наоборот ожидает, что любой предоставленый на проверку компонент содержит ошибки.> Изменение уровня независимости тестирования (чем ниже, тем больше уровень назависимости): 1. Девелопер 2. Тестер, работающий в плотном взаимодействии с девелопером 3. Отдельная команда тестирования внутри организации 4. Специализированые тестеры внутри организации (security tester, performance) 5. Cторонняя организация по тестированию Конечно, у более назависимого тестирования есть и минусы. Чем выше независимость, тем больше вероятность ошибок в тестировании из-за незнания. Возможно смешение уровней независимости применяемых в тестировании. Например, часть тестирования может осуществляться на стороне заказчика, а основная масса тестирования в сторонней организации. Распишем некоторые плюсы и минусы независимого тестирования: Плюсы: 1. Тестер видит больше ошибок, чем больше уровень независимости 2. Тестер более объективен 3. Тестер концентрируется на предоставленом продукте больше, чем на том, что как кажется девелоперу он реализовал 4. Тестер не делает допущений относительно качества продукта Минусы: 1. Тестер изолирован от девлоперов. Тестирование основано в большей степени на документации продукта. 2. Уменьшение отвественности девелопера. Независимые тестеры найдут. Задачи тест-лидера и тестера Мы остановимся на этих двух должностях в комманде QA (как было сказано в лекции №2, в команду QA входит больше должностей). Типичными задачами тест-лидера могут быть: 1. Координирование плана тестирования с project manager’ами 2. Создание и анализ стратегий тестирования 3. Планирование создания тестов 4. Управление подготовкой и исполнением тестов 5. Изменение плана тестирования, основываясь на результатах предыдущих тестов 6. Оценка общего прогрессе тестирования 7. Создание репорта по тестированию Типичными задачами тестера могуть быть: 3 Lecture 08 1. 2. 3. 4. 5. 6. 1/23/2016 9:18:00 AM Анализ и изучение спецификаций Создание тестов основываясь на спецификациях Настройка среды тестирования (или может быть отдельный член команды) Подготовка материала необходимого для тестирования Выполнение тестов Просмотр тестов выполненых другими членами команды Test approaches Подход в тестировании (или стратегия тестирования) определяет как будут организовываться тесты. Существует множество подходов: 1. Аналитический подход. Тестирование основывается на рисках и тестирование направляется в области с наибольшими рисками 2. Методический подход. Основывается на выявленых ошибках, на общем качестве продукта. 3. Динамический подход. Сюда входит экплоративное тестирование. Тестирование менее распланировано. 4. Консультативный подход. Область тестирования определяется основываясь на советах экспертов внутри и вне команды 5. Регрессионый подход. Подразумивает многократное использование тестовых материалов, расширенную автоматизацию. Подходы комбинируются по мере необходимости. На выбор подхода могут повлиять следующие факторы: 1. Цена ошибки и вероятность появления ошибки. (экплоративный – меньше вероятность) 2. Опыт и навыки членов команды 3. Цель. Например, целью может быть найти только критические ошибки Test estimation Определение сроков и ресурсов. Существует два подхода: 1. Основаный на замерах 2. Основаный на экспертах Подход основаный на замерах Подход по определению необъодимых ресурсов основывается на собранных данных от предыдущих или схожих проектах. Это может быть информация: 1. Количество проверенных условий 2. Количество тест-кейсов 3. Количество выполненых тест-кейсов 4. Время, затраченное на выполнение тестов 5. Количество найденых ошибок Имея такие данные можно достаточно точно рассчитать необходимое время и ресуры для тестирования. 4 Lecture 08 1/23/2016 9:18:00 AM Подход основаных на экспертах В этом подходе для определения сроков и ресурсов используется опыт членов команды (экспертах) Экспертами могут быть: 1. Эксперты по бизнесу 2. Девелоперы 3. Архитектор 4. Любой член команды, обладающий опытом тестирования схожего продукта Методы определения ресурсов с помощью экспертов: 1. Раздача спецификаций и сбор предположительных оценок. И последующая финальная оценка одним человеком 2. Раздача спецификаций экспертам для формирования индивидуального мнения у каждого и затем организация общего митинга и обсуждения. 5