Александр Александров -- Надёжный тест-дизайн...

31
Надежный тест-дизайн Александр Александров УЦ Luxoft

Upload: sqadays8

Post on 16-Nov-2014

25.595 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

Надежный тест-дизайн

Александр АлександровУЦ Luxoft

Page 2: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

2

Немного о себе

1963-1999 – Вычислительный центр Московского Государственного университета им. М.В. Ломоносова (студент, сотрудник)

1999-2005 – Luxoft (руководитель группы тестирования, тест-менеджер)

2006-2007 – Auriga (директор по качеству)

С 2008 – Luxoft (эксперт по управлению качеством ПО)

C 2010 – эксперт ISTQB

Кандидат физико-математических наук, доцент, старший научный сотрудник

Сертифицированный инструктор университета Carnegie Mellon по тематике Quality Assurance

Page 3: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

3

Опыт работы

Более 30 лет работы в области тестирования и обеспечения качества (МГУ, Luxoft, Auriga)

Более 5 лет работы в области управления качеством (Luxoft, Auriga)

Опыт cертификации ISO 9001 (Luxoft), CMM, CMMI (Luxoft, Auriga)

Опыт внедрения процессов в рамках модели CMMI (Luxoft, Auriga)

Сертификат обучения Project Management от Project Management Institute (2000)

Сертификат обучения Introduction to Capability Maturity Model Integration v. 1.2 от ProceXpert (2007)

Page 4: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

4

Функциональное тестирование

Программа как совокупность функций– Проверить, как работает каждая функция отдельно– Проверить, как функции взаимодействуют друг с другом– Проверка навигации

Соответствие программного продукта предъявляемым функциональным требованиям– Все ли требования реализованы– Все ли требования реализованы правильно– Нет ли лишнего– Адекватная ли диагностика

Функциональные требования vs. Функциональное тестирование– Функциональные требования: определить что как должно работать– Функциональное тестирование: определить что не работает или

работает не так как должно Ориентируемся на ввод, обработку и выдачу данных

– Выводятся ожидаемые результаты в ответ на правильно вводимые данные

– Адекватная реакция на некорректные данные (соответствующие сообщения об ошибках)

Page 5: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

5

Структура тест-плана

Уникальный идентификатор История изменений Разделы по типам тестирования Тестовые сценарии Тесты Ожидаемые результаты Связь с требованиями

– Может не выделяться в отдельный раздел, а указываться для каждого сценария

– Может быть использована матрица покрытия Классификация дефектов Критерии оценки качества

Page 6: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

6

Этапы разработки тест-плана

1. Разработка плана тестирования– Тест менеджер поручает тест-проектировщику начать разработку плана тестирования – Тест-проектировщик разрабатывает методику тестирования продукта и определяет

структуру плана тестирования – Тест-проектировщик оформляет каждый тестовый сценарий– Тест-проектировщик согласовывает с тест-менеджером разработанный план

2. Детализация плана тестирования– По окончании работ по проектированию системы, а также при каждом изменении

требований тест менеджер поручает тест-проектировщику доработать план тестирования

– При использовании средств автоматизации тестирования тест менеджер поручает тест-проектировщику подготовку набора тестовых скриптов

– Если необходимо, тест менеджер поручает тест-проектировщику разработку тестовых данных

– Тест менеджер согласует с руководителем проекта подготовленный план тестирования3. Корректировка плана тестирования

– При обнаружении неточностей, неполноты и ошибок в ходе тестирования тест-проектировщик консультирует тестировщиков и дорабатывает план тестирования

– Тест-менеджер принимает решение о необходимости согласования новой версии плана тестирования

Page 7: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

7

Характеристики хорошего тест-плана

Обоснованная вероятность выявления ошибки Набор тестов не должен быть избыточным Тест должен быть лучшим в своей категории Не слишком сложен и не слишком прост Некорректное поведение программы проявляется с достаточной

очевидностью

Page 8: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

8

Матрица покрытия требований тестовыми сценариями

Оценка и отслеживание покрытия является важной частью процесса тестирования

Мы должны знать какие требования покрыты или не покрыты тестовыми сценариями

Покрытие тестами сложных систем трудно отслеживать без систематической оценки и измерений

Состоит из списка всех требований и тестовых сценариев, которые используются для проверки того, как реализованы эти требования

Также важно знать приоритетность и критичность требований. Часто бывает полезным для наиболее критичных требований делать более детальную проверку.

Page 9: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

9

Domain testing

Работа с программным продуктом на уровне обрабатываемых данных

– Определить все данные, с которыми работает программа

– Определить, какие данные надо протестировать

– Определить какие данные надо тестировать в комбинации Включает:

– Декомпозицию

– Определение классов эквивалентности

– Анализ граничных значений

– Обработку ошибок

Page 10: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

10

Domain testing

Классы эквивалентности - множество похожих входных данных, которые работают с приложением одинаково

Например, для калькулятора в качестве класса входных данных можно рассматривать множество всех неотрицательных чисел от 0 до MAXINT.

Неверные случаи– множество всех значений <0– множество всех значений > MAXINT– множество букв и нечисловых данных

Page 11: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

11

Domain testing

Группа тестов является классом эквивалентности, если выполнены следующие условия:

– Все тесты предназначены для выявления одной и той же ошибки

– Если один из тестов выявит ошибку, остальные, скорее всего, тоже это сделают

– Если один из тестов не выявит ошибки, остальные, скорее всего, тоже этого не сделают

Page 12: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

12

Domain testing

Практические критерии определения классов:

– Тесты включают значения из одних и тех же данных

– Для их проведения выполняются одни и те же операции программы

– В результате всех тестов формируются значения из одних и тех же выходных данных

– Либо ни один из тестов не вызывает выполнения блока обработки ошибок программы, либо выполнение этого блока называется всеми тестами группы

Page 13: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

13

Domain testing

Поиск классов эквивалентности

– Учитывать классы, охватывающие заведомо неверные или недопустимые входные данные

– Представить перечень классов в виде таблицы или плана

– Определить диапазоны числовых значений

– Выяснить, какие значения принимают поля и параметры с конечным множеством значений

– Проанализировать возможные результаты выборов из списков и меню

Page 14: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

14

Domain testing

Поиск классов эквивалентности

– Установить переменные, значения которых могут быть равными

– Установить классы значений, зависящих от времени

– Определить, на какие действия программа отвечает эквивалентными событиями

– Продумать варианты операционной среды

Page 15: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

15

Domain testing

Какие тесты выбирать для классов

– Определить, сколько значений взять из каждого класса эквивалентности

– Зависит от размера класса необходимо привести характерные примеры

из множества

– Зависит от времени количество должно быть разумным

– Зависит от наличия автоматизации

Page 16: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

16

Domain testing

Граничные значения - множества значений, лежащих на границе допустимых входных значений или радом с ней

MAXINT MAXINT + 1 MAXINT - 1 Строка, состоящая из MAXCHAR символов Пустая строка

Благодаря проверке граничных условий можно найти много ошибок

Page 17: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

17

Domain testing

Граничные значения - рекомендации

– Проверять все классы эквивалентности

– Особенно граничные значения -- наибольшее, наименьшее, наискорейшее, наикратчайшее, самое быстрое, самое громкое и пр. значения класса.

– Некорректные неравенства (такие, как > вместо >=) приводят к ошибкам только на границах.

– Программа, которая отказывается работать на неграничных значения, обычно падает на границах тоже.

Page 18: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

18

Domain testing

Тестовые сценарии должны включать комбинации верных и неверных входных данных для всех классов эквивалентности и граничных условий

Проверьте все наиболее вероятные последовательности действий пользователей

Если действия пользователя в одном режиме могут воздействовать на представление данных или набор предоставляемых программой возможностей в другом режиме, протестируйте эту зависимость

Необходимо поработать с программой в произвольном режиме

Page 19: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

19

Domain testing

Обработка ошибок

– Распознана ли ошибка

– Как она обработана

– Соответствует ли ошибке выданное сообщение

– Действия программы после сообщения об ошибке

Page 20: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

20

Основные особенности ревью

Артефакты изучают не те люди, которые их разрабатывали

Квалифицированный взгляд со стороны

Должна быть мотивация участников ревью

Очень действенный метод, позволяющий отловить весьма трудноуловимые ошибки

Наряду с проектной документацией по методикам STR может тестироваться и исходный код и прочие документы

Page 21: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

21

Роли для формальной инспекции

Модератор (moderator)– Руководит процессом– Составляет расписание– Проводит инспекцию– Составляет отчет по ее результатам– Отслеживает внесение изменений

Автор (author)– Отвечает на вопросы в процессе инспекции– Ищет ошибки наравне с другими

Page 22: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

22

Роли для формальной инспекции

Чтец (reader)– Изучает и описывает команде продукт или его раздел

Секретарь (recorder)– Классифицирует и записывает ошибки и вопросы

(роль может быть совмещена с ролью модератора)

Инспектор (inspector)– Старается найти ошибки в продукте (эту роль

фактически выполняют все участники команды)

Page 23: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

23

Плотность обнаруженных дефектов– Среднее число обнаруженных дефектов на страницу

документа– Дефекты делятся на серьезные (влияющие на

выполнение проекта) и несерьезные (оформительские)

Производительность ревью– Среднее число страниц, обработанных рецензентом за

единицу времени (1 час)

Анализируется попадание в статистически достоверный диапазон

Метрики статического тестирования

Page 24: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

24

Задания - Перечень действий

Разработка системных требований Ревью системных требований Разработка планов тестирования Ревью планов тестирования

Page 25: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

25

Задания - Перечень артефактов

Системные требования Результаты ревью системных требований План(ы) тестирования Матрица покрытия требований тестовыми сценариями

Page 26: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

26

Задание 1 - Решение квадратного уравнения

Программа получает на вход три вещественных числа и интерпретирует их как коэффициенты квадратного уравнения

Результатом работы программы являются два числа – корни этого квадратного уравнения

Page 27: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

27

Задание 2 - Распознавание треугольника

Программа получает на вход три натуральных числа и интерпретирует их как длины сторон треугольника

Результатом работы программы является сообщение о том, является ли треугольник неравносторонним, равнобедренным или равносторонним

Page 28: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

28

Задание 3 - Калькулятор

Программа получает на вход три целых числа Результатом работы программы является целое

число, равное сумме введенных целых чисел

Page 29: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

29

Задание 4 - Банкомат

Банкомат должен выполнять следующие операции:

–Прием пластиковой карты

–Проверку ПИН-кода

–Выдачу наличных

–Выдачу чека с информацией об остатке на счете

Page 30: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

30

Задание 5 - Web-сайт библиотеки

Библиотека должна позволять:

–Ведение реестра книг

–Выдачу и возврат книг

–Одновременную работу большого числа пользователей

Page 31: Александр Александров -- Надёжный тест-дизайн (мастер-класс)

31

Спасибо за внимание!

Вопросы?