SlideShare a Scribd company logo
1 of 31
Надежный тест-дизайн


     Александр Александров
           УЦ Luxoft
Немного о себе


 1963-1999 – Вычислительный центр Московского
 Государственного университета им. М.В. Ломоносова
 (студент, сотрудник)
 1999-2005 – Luxoft (руководитель группы
 тестирования, тест-менеджер)
 2006-2007 – Auriga (директор по качеству)
 С 2008 – Luxoft (эксперт по управлению качеством ПО)
 C 2010 – эксперт ISTQB
 Кандидат физико-математических наук, доцент,
 старший научный сотрудник
 Сертифицированный инструктор университета
 Carnegie Mellon по тематике Quality Assurance           2
Опыт работы


 Более 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)

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

   Программа как совокупность функций
    – Проверить, как работает каждая функция отдельно
    – Проверить, как функции взаимодействуют друг с другом
    – Проверка навигации
   Соответствие программного продукта предъявляемым функциональным
    требованиям
    – Все ли требования реализованы
    – Все ли требования реализованы правильно
    – Нет ли лишнего
    – Адекватная ли диагностика
   Функциональные требования vs. Функциональное тестирование
    – Функциональные требования: определить что как должно работать
    – Функциональное тестирование: определить что не работает или
      работает не так как должно
   Ориентируемся на ввод, обработку и выдачу данных
    – Выводятся ожидаемые результаты в ответ на правильно вводимые
      данные
    – Адекватная реакция на некорректные данные (соответствующие
      сообщения об ошибках)

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

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




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

1. Разработка плана тестирования
     – Тест менеджер поручает тест-проектировщику начать разработку плана тестирования
     – Тест-проектировщик разрабатывает методику тестирования продукта и определяет
          структуру плана тестирования
       – Тест-проектировщик оформляет каждый тестовый сценарий
       – Тест-проектировщик согласовывает с тест-менеджером разработанный план
2.   Детализация плана тестирования
       – По окончании работ по проектированию системы, а также при каждом изменении
          требований тест менеджер поручает тест-проектировщику доработать план
          тестирования
       – При использовании средств автоматизации тестирования тест менеджер поручает тест-
          проектировщику подготовку набора тестовых скриптов
       – Если необходимо, тест менеджер поручает тест-проектировщику разработку тестовых
          данных
       – Тест менеджер согласует с руководителем проекта подготовленный план тестирования
3.   Корректировка плана тестирования
       – При обнаружении неточностей, неполноты и ошибок в ходе тестирования тест-
          проектировщик консультирует тестировщиков и дорабатывает план тестирования
       – Тест-менеджер принимает решение о необходимости согласования новой версии
          плана тестирования




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

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




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

   Оценка и отслеживание покрытия является важной частью процесса
    тестирования
   Мы должны знать какие требования покрыты или не покрыты тестовыми
    сценариями
   Покрытие тестами сложных систем трудно отслеживать без
    систематической оценки и измерений
   Состоит из списка всех требований и тестовых сценариев, которые
    используются для проверки того, как реализованы эти требования
   Также важно знать приоритетность и критичность требований. Часто
    бывает полезным для наиболее критичных требований делать более
    детальную проверку.




                                                                        8
Domain testing

 Работа с программным продуктом на уровне обрабатываемых
    данных
    – Определить все данные, с которыми работает программа
    – Определить, какие данные надо протестировать
    – Определить какие данные надо тестировать в комбинации
   Включает:
    – Декомпозицию
    – Определение классов эквивалентности
    – Анализ граничных значений
    – Обработку ошибок




                                                              9
Domain testing

  Классы эквивалентности - множество похожих
  входных данных, которые работают с
  приложением одинаково
     Например, для калькулятора в качестве
      класса входных данных можно рассматривать
      множество всех неотрицательных чисел от 0
      до MAXINT.
     Неверные случаи
      – множество всех значений <0
      – множество всех значений > MAXINT
      – множество букв и нечисловых данных


                                                  10
Domain testing

  Группа тестов является классом эквивалентности,
  если выполнены следующие условия:
  – Все тесты предназначены для выявления одной
    и той же ошибки
  – Если один из тестов выявит ошибку, остальные,
    скорее всего, тоже это сделают
  – Если один из тестов не выявит ошибки,
    остальные, скорее всего, тоже этого не сделают




                                                     11
Domain testing

  Практические критерии определения классов:
   – Тесты включают значения из одних и тех же
    данных
  – Для их проведения выполняются одни и те же
    операции программы
  – В результате всех тестов формируются
    значения из одних и тех же выходных данных
  – Либо ни один из тестов не вызывает
    выполнения блока обработки ошибок
    программы, либо выполнение этого блока
    называется всеми тестами группы


                                                 12
Domain testing


 Поиск классов эквивалентности
  – Учитывать классы, охватывающие заведомо
   неверные или недопустимые входные данные
 – Представить перечень классов в виде таблицы или
   плана
 – Определить диапазоны числовых значений
 – Выяснить, какие значения принимают поля и
   параметры с конечным множеством значений
 – Проанализировать возможные результаты выборов
   из списков и меню


                                                     13
Domain testing


 Поиск классов эквивалентности
  – Установить переменные, значения которых могут
   быть равными
 – Установить классы значений, зависящих от времени
 – Определить, на какие действия программа отвечает
   эквивалентными событиями
 – Продумать варианты операционной среды




                                                      14
Domain testing



  Какие тесты выбирать для классов
   – Определить, сколько значений взять из каждого
     класса эквивалентности
   – Зависит от размера класса
      необходимо привести характерные примеры
       из множества
   – Зависит от времени
      количество должно быть разумным
   – Зависит от наличия автоматизации

                                                     15
Domain testing


  Граничные значения - множества значений,
     лежащих на границе допустимых входных
     значений или радом с ней
        MAXINT
        MAXINT + 1
        MAXINT - 1
        Строка, состоящая из MAXCHAR символов
        Пустая строка
    Благодаря проверке граничных условий можно
     найти много ошибок


                                                  16
Domain testing

  Граничные значения - рекомендации
   – Проверять все классы эквивалентности
   – Особенно граничные значения -- наибольшее,
     наименьшее, наискорейшее, наикратчайшее,
     самое быстрое, самое громкое и пр. значения
     класса.
   – Некорректные неравенства (такие, как > вместо
     >=) приводят к ошибкам только на границах.
   – Программа, которая отказывается работать на
     неграничных значения, обычно падает на
     границах тоже.


                                                     17
Domain testing


  Тестовые сценарии должны включать комбинации
     верных и неверных входных данных для всех
     классов эквивалентности и граничных условий
    Проверьте все наиболее вероятные
     последовательности действий пользователей
    Если действия пользователя в одном режиме
     могут воздействовать на представление данных
     или набор предоставляемых программой
     возможностей в другом режиме, протестируйте
     эту зависимость
    Необходимо поработать с программой в
     произвольном режиме

                                                    18
Domain testing


  Обработка ошибок
   – Распознана ли ошибка
   – Как она обработана
   – Соответствует ли ошибке выданное сообщение
   – Действия программы после сообщения об
    ошибке




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



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

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

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

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

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


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


 Модератор (moderator)
    – Руководит процессом
    – Составляет расписание
    – Проводит инспекцию
    – Составляет отчет по ее результатам
    – Отслеживает внесение изменений
   Автор (author)
    – Отвечает на вопросы в процессе инспекции
    – Ищет ошибки наравне с другими




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


  Чтец (reader)
     – Изучает и описывает команде продукт или его раздел
    Секретарь (recorder)
     – Классифицирует и записывает ошибки и вопросы (роль
       может быть совмещена с ролью модератора)
  Инспектор (inspector)
     – Старается найти ошибки в продукте (эту роль
       фактически выполняют все участники команды)




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


   Плотность обнаруженных дефектов
   – Среднее число обнаруженных дефектов на страницу
       документа
   –   Дефекты делятся на серьезные (влияющие на
       выполнение проекта) и несерьезные (оформительские)


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


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

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

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




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

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




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

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




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

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




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

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




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


 Банкомат должен выполнять следующие
 операции:
 – Прием пластиковой карты
 – Проверку ПИН-кода
 – Выдачу наличных
 – Выдачу чека с информацией об остатке на счете




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

 Библиотека должна позволять:
  – Ведение реестра книг
  – Выдачу и возврат книг
  – Одновременную работу большого числа
   пользователей




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

     Вопросы?




                       31

More Related Content

What's hot

QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
 
тестирование по стратегии черного ящика
тестирование по стратегии черного ящикатестирование по стратегии черного ящика
тестирование по стратегии черного ящикаvyacheslavmaslov
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 
7 принципов эффективного тестирования
7 принципов эффективного тестирования7 принципов эффективного тестирования
7 принципов эффективного тестированияak-itconsulting.com
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancevAlexei Lupan
 
Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"OdessaQA
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нтAlexei Lupan
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйDataArt
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Alexei Lupan
 
Артефакты тестирования: быть или не быть?
Артефакты тестирования: быть или не быть?Артефакты тестирования: быть или не быть?
Артефакты тестирования: быть или не быть?Maksim Grinevich
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииDeutsche Post
 
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionSqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionAlexei Lupan
 
2.3 Тестирование: процесс, роли, артефакты
2.3 Тестирование: процесс, роли, артефакты2.3 Тестирование: процесс, роли, артефакты
2.3 Тестирование: процесс, роли, артефактыNatalia Odegova
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?SQALab
 
Severity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеSeverity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеDeutsche Post
 

What's hot (20)

лекция3 QA
лекция3 QAлекция3 QA
лекция3 QA
 
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
 
QA Лекция2
QA Лекция2QA Лекция2
QA Лекция2
 
тестирование по стратегии черного ящика
тестирование по стратегии черного ящикатестирование по стратегии черного ящика
тестирование по стратегии черного ящика
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
 
7 принципов эффективного тестирования
7 принципов эффективного тестирования7 принципов эффективного тестирования
7 принципов эффективного тестирования
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancev
 
Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нт
 
05ka-nov
05ka-nov05ka-nov
05ka-nov
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр Трибушный
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
Артефакты тестирования: быть или не быть?
Артефакты тестирования: быть или не быть?Артефакты тестирования: быть или не быть?
Артефакты тестирования: быть или не быть?
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
 
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionSqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
 
Istqb lesson 4
Istqb lesson 4Istqb lesson 4
Istqb lesson 4
 
2.3 Тестирование: процесс, роли, артефакты
2.3 Тестирование: процесс, роли, артефакты2.3 Тестирование: процесс, роли, артефакты
2.3 Тестирование: процесс, роли, артефакты
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
Severity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеSeverity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятное
 

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

Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайнSQALab
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011etyumentcev
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Technopark
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Technopark
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
Модуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаМодуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаYana Brodetski
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rusMaxim Shaptala
 
технология и отладка по (47)
технология и отладка по (47)технология и отладка по (47)
технология и отладка по (47)romachka_pole
 
Автоматизация.pptx
Автоматизация.pptxАвтоматизация.pptx
Автоматизация.pptxMadirimovShohrux
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийSQALab
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
 
TMPA-2013 Itsykson: Java Program Analysis
TMPA-2013 Itsykson: Java Program AnalysisTMPA-2013 Itsykson: Java Program Analysis
TMPA-2013 Itsykson: Java Program AnalysisIosif Itkin
 
9.1 resource analysis.templ
9.1   resource analysis.templ9.1   resource analysis.templ
9.1 resource analysis.templNatalia Odegova
 
Test management
Test managementTest management
Test managementQA Guards
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Technopark
 

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

Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайн
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
Модуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаМодуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проекта
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
технология и отладка по (47)
технология и отладка по (47)технология и отладка по (47)
технология и отладка по (47)
 
Автоматизация.pptx
Автоматизация.pptxАвтоматизация.pptx
Автоматизация.pptx
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложений
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
 
План тестирования
План тестированияПлан тестирования
План тестирования
 
TMPA-2013 Itsykson: Java Program Analysis
TMPA-2013 Itsykson: Java Program AnalysisTMPA-2013 Itsykson: Java Program Analysis
TMPA-2013 Itsykson: Java Program Analysis
 
9.1 resource analysis.templ
9.1   resource analysis.templ9.1   resource analysis.templ
9.1 resource analysis.templ
 
Test management
Test managementTest management
Test management
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
 

More from sqadays8

Александр Александров -- Дефектные дефекты
Александр Александров -- Дефектные дефектыАлександр Александров -- Дефектные дефекты
Александр Александров -- Дефектные дефектыsqadays8
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?sqadays8
 
Михаил Мериин -- Размышления об аутсорсинге
Михаил Мериин  -- Размышления об аутсорсингеМихаил Мериин  -- Размышления об аутсорсинге
Михаил Мериин -- Размышления об аутсорсингеsqadays8
 
Юрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границЮрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границsqadays8
 
Никита Налютин -- Тестирование систем электронной торговли ценными бумагами
Никита Налютин -- Тестирование систем электронной торговли ценными бумагамиНикита Налютин -- Тестирование систем электронной торговли ценными бумагами
Никита Налютин -- Тестирование систем электронной торговли ценными бумагамиsqadays8
 
Наталья Руколь -- Карьера в тестировании
Наталья Руколь -- Карьера в тестированииНаталья Руколь -- Карьера в тестировании
Наталья Руколь -- Карьера в тестированииsqadays8
 
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...sqadays8
 
Михаил Павлов -- Отвечает ли тестировщик за качество?
Михаил Павлов -- Отвечает ли тестировщик за качество?Михаил Павлов -- Отвечает ли тестировщик за качество?
Михаил Павлов -- Отвечает ли тестировщик за качество?sqadays8
 
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...sqadays8
 
Евгения Фирсова -- Нерелизное тестирование
Евгения Фирсова -- Нерелизное тестированиеЕвгения Фирсова -- Нерелизное тестирование
Евгения Фирсова -- Нерелизное тестированиеsqadays8
 
Денис Бесков -- Послание аналитиков тестировщикам
Денис Бесков -- Послание аналитиков тестировщикамДенис Бесков -- Послание аналитиков тестировщикам
Денис Бесков -- Послание аналитиков тестировщикамsqadays8
 
Владимир Вахлов -- Тестирование производительности всерьёз
Владимир Вахлов -- Тестирование производительности всерьёзВладимир Вахлов -- Тестирование производительности всерьёз
Владимир Вахлов -- Тестирование производительности всерьёзsqadays8
 
Анна Кербель -- Risk driven testing
Анна Кербель -- Risk driven testingАнна Кербель -- Risk driven testing
Анна Кербель -- Risk driven testingsqadays8
 
Андрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексе
Андрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексеАндрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексе
Андрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексеsqadays8
 
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...sqadays8
 
Александр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестированииАлександр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестированииsqadays8
 
Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?
Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?
Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?sqadays8
 

More from sqadays8 (17)

Александр Александров -- Дефектные дефекты
Александр Александров -- Дефектные дефектыАлександр Александров -- Дефектные дефекты
Александр Александров -- Дефектные дефекты
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
 
Михаил Мериин -- Размышления об аутсорсинге
Михаил Мериин  -- Размышления об аутсорсингеМихаил Мериин  -- Размышления об аутсорсинге
Михаил Мериин -- Размышления об аутсорсинге
 
Юрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границЮрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границ
 
Никита Налютин -- Тестирование систем электронной торговли ценными бумагами
Никита Налютин -- Тестирование систем электронной торговли ценными бумагамиНикита Налютин -- Тестирование систем электронной торговли ценными бумагами
Никита Налютин -- Тестирование систем электронной торговли ценными бумагами
 
Наталья Руколь -- Карьера в тестировании
Наталья Руколь -- Карьера в тестированииНаталья Руколь -- Карьера в тестировании
Наталья Руколь -- Карьера в тестировании
 
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
 
Михаил Павлов -- Отвечает ли тестировщик за качество?
Михаил Павлов -- Отвечает ли тестировщик за качество?Михаил Павлов -- Отвечает ли тестировщик за качество?
Михаил Павлов -- Отвечает ли тестировщик за качество?
 
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
 
Евгения Фирсова -- Нерелизное тестирование
Евгения Фирсова -- Нерелизное тестированиеЕвгения Фирсова -- Нерелизное тестирование
Евгения Фирсова -- Нерелизное тестирование
 
Денис Бесков -- Послание аналитиков тестировщикам
Денис Бесков -- Послание аналитиков тестировщикамДенис Бесков -- Послание аналитиков тестировщикам
Денис Бесков -- Послание аналитиков тестировщикам
 
Владимир Вахлов -- Тестирование производительности всерьёз
Владимир Вахлов -- Тестирование производительности всерьёзВладимир Вахлов -- Тестирование производительности всерьёз
Владимир Вахлов -- Тестирование производительности всерьёз
 
Анна Кербель -- Risk driven testing
Анна Кербель -- Risk driven testingАнна Кербель -- Risk driven testing
Анна Кербель -- Risk driven testing
 
Андрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексе
Андрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексеАндрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексе
Андрей Кузьмичев -- Танки в лунапарке – нагрузочное тестирование в яндексе
 
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
 
Александр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестированииАлександр Орлов -- Лидерство в тестировании
Александр Орлов -- Лидерство в тестировании
 
Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?
Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?
Эвелина Тананаева -- Мобильные технологии: тестирование - с чего начать?
 

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

  • 1. Надежный тест-дизайн Александр Александров УЦ Luxoft
  • 2. Немного о себе  1963-1999 – Вычислительный центр Московского Государственного университета им. М.В. Ломоносова (студент, сотрудник)  1999-2005 – Luxoft (руководитель группы тестирования, тест-менеджер)  2006-2007 – Auriga (директор по качеству)  С 2008 – Luxoft (эксперт по управлению качеством ПО)  C 2010 – эксперт ISTQB  Кандидат физико-математических наук, доцент, старший научный сотрудник  Сертифицированный инструктор университета Carnegie Mellon по тематике Quality Assurance 2
  • 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) 3
  • 4. Функциональное тестирование  Программа как совокупность функций – Проверить, как работает каждая функция отдельно – Проверить, как функции взаимодействуют друг с другом – Проверка навигации  Соответствие программного продукта предъявляемым функциональным требованиям – Все ли требования реализованы – Все ли требования реализованы правильно – Нет ли лишнего – Адекватная ли диагностика  Функциональные требования vs. Функциональное тестирование – Функциональные требования: определить что как должно работать – Функциональное тестирование: определить что не работает или работает не так как должно  Ориентируемся на ввод, обработку и выдачу данных – Выводятся ожидаемые результаты в ответ на правильно вводимые данные – Адекватная реакция на некорректные данные (соответствующие сообщения об ошибках) 4
  • 5. Структура тест-плана  Уникальный идентификатор  История изменений  Разделы по типам тестирования  Тестовые сценарии  Тесты  Ожидаемые результаты  Связь с требованиями – Может не выделяться в отдельный раздел, а указываться для каждого сценария – Может быть использована матрица покрытия  Классификация дефектов  Критерии оценки качества 5
  • 6. Этапы разработки тест-плана 1. Разработка плана тестирования – Тест менеджер поручает тест-проектировщику начать разработку плана тестирования – Тест-проектировщик разрабатывает методику тестирования продукта и определяет структуру плана тестирования – Тест-проектировщик оформляет каждый тестовый сценарий – Тест-проектировщик согласовывает с тест-менеджером разработанный план 2. Детализация плана тестирования – По окончании работ по проектированию системы, а также при каждом изменении требований тест менеджер поручает тест-проектировщику доработать план тестирования – При использовании средств автоматизации тестирования тест менеджер поручает тест- проектировщику подготовку набора тестовых скриптов – Если необходимо, тест менеджер поручает тест-проектировщику разработку тестовых данных – Тест менеджер согласует с руководителем проекта подготовленный план тестирования 3. Корректировка плана тестирования – При обнаружении неточностей, неполноты и ошибок в ходе тестирования тест- проектировщик консультирует тестировщиков и дорабатывает план тестирования – Тест-менеджер принимает решение о необходимости согласования новой версии плана тестирования 6
  • 7. Характеристики хорошего тест-плана  Обоснованная вероятность выявления ошибки  Набор тестов не должен быть избыточным  Тест должен быть лучшим в своей категории  Не слишком сложен и не слишком прост  Некорректное поведение программы проявляется с достаточной очевидностью 7
  • 8. Матрица покрытия требований тестовыми сценариями  Оценка и отслеживание покрытия является важной частью процесса тестирования  Мы должны знать какие требования покрыты или не покрыты тестовыми сценариями  Покрытие тестами сложных систем трудно отслеживать без систематической оценки и измерений  Состоит из списка всех требований и тестовых сценариев, которые используются для проверки того, как реализованы эти требования  Также важно знать приоритетность и критичность требований. Часто бывает полезным для наиболее критичных требований делать более детальную проверку. 8
  • 9. Domain testing  Работа с программным продуктом на уровне обрабатываемых данных – Определить все данные, с которыми работает программа – Определить, какие данные надо протестировать – Определить какие данные надо тестировать в комбинации  Включает: – Декомпозицию – Определение классов эквивалентности – Анализ граничных значений – Обработку ошибок 9
  • 10. Domain testing  Классы эквивалентности - множество похожих входных данных, которые работают с приложением одинаково  Например, для калькулятора в качестве класса входных данных можно рассматривать множество всех неотрицательных чисел от 0 до MAXINT.  Неверные случаи – множество всех значений <0 – множество всех значений > MAXINT – множество букв и нечисловых данных 10
  • 11. Domain testing  Группа тестов является классом эквивалентности, если выполнены следующие условия: – Все тесты предназначены для выявления одной и той же ошибки – Если один из тестов выявит ошибку, остальные, скорее всего, тоже это сделают – Если один из тестов не выявит ошибки, остальные, скорее всего, тоже этого не сделают 11
  • 12. Domain testing  Практические критерии определения классов: – Тесты включают значения из одних и тех же данных – Для их проведения выполняются одни и те же операции программы – В результате всех тестов формируются значения из одних и тех же выходных данных – Либо ни один из тестов не вызывает выполнения блока обработки ошибок программы, либо выполнение этого блока называется всеми тестами группы 12
  • 13. Domain testing  Поиск классов эквивалентности – Учитывать классы, охватывающие заведомо неверные или недопустимые входные данные – Представить перечень классов в виде таблицы или плана – Определить диапазоны числовых значений – Выяснить, какие значения принимают поля и параметры с конечным множеством значений – Проанализировать возможные результаты выборов из списков и меню 13
  • 14. Domain testing  Поиск классов эквивалентности – Установить переменные, значения которых могут быть равными – Установить классы значений, зависящих от времени – Определить, на какие действия программа отвечает эквивалентными событиями – Продумать варианты операционной среды 14
  • 15. Domain testing  Какие тесты выбирать для классов – Определить, сколько значений взять из каждого класса эквивалентности – Зависит от размера класса  необходимо привести характерные примеры из множества – Зависит от времени  количество должно быть разумным – Зависит от наличия автоматизации 15
  • 16. Domain testing  Граничные значения - множества значений, лежащих на границе допустимых входных значений или радом с ней  MAXINT  MAXINT + 1  MAXINT - 1  Строка, состоящая из MAXCHAR символов  Пустая строка  Благодаря проверке граничных условий можно найти много ошибок 16
  • 17. Domain testing  Граничные значения - рекомендации – Проверять все классы эквивалентности – Особенно граничные значения -- наибольшее, наименьшее, наискорейшее, наикратчайшее, самое быстрое, самое громкое и пр. значения класса. – Некорректные неравенства (такие, как > вместо >=) приводят к ошибкам только на границах. – Программа, которая отказывается работать на неграничных значения, обычно падает на границах тоже. 17
  • 18. Domain testing  Тестовые сценарии должны включать комбинации верных и неверных входных данных для всех классов эквивалентности и граничных условий  Проверьте все наиболее вероятные последовательности действий пользователей  Если действия пользователя в одном режиме могут воздействовать на представление данных или набор предоставляемых программой возможностей в другом режиме, протестируйте эту зависимость  Необходимо поработать с программой в произвольном режиме 18
  • 19. Domain testing  Обработка ошибок – Распознана ли ошибка – Как она обработана – Соответствует ли ошибке выданное сообщение – Действия программы после сообщения об ошибке 19
  • 20. Основные особенности ревью  Артефакты изучают не те люди, которые их разрабатывали  Квалифицированный взгляд со стороны  Должна быть мотивация участников ревью  Очень действенный метод, позволяющий отловить весьма трудноуловимые ошибки  Наряду с проектной документацией по методикам STR может тестироваться и исходный код и прочие документы 20
  • 21. Роли для формальной инспекции  Модератор (moderator) – Руководит процессом – Составляет расписание – Проводит инспекцию – Составляет отчет по ее результатам – Отслеживает внесение изменений  Автор (author) – Отвечает на вопросы в процессе инспекции – Ищет ошибки наравне с другими 21
  • 22. Роли для формальной инспекции  Чтец (reader) – Изучает и описывает команде продукт или его раздел  Секретарь (recorder) – Классифицирует и записывает ошибки и вопросы (роль может быть совмещена с ролью модератора)  Инспектор (inspector) – Старается найти ошибки в продукте (эту роль фактически выполняют все участники команды) 22
  • 23. Метрики статического тестирования  Плотность обнаруженных дефектов – Среднее число обнаруженных дефектов на страницу документа – Дефекты делятся на серьезные (влияющие на выполнение проекта) и несерьезные (оформительские)  Производительность ревью – Среднее число страниц, обработанных рецензентом за единицу времени (1 час)  Анализируется попадание в статистически достоверный диапазон 23
  • 24. Задания - Перечень действий  Разработка системных требований  Ревью системных требований  Разработка планов тестирования  Ревью планов тестирования 24
  • 25. Задания - Перечень артефактов  Системные требования  Результаты ревью системных требований  План(ы) тестирования  Матрица покрытия требований тестовыми сценариями 25
  • 26. Задание 1 - Решение квадратного уравнения  Программа получает на вход три вещественных числа и интерпретирует их как коэффициенты квадратного уравнения  Результатом работы программы являются два числа – корни этого квадратного уравнения 26
  • 27. Задание 2 - Распознавание треугольника  Программа получает на вход три натуральных числа и интерпретирует их как длины сторон треугольника  Результатом работы программы является сообщение о том, является ли треугольник неравносторонним, равнобедренным или равносторонним 27
  • 28. Задание 3 - Калькулятор  Программа получает на вход три целых числа  Результатом работы программы является целое число, равное сумме введенных целых чисел 28
  • 29. Задание 4 - Банкомат  Банкомат должен выполнять следующие операции: – Прием пластиковой карты – Проверку ПИН-кода – Выдачу наличных – Выдачу чека с информацией об остатке на счете 29
  • 30. Задание 5 - Web-сайт библиотеки  Библиотека должна позволять: – Ведение реестра книг – Выдачу и возврат книг – Одновременную работу большого числа пользователей 30