SlideShare a Scribd company logo
1 of 23
Введение
Принципы тестирования
   Основные понятия
   Уровни тестирования
   Виды тестирования
   Этапы тестирования
   Документация
   Техники, используемые в тестировании
   Инструменты, помогающие в тестировании
   Риски в тестировании
   Автоматизация тестирования
Тестирование программного обеспечения С.Канер,
Дж. Фолк, Е.К.Нгуен
Искусство тестирования Г.Майерс, Т.Баджетт,
К.Сандлер
http://www.protesting.ru
http://www.software-testing.ru
http://qaforums.com

http://usqb.org.ua/index.php/ru/
http://www.istqb.org
Software Testing Foundation by A.Spillner, T.Linz,
H.Schaefer
Advanced Software Testing by Rex Black
   50е годы – тестирование зародилось как
    процесс нахождения и устранения
    дефектов (debugging)
   70е годы – было предложено разграничить
    процессы тестирования (testing) и отладки
    (debugging)
   В наши дни тестирование все больше
    играет превентивную, а не реактивную роль
   Дальнейшее развитие в наших руках 
Тестирование находит
сбои в системе,
вызванные дефектом         В процессе отладки
                           программист находит
                           причину дефекта, вносит
                           корректировки и
                           удостоверяется в их
Повторное тестирование     правильности
подтверждает, что после
отладки система работает
без сбоев


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

Тестирование ПО – проверка соответствия между
реальным и ожидаемым поведением программы,
осуществляемая на конечном наборе тестов,
выбранном определенным образом.
Ошибка   Ошибка (error)– некорректный результат,
         который является результатом действий,
         выполненных или не выполненных
         человеком

         Дефект (fault or bug) – изъян в отдельном
         компоненте системы или в системе в
Дефект   целом, из-за которого данный
         компонент или система не могут
         корректно выполнять свои функции.

         Сбой (failure) – несоответствие работы
         системы требованиям к ней.
 Сбой      Дефект не всегда приводит к сбоям в
                        системе!
Программное
   обеспечение – все
     увеличивающася
  часть нашей с вами
              жизни




Ошибки в ПО могут
иметь
серьезные
последствия!
   Человеческий фактор
   Требования к функционалу
   Ограниченное время на разработку
   Сложность кода
   Комплексные системы
Повышение
качества

Уменьшение
рисков
Качество ПО – степень соответствия
характеристик, присущих программному
обеспечению, указанным требованиям к нему
и/или потребностям и ожиданиям
пользователя (клиента)
   Тестирование – это не только выполнение
    тестов
   Задачи тестировщика до выполнения тестов:
    ◦   Планирование
    ◦   Проверка документации, кода
    ◦   Определение условий тестирования
    ◦   Создание тестовых сценариев
   Задачи тестировщика после выполения тестов:
    ◦   Проверка результатов
    ◦   Оценка критериев завершения тестирования
    ◦   Последующий контроль
    ◦   Документирование тестирования и отчетность
   Определение соответствия поставляемого
    ПО условиям контракта, юридическим
    нормам
   Предоставление информации о качестве ПО
   Предоставление информации о
    функциональных и нефункциональных
    характеристиках ПО
   Оценка соответствия стандартам
    (сертификация)
              Не забываем учиться на ошибках!
   Объем тестирования зависит от:
    ◦ Уровня ожидаемого риска (технического,
      проектного, для бизнеса в целом)
    ◦ Время и бюджета проекта
    ◦ Наличия и квалификации ресурсов
    ◦ ...

       Тестирование должно предоставить
     информацию в объеме достаточном для
        принятия взвешенного решения о
    завершении этапа в разработке ПО и/или
             выпуске новой версии
   Тестирование демонстрирует наличие
    дефектов
   Исчерпывающее тестирования невозможно
   Раннее тестирование
   Дефекты имеют тенденцию скапливаться
    группами
   «Пестицидный» парадокс
   Тест ситуационно зависим
   Заблуждение об отсутствии ошибок
   Тестирование демонстрирует наличие
    дефектов
    ◦ Тестирование обнаруживает дефекты
    ◦ Тестирование не может гарантировать
      отсутствия дефектов
    ◦ Должное тестирование уменьшает вероятность
      наличия дефектов
   Исчерпывающее тестирование
    невозможно
    ◦   ПО – очень сложный продукт
    ◦   Слишком много возможных комбинаций
    ◦   Временные и бюджетные ограничения
    ◦   Важно правильно сфокусировать усилия
   Раннее тестирование
    ◦ Работы, связанные с тестированием, должны
      начинаться как можно раньше
    ◦ Чем раньше обнаружен дефект, тем дешевле
      стоит его исправить
   Дефекты имеют тенденцию скапливаться
    группами
    ◦ Небольшое количество модулей содержит
      основную массу дефектов
    ◦ Основные усилия по тестированию должны
      быть нацелены в первую очередь на такие
      «проблемные» части ПО
   Пестицидный парадокс
    ◦ Тесты «изнашиваются» и становятся
      неэффективными («старые» дефекты
      устранены)
    ◦ Необходимо обновлять старые тест-кейсы и
      создавать новые, чтобы найти «новые» дефекты
    ◦ Имеющиеся тесты нуждаются в постоянном
      совершенствовании
   Тест ситуационно зависим
    ◦ Системы, критичные в вопросах безопасности,
      тестируются не так, как обычные бизнес-
      системы
    ◦ В разных ситуациях (сферах) используются
      разные подходы, уровни формализации
      процесса, строгость в оценке критериев
      завершения тестирования
   Заблуждение об отсутствии ошибок
    ◦ Обнаружение и исправление дефектов – это
      только часть процесса тестирования
    ◦ Необходимо убедиться, что система отвечает
      требованиям и ожиданиям
    ◦ Отсутствие неисправленных дефектов не
      гарантирует их отсутствие в принципе
IntroductionPrinciples

More Related Content

What's hot

Процесс тестирования
Процесс тестированияПроцесс тестирования
Процесс тестированияAlexander Solosh
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...SQALab
 
Распределение тестировщиков по командам как один из этапов контроля качества
Распределение тестировщиков по командам как один из этапов контроля качестваРаспределение тестировщиков по командам как один из этапов контроля качества
Распределение тестировщиков по командам как один из этапов контроля качестваSQALab
 
Проблемы курсов по тестированию и специалистов, которых они выпускают
Проблемы курсов по тестированию и специалистов, которых они выпускаютПроблемы курсов по тестированию и специалистов, которых они выпускают
Проблемы курсов по тестированию и специалистов, которых они выпускаютSQALab
 
Идентификация рисков и проблем тестирования
Идентификация рисков и проблем тестированияИдентификация рисков и проблем тестирования
Идентификация рисков и проблем тестированияSQALab
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советыSQALab
 
Test labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсеTest labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсеSasha Soleev
 
Serious+performance+testing
Serious+performance+testingSerious+performance+testing
Serious+performance+testingAlexei Lupan
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleSQALab
 
Test labs 2016. Пренебрежение лучшими практиками тестирования
Test labs 2016. Пренебрежение лучшими практиками тестированияTest labs 2016. Пренебрежение лучшими практиками тестирования
Test labs 2016. Пренебрежение лучшими практиками тестированияSasha Soleev
 
ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?OdessaQA
 
Test design techniques basics
Test design techniques basicsTest design techniques basics
Test design techniques basicsArtem Bykovets
 
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QAFest
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияSQALab
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...SQALab
 
Управление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестированияУправление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестированияSQALab
 
МАСТЕР-КЛАСС. Риски тестирования
МАСТЕР-КЛАСС. Риски тестированияМАСТЕР-КЛАСС. Риски тестирования
МАСТЕР-КЛАСС. Риски тестированияSQALab
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 

What's hot (20)

Процесс тестирования
Процесс тестированияПроцесс тестирования
Процесс тестирования
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
 
Распределение тестировщиков по командам как один из этапов контроля качества
Распределение тестировщиков по командам как один из этапов контроля качестваРаспределение тестировщиков по командам как один из этапов контроля качества
Распределение тестировщиков по командам как один из этапов контроля качества
 
Проблемы курсов по тестированию и специалистов, которых они выпускают
Проблемы курсов по тестированию и специалистов, которых они выпускаютПроблемы курсов по тестированию и специалистов, которых они выпускают
Проблемы курсов по тестированию и специалистов, которых они выпускают
 
Идентификация рисков и проблем тестирования
Идентификация рисков и проблем тестированияИдентификация рисков и проблем тестирования
Идентификация рисков и проблем тестирования
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
 
Test labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсеTest labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсе
 
Serious+performance+testing
Serious+performance+testingSerious+performance+testing
Serious+performance+testing
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом Google
 
Test labs 2016. Пренебрежение лучшими практиками тестирования
Test labs 2016. Пренебрежение лучшими практиками тестированияTest labs 2016. Пренебрежение лучшими практиками тестирования
Test labs 2016. Пренебрежение лучшими практиками тестирования
 
ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?
 
Test design techniques basics
Test design techniques basicsTest design techniques basics
Test design techniques basics
 
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестирования
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
 
Управление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестированияУправление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестирования
 
презентация планов
презентация плановпрезентация планов
презентация планов
 
презентация планов
презентация плановпрезентация планов
презентация планов
 
МАСТЕР-КЛАСС. Риски тестирования
МАСТЕР-КЛАСС. Риски тестированияМАСТЕР-КЛАСС. Риски тестирования
МАСТЕР-КЛАСС. Риски тестирования
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
 

Similar to IntroductionPrinciples

Модуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаМодуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаYana Brodetski
 
тестирование по
тестирование потестирование по
тестирование поIon Griu
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестированияIgor Pozumentov
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаAlexei Lupan
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
 
Лекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыЛекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыSergey Chuburov
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rusMaxim Shaptala
 
About Testers
About TestersAbout Testers
About Testersantsh
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыSQALab
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rusMaxim Shaptala
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Technopark
 

Similar to IntroductionPrinciples (20)

Модуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаМодуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проекта
 
Test management print
Test management printTest management print
Test management print
 
тестирование по
тестирование потестирование по
тестирование по
 
Testing
TestingTesting
Testing
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчика
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Лекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыЛекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципы
 
Test design print
Test design printTest design print
Test design print
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
About Testers
About TestersAbout Testers
About Testers
 
01ka-nov
01ka-nov01ka-nov
01ka-nov
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rus
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1
 

More from QA Guards

ISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - IntruductionISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - IntruductionQA Guards
 
Terms and definitions
Terms and definitionsTerms and definitions
Terms and definitionsQA Guards
 
Independence of testing
Independence of testingIndependence of testing
Independence of testingQA Guards
 
Test design techniques
Test design techniquesTest design techniques
Test design techniquesQA Guards
 
Testing tools
Testing toolsTesting tools
Testing toolsQA Guards
 
Test automation
Test automationTest automation
Test automationQA Guards
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycleQA Guards
 
White box techniques
White box techniquesWhite box techniques
White box techniquesQA Guards
 
Reporting error
Reporting errorReporting error
Reporting errorQA Guards
 
Static testing
Static testingStatic testing
Static testingQA Guards
 
Black box techniques
Black box techniquesBlack box techniques
Black box techniquesQA Guards
 
Analysis and Design
Analysis and DesignAnalysis and Design
Analysis and DesignQA Guards
 

More from QA Guards (14)

ISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - IntruductionISTQB Foundation Level Certification - Intruduction
ISTQB Foundation Level Certification - Intruduction
 
Terms and definitions
Terms and definitionsTerms and definitions
Terms and definitions
 
Independence of testing
Independence of testingIndependence of testing
Independence of testing
 
Test design techniques
Test design techniquesTest design techniques
Test design techniques
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Test automation
Test automationTest automation
Test automation
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycle
 
White box techniques
White box techniquesWhite box techniques
White box techniques
 
Reporting error
Reporting errorReporting error
Reporting error
 
Static testing
Static testingStatic testing
Static testing
 
Black box techniques
Black box techniquesBlack box techniques
Black box techniques
 
Analysis and Design
Analysis and DesignAnalysis and Design
Analysis and Design
 
Test types
Test typesTest types
Test types
 
Test levels
Test levelsTest levels
Test levels
 

IntroductionPrinciples

  • 2. Основные понятия  Уровни тестирования  Виды тестирования  Этапы тестирования  Документация  Техники, используемые в тестировании  Инструменты, помогающие в тестировании  Риски в тестировании  Автоматизация тестирования
  • 3. Тестирование программного обеспечения С.Канер, Дж. Фолк, Е.К.Нгуен Искусство тестирования Г.Майерс, Т.Баджетт, К.Сандлер http://www.protesting.ru http://www.software-testing.ru http://qaforums.com http://usqb.org.ua/index.php/ru/ http://www.istqb.org Software Testing Foundation by A.Spillner, T.Linz, H.Schaefer Advanced Software Testing by Rex Black
  • 4. 50е годы – тестирование зародилось как процесс нахождения и устранения дефектов (debugging)  70е годы – было предложено разграничить процессы тестирования (testing) и отладки (debugging)  В наши дни тестирование все больше играет превентивную, а не реактивную роль  Дальнейшее развитие в наших руках 
  • 5. Тестирование находит сбои в системе, вызванные дефектом В процессе отладки программист находит причину дефекта, вносит корректировки и удостоверяется в их Повторное тестирование правильности подтверждает, что после отладки система работает без сбоев Тестировщик Программист
  • 6. Тестирование – это одна из техник контроля качества, включающая в себя выполнение задач по планированию работ, проектированию тестов, выполнению тестирования и анализу полученных результатов Тестирование ПО – проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом.
  • 7. Ошибка Ошибка (error)– некорректный результат, который является результатом действий, выполненных или не выполненных человеком Дефект (fault or bug) – изъян в отдельном компоненте системы или в системе в Дефект целом, из-за которого данный компонент или система не могут корректно выполнять свои функции. Сбой (failure) – несоответствие работы системы требованиям к ней. Сбой Дефект не всегда приводит к сбоям в системе!
  • 8. Программное обеспечение – все увеличивающася часть нашей с вами жизни Ошибки в ПО могут иметь серьезные последствия!
  • 9. Человеческий фактор  Требования к функционалу  Ограниченное время на разработку  Сложность кода  Комплексные системы
  • 11. Качество ПО – степень соответствия характеристик, присущих программному обеспечению, указанным требованиям к нему и/или потребностям и ожиданиям пользователя (клиента)
  • 12. Тестирование – это не только выполнение тестов  Задачи тестировщика до выполнения тестов: ◦ Планирование ◦ Проверка документации, кода ◦ Определение условий тестирования ◦ Создание тестовых сценариев  Задачи тестировщика после выполения тестов: ◦ Проверка результатов ◦ Оценка критериев завершения тестирования ◦ Последующий контроль ◦ Документирование тестирования и отчетность
  • 13. Определение соответствия поставляемого ПО условиям контракта, юридическим нормам  Предоставление информации о качестве ПО  Предоставление информации о функциональных и нефункциональных характеристиках ПО  Оценка соответствия стандартам (сертификация) Не забываем учиться на ошибках!
  • 14. Объем тестирования зависит от: ◦ Уровня ожидаемого риска (технического, проектного, для бизнеса в целом) ◦ Время и бюджета проекта ◦ Наличия и квалификации ресурсов ◦ ... Тестирование должно предоставить информацию в объеме достаточном для принятия взвешенного решения о завершении этапа в разработке ПО и/или выпуске новой версии
  • 15. Тестирование демонстрирует наличие дефектов  Исчерпывающее тестирования невозможно  Раннее тестирование  Дефекты имеют тенденцию скапливаться группами  «Пестицидный» парадокс  Тест ситуационно зависим  Заблуждение об отсутствии ошибок
  • 16. Тестирование демонстрирует наличие дефектов ◦ Тестирование обнаруживает дефекты ◦ Тестирование не может гарантировать отсутствия дефектов ◦ Должное тестирование уменьшает вероятность наличия дефектов
  • 17. Исчерпывающее тестирование невозможно ◦ ПО – очень сложный продукт ◦ Слишком много возможных комбинаций ◦ Временные и бюджетные ограничения ◦ Важно правильно сфокусировать усилия
  • 18. Раннее тестирование ◦ Работы, связанные с тестированием, должны начинаться как можно раньше ◦ Чем раньше обнаружен дефект, тем дешевле стоит его исправить
  • 19. Дефекты имеют тенденцию скапливаться группами ◦ Небольшое количество модулей содержит основную массу дефектов ◦ Основные усилия по тестированию должны быть нацелены в первую очередь на такие «проблемные» части ПО
  • 20. Пестицидный парадокс ◦ Тесты «изнашиваются» и становятся неэффективными («старые» дефекты устранены) ◦ Необходимо обновлять старые тест-кейсы и создавать новые, чтобы найти «новые» дефекты ◦ Имеющиеся тесты нуждаются в постоянном совершенствовании
  • 21. Тест ситуационно зависим ◦ Системы, критичные в вопросах безопасности, тестируются не так, как обычные бизнес- системы ◦ В разных ситуациях (сферах) используются разные подходы, уровни формализации процесса, строгость в оценке критериев завершения тестирования
  • 22. Заблуждение об отсутствии ошибок ◦ Обнаружение и исправление дефектов – это только часть процесса тестирования ◦ Необходимо убедиться, что система отвечает требованиям и ожиданиям ◦ Отсутствие неисправленных дефектов не гарантирует их отсутствие в принципе

Editor's Notes

  1. The separation of debugging from testing was initially introduced by Glenford J. Myers in 1979.[13] Although his attention was on breakage testing ("a successful test is one that finds a bug"[13][14]) it illustrated the desire of the software engineering community to separate fundamental development activities, such as debugging, from that of verification. Dave Gelperin and William C. Hetzel classified in 1988 the phases and goals in software testing in the following stagesThe separation of debugging from testing was initially introduced by Glenford J. Myers in 1979.[13] Although his attention was on breakage testing ("a successful test is one that finds a bug"[13][14]) it illustrated the desire of the software engineering community to separate fundamental development activities, such as debugging, from that of verification. Dave Gelperin and William C. Hetzel classified in 1988 the phases and goals in software testing in the following stagesThe origins of software testing can actually be traced back to the fifties, when the primary method of testing anything was debuggingIn the late seventies the approach evolved to one of destruction; basically, the testers woul break down the code to find holes or gaps in itThis method was effective but it was not until the advent of prevention oriented methodologies that we began to enjoy the benefits of more robust software applications
  2. Приходит к вам заказчик и говорит: "Хочу большую красную кнопку, которая будет делать мне хорошо"Аналитики написали требования к кнопке, дизайнеры нарисовали интерфейс, разработчики написали код, вы протестировали, нашли 42 дефекта, их исправили. Подходит РМ и спрашивает: "продукт готов?", а вы отвечаете: "ну, я 42 бага нашёл, других не вижу, но обещать естественно не могу".Продукт выпустили.Развитие событий, вариант №1:У пользователя не работает, оказывается вы многое в тестировании не учли и пропустили критичные баги. Вот он, принцип №1 в действии - то, что вы нашли 42 бага, ещё не значит, что в продукте не спрятались ещё 146.Развитие событий, вариант №2:Софт работает как часы (случилось чудо и вы НЕ пропустили ни одной ошибки), но пользователя красная кнопка счастливым не делает. Чтобы сделать ему хорошо, эта красная кнопка должна быть на самом деле зелёным текстовым полем, он просто неправильно выразился. Вот он, принцип №7 в действии - проверка продукта на соответствие требованием не гарантирует, что пользователь останется доволен
  3. Тестирование демонстрирует присутствие дефектов, а не их отсутствие : Тестирование демонстрирует, что у продукта есть недостатки, т.е. в продукте есть дефекты. Тестирование не может доказать, что программа не содержит дефектов. Должное тестирование сокращает вероятность присутствия скрытых дефектов в тестируемом объекте. Даже если проблемы найдены в процессе тестирование, это не доказывает, что дефектов в продукте нет.
  4. Исчерпывающее тестирование невозможно: Исчерпывающий тест, в котором все возможные входные данные и их комбинации предусмотрены, включая различные предусловия, невозможен. Программное обеспечение, разрабатываемое на практике, требовало бы астрономического числа тест кейсов. Поэтому каждый тест кейс – это всегда лишь образец. Вследствие этого, выполнение тестов  должно быть контролируемо с учетом рисков и приоритетов.
  5. Работы, связанные с тестированием, должны начинаться как можно раньше: Тестирование должно начинаться на ранних стадиях жизненном цикла программного обеспечения и должно фокусироваться на заданных целях. Это поспособствует более раннему нахождению дефектов.
  6. Дефекты имеют тенденцию скапливаться группами: Дефекты не распределены равномерно, они имеют свойство «собираться группами». Поэтому, если много дефектов было найдено в одном месте,  обычно еще больше дефектов могут быть обнаружены неподалеку.  Не нужно критично относиться к данному правилу
  7. “Пестицидный парадокс” (парадокс Бориса Бейзера): Если те же самые тесты выполняются снова и снова, они теряют свою эффективность. Новые, неизвестные до сих пор дефекты не будут найдены. Поэтому, чтобы сохранить эффективность тестов и победить «пестицидный парадокс»,  должны быть созданы новые тест кейсы, а старые изменены.
  8. Тест ситуационно зависим: Две различные системы не должны быть протестированы одинаковым способом. Для каждой системы критерии завершения тестирования и т.д. должны быть выбраны индивидуально.
  9. Ошибочность предположения, что отсутствие сбоев означает пригодность системы: Поиск сбоев и корректировка дефектов не гарантирует, что система в целом соответствует ожиданиям и потребностям пользователя. Вовлечение пользователей в процесс разработки на ранних стадиях и использование прототипов поспособствует избежанию проблем.