Организация процесса
  тестирования ПО


          Петренко Ольга QA Team Leader
Немного о себе
   Донецкий университет интеллекта
    (кафедра программного обеспечения
    интеллектуальных систем)
   Специалист по тестированию ПО,
    SoftLine (Киев), 1.5 года
   QA Team Leader, QuartSoft, 1.5
    года
Email: olga@quartsoft.com
Skype: petr_olya
Тестирование. Что это?
• Тестирование программного обеспечения — процесс
  исследования программного обеспечения (ПО) с целью
  получения информации о качестве продукта.

• Баг (bug) — это отклонение фактического результата (actual
  result) от ожидаемого результата (expected result). Т.е.
  программа не делает то, что должна или делает, что не
  должна.

• Кто такой тестер (тестировщик)? Это человек, в
  профессиональные обязанности которого входит
  обнаружение, локализация и отслеживание различных
  ошибок в программе, описание их самих, а также шагов для
  их воспроизведения. Это специалист, который способен
  рассматривать проблему с точки зрения пользователя.
Что такое качество ПП
• Отсутствие «ошибок» (bugs) в продукте?
• Соответствие требованиям?
• Пригодность к использованию?
       Составляющие цены этого самого
                КАЧЕСТВА?
• Цена сбоев - затратами на выявление и исправление
  ошибок и выхода из строя.
• Цена оценки качества — издержки на контроль качества:
  издержки на тестирование продукта.
• Цена превентивных усилий — затраты на обучение, на
  проектирование процесса, на планирование качества.
Зачем нужно
               тестирование?
                                   • Повысить качество
                                     продукта
                                   • Оценить статус продукта
                                   • Сократить затраты на
                                     разработку
                                   • Сократить затраты на
                                     поддержку выпущенного
                                     продукта
                                   • …




Тестирование не повышает качество ПП, но может поспособствовать!
Кому нужно тестирование?
        • Тестировщику?
        • Разработчику
           – Качественное заведение дефектов
           – Своевременное заведение дефектов
           – Предоставление требуемой
             информации
        • PM
           – Реальная картина готовности проекта;
           – Точное планирование;
           – Приемлемые проекту сроки.
        • Заказчику
        • Требуемое тестовое покрытие
           – Понимание пользователя, юз-кейзов,
             приоритетов;
           – Следование бюджету.
Кому и как помогает
  тестирование?
        • Помогаем разработчикам
        исправлять баги (качественное
        заведение)
        • Помогаем руководству принимать
        решения (наглядная отчётность)
        • Помогаем бизнесу (не пропуская
        критичные баги)
        •…

        Результаты работы тестировщика
        = помощь другим участникам
        проекта!
Кто должен тестировать?

             Разработчик?

             Заказчик?

             Пользователи?
Кто должен тестировать?

               Тестировщик –
           тестированием должны
           заниматься специально
           подготовленные люди!
Почему тестировщик не может
  отвечать за качество ПО
• Тестировщик не может обеспечивать
  качество работы других участников
  проекта
• Тестировщик не вносит изменения в код
• Тестировщик, как правило, не может
  организационно повлиять на решения об
  исправлении ошибок
• Тестировщик не управляет ресурсами
  проекта
• Тестировщик не управляет бюджетом проекта
• И как следствие, тестировщик не отвечает
  за качество ПО
Кто отвечает за качество?
• В проекте – менеджер проекта
• В подразделении разработчиков –
  руководитель подразделения
• На уровне компании –первое лицо
  компании
    В их руках ресурсы, бюджет, право на принятие
     решений
QA, QC, Testing
     • Тестирование (TESTING) — это
       «контроль качества» (поиск
       ошибок и дефектов)
     • Контроль качества (QUALITY
       CONTROL) – это измерение
       качества продукта
     • Обеспечение качества
       (QUALITY ASSURANCE) – это
       измерение и управление
       качеством процесса, который
       используется для создания
       качества продукта (или
       качественного продукта).
Виды тестирования
Уровни тестирования
        •   Модульное тестирование (Unit
            testing) позволяет проверить
            функционирование отдельно
            взятого элемента системы. Что
            считать элементом – модулем
            системы определяется контекстом.

        •   Интеграционное тестирование
            (Integration testing) – процесс
            проверки взаимодействия между
            программными
            компонентами/модулями.

        •   Системное тестирование
            (System testing) Системное
            тестирование охватывает целиком
            всю систему.
Функциональное
        тестирование
• Функциональное (ручное)
  тестирование - Основной вид
  тестирования, направленный на проверку
  всех требований.

• Регрессионное тестирование
  (regression testing) – тестирование,
  позволяющее убедиться в том, что
  изменения, внесенные с целью
  исправления обнаруженных ошибок, не
  породили новых.
Нефункциональное
  тестирование
       Тестирование
         производительности
         (performance testing) -
         тестирование, которое
         проводится с целью
         определения, как быстро
         работает система или её
         часть под определённой
         нагрузкой.
Нефункциональное
  тестирование
          Нагрузочное
            тестирование (load
            testing) – тестирование
            приложения при
            больших нагрузках,
            например, веб-сайта
            при предельных
            нагрузках, чтобы
            определить, при каком
            количестве
            подключений система
            не сможет выполнять
            свой функционал или
            будет это делать с
            недопустимым уровнем
            производительности.
Тестовые Артефакты
       •   План тестирования (Test Plan) - это документ
           описывающий весь объем работ по тестированию,
           начиная с описания объекта, стратегии,
           используемые для его тестирования, методики и
           необходимые ресурсы, с графиком выполнения
           запланированных работ, до необходимого в процессе
           работы оборудования, специальных знаний, а также
           оценки рисков с вариантами их разрешения.
       •   Набор тест кейсов и тестов (Test Case & Test suite) -
           это последовательность действий, по которой можно
           проверить соответствует ли тестируемая функция
           установленным требованиям.
       •   Чек лист (Check List) - Чек-лист (он же проверочный
           список) - это просто список пунктов, которые нужно
           обязательно проверить, например, перечень всех
           функций системы.
       •   Дефекты / Баг Репорты (Bug Reports / Defects) - это
           документы, описывающие ситуацию или
           последовательность действий приведшую к
           некорректной работе объекта тестирования, с
           указанием причин и ожидаемого результата.
Спасибо за
внимание!



 Вопросы?

Testing

  • 1.
    Организация процесса тестирования ПО Петренко Ольга QA Team Leader
  • 2.
    Немного о себе  Донецкий университет интеллекта (кафедра программного обеспечения интеллектуальных систем)  Специалист по тестированию ПО, SoftLine (Киев), 1.5 года  QA Team Leader, QuartSoft, 1.5 года Email: olga@quartsoft.com Skype: petr_olya
  • 3.
    Тестирование. Что это? •Тестирование программного обеспечения — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта. • Баг (bug) — это отклонение фактического результата (actual result) от ожидаемого результата (expected result). Т.е. программа не делает то, что должна или делает, что не должна. • Кто такой тестер (тестировщик)? Это человек, в профессиональные обязанности которого входит обнаружение, локализация и отслеживание различных ошибок в программе, описание их самих, а также шагов для их воспроизведения. Это специалист, который способен рассматривать проблему с точки зрения пользователя.
  • 4.
    Что такое качествоПП • Отсутствие «ошибок» (bugs) в продукте? • Соответствие требованиям? • Пригодность к использованию? Составляющие цены этого самого КАЧЕСТВА? • Цена сбоев - затратами на выявление и исправление ошибок и выхода из строя. • Цена оценки качества — издержки на контроль качества: издержки на тестирование продукта. • Цена превентивных усилий — затраты на обучение, на проектирование процесса, на планирование качества.
  • 5.
    Зачем нужно тестирование? • Повысить качество продукта • Оценить статус продукта • Сократить затраты на разработку • Сократить затраты на поддержку выпущенного продукта • … Тестирование не повышает качество ПП, но может поспособствовать!
  • 6.
    Кому нужно тестирование? • Тестировщику? • Разработчику – Качественное заведение дефектов – Своевременное заведение дефектов – Предоставление требуемой информации • PM – Реальная картина готовности проекта; – Точное планирование; – Приемлемые проекту сроки. • Заказчику • Требуемое тестовое покрытие – Понимание пользователя, юз-кейзов, приоритетов; – Следование бюджету.
  • 7.
    Кому и какпомогает тестирование? • Помогаем разработчикам исправлять баги (качественное заведение) • Помогаем руководству принимать решения (наглядная отчётность) • Помогаем бизнесу (не пропуская критичные баги) •… Результаты работы тестировщика = помощь другим участникам проекта!
  • 8.
    Кто должен тестировать? Разработчик? Заказчик? Пользователи?
  • 9.
    Кто должен тестировать? Тестировщик – тестированием должны заниматься специально подготовленные люди!
  • 10.
    Почему тестировщик неможет отвечать за качество ПО • Тестировщик не может обеспечивать качество работы других участников проекта • Тестировщик не вносит изменения в код • Тестировщик, как правило, не может организационно повлиять на решения об исправлении ошибок • Тестировщик не управляет ресурсами проекта • Тестировщик не управляет бюджетом проекта • И как следствие, тестировщик не отвечает за качество ПО
  • 11.
    Кто отвечает закачество? • В проекте – менеджер проекта • В подразделении разработчиков – руководитель подразделения • На уровне компании –первое лицо компании В их руках ресурсы, бюджет, право на принятие решений
  • 12.
    QA, QC, Testing • Тестирование (TESTING) — это «контроль качества» (поиск ошибок и дефектов) • Контроль качества (QUALITY CONTROL) – это измерение качества продукта • Обеспечение качества (QUALITY ASSURANCE) – это измерение и управление качеством процесса, который используется для создания качества продукта (или качественного продукта).
  • 13.
  • 14.
    Уровни тестирования • Модульное тестирование (Unit testing) позволяет проверить функционирование отдельно взятого элемента системы. Что считать элементом – модулем системы определяется контекстом. • Интеграционное тестирование (Integration testing) – процесс проверки взаимодействия между программными компонентами/модулями. • Системное тестирование (System testing) Системное тестирование охватывает целиком всю систему.
  • 15.
    Функциональное тестирование • Функциональное (ручное) тестирование - Основной вид тестирования, направленный на проверку всех требований. • Регрессионное тестирование (regression testing) – тестирование, позволяющее убедиться в том, что изменения, внесенные с целью исправления обнаруженных ошибок, не породили новых.
  • 16.
    Нефункциональное тестирование Тестирование производительности (performance testing) - тестирование, которое проводится с целью определения, как быстро работает система или её часть под определённой нагрузкой.
  • 17.
    Нефункциональное тестирование Нагрузочное тестирование (load testing) – тестирование приложения при больших нагрузках, например, веб-сайта при предельных нагрузках, чтобы определить, при каком количестве подключений система не сможет выполнять свой функционал или будет это делать с недопустимым уровнем производительности.
  • 18.
    Тестовые Артефакты • План тестирования (Test Plan) - это документ описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, используемые для его тестирования, методики и необходимые ресурсы, с графиком выполнения запланированных работ, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения. • Набор тест кейсов и тестов (Test Case & Test suite) - это последовательность действий, по которой можно проверить соответствует ли тестируемая функция установленным требованиям. • Чек лист (Check List) - Чек-лист (он же проверочный список) - это просто список пунктов, которые нужно обязательно проверить, например, перечень всех функций системы. • Дефекты / Баг Репорты (Bug Reports / Defects) - это документы, описывающие ситуацию или последовательность действий приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.
  • 19.