SlideShare a Scribd company logo
Марина Широчкина - Тестирование
Тестирование
Обзорная лекция


Марина Широчкина
Руководитель группы тестирования
Введение

   Что это такое и с чем его едят?
Тестирование – процесс
    сравнения ожидаемых результатов
    с полученными.




4
Тестирование – набор
    инженерных практик, нацеленных
    на раннее обнаружение дефектов.




5
Тестирование – способ
    предоставления и получения
    обратной связи: как
    технологической, так и
    продуктовой.



6
Пример продуктовой обратной связи
    •  «Здесь нельзя грабить корованы!»
    (с) пользователь




7
Пример продуктовой обратной связи
    •  «Здесь нельзя грабить корованы!»
    (с) пользователь


    •  «Оно делает не то, что надо!»
    (с) менеджер




8
Пример продуктовой обратной связи
    •  «Здесь нельзя грабить корованы!»
    (с) пользователь


    •  «Оно делает не то, что надо!»
    (с) менеджер


    •  «Я не могу использовать разработанный
       тобой API, он не возвращает все
       необходимые данные.»
    (с) коллега-разработчик


9
Пример технической обратной связи
     •  «Поддержка продукта при такой
        архитектуре будет слишком сложна.»
     (с) системный архитектор




10
Пример технической обратной связи
     •  «Поддержка продукта при такой
        архитектуре будет слишком сложна.»
     (с) системный архитектор


     •  «Ребята, оно падает каждые полчаса, я не
        буду это поддерживать.»
     (с) системный администратор




11
Пример технической обратной связи
     •  «Поддержка продукта при такой
        архитектуре будет слишком сложна.»
     (с) системный архитектор


     •  «Ребята, оно падает каждые полчаса, я не
        буду это поддерживать.»
     (с) системный администратор


     •  «Эта реализация не выдержит
        предполагаемой нагрузки.»
     (с) кто-то битый жизнью
12
Раннее обнаружение проблем –
     залог здорового сна.




13
Уровни тестирования

        Баг лучше поймать сразу же
        после его создания.


                       Народная мудрость
Unit-тесты – тесты, проверяющие
     корректность работы отдельных
     модулей программы.




15
16
17
Входные (тестовые) 	

          данные	





        Выходные данные 	

     (полученный результат)	





18
Плюсы unit-тестов


     •  Можно запустить сразу после внесения
        изменений в код – позволяют найти дефект
        сразу после его «создания».




19
Плюсы unit-тестов


     •  Можно запустить сразу после внесения
        изменений в код – позволяют найти дефект
        сразу после его «создания».

     •  Могут служить документацией к коду.




20
Плюсы unit-тестов


     •  Можно запустить сразу после внесения
        изменений в код – позволяют найти дефект
        сразу после его «создания».

     •  Могут служить документацией к коду.

     •  Упрощают процесс рефакторинга.


21
Минусы unit-тестов



     •  Их надо писать.




22
Минусы unit-тестов



     •  Их надо писать.

     •  Их надо уметь писать.




23
Минусы unit-тестов



     •  Их надо писать.

     •  Их надо уметь писать.

     •  Их надо поддерживать.



24
Даже если все компоненты по
     отдельности работают правильно,
     то это ещё ничего не значит.




25
Интеграционные тесты – тесты,
     проверяющие корректность
     взаимодействия отдельных
     модулей друг с другом.




26
27
28
29
Плюсы интеграционных тестов
     •  Находят баги, которые не могут быть
        обнаружены unit-тестами.




30
Плюсы интеграционных тестов
     •  Находят баги, которые не могут быть
        обнаружены unit-тестами.

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




31
Минусы интеграционных тестов



     •  все минусы unit-тестов




32
Даже если все компоненты по
     отдельности работают правильно
     и корректно взаимодействуют друг
     с другом – это ещё ничего не
     значит.




33
Приёмочные тесты – тесты,
     проверяющие работоспособность
     системы целиком. В реальном
     окружении, с реальными данными,
     на реальных сценариях.




34
OS	




     Железка	

35
Плюсы приёмочных тестов
     •  Находят баги, которые не могут быть
        обнаружены unit- и интеграционными
        тестами




36
Плюсы приёмочных тестов
     •  Находят баги, которые не могут быть
        обнаружены unit- и интеграционными
        тестами
     •  Позволяют оценить работоспособность
        продукта целиком




37
Плюсы приёмочных тестов
     •  Находят баги, которые не могут быть
        обнаружены unit- и интеграционными
        тестами
     •  Позволяют оценить работоспособность
        продукта целиком
     •  На этом уровне с продуктом могут
        ознакомиться будущие пользователи




38
Минусы приёмочных тестов
     •  Самые высокоуровневые – сложнее
        локализовывать проблему




39
Минусы приёмочных тестов
     •  Самые высокоуровневые – сложнее
        локализовывать проблему

     •  Занимают больше времени




40
Минусы приёмочных тестов
     •  Самые высокоуровневые – сложнее
        локализовывать проблему

     •  Занимают больше времени

     •  Обнаруживают проблемы с некоторой
        задержкой



41
Что же выбрать?




42
Виды тестирования

       Каждому виду багов – свой вид
       тестирования
«АААА! Ничего не работает»




44
Функциональное тестирование
     – проверка работы кода/продукта
     на соответствие требованиям.
     Проверка логики работы.




45
«Не работает у части
     пользователей»




46
Конфигурационное
     тестирование на клиенте –
     проверка работоспособности на
     различных конфигурациях. Для
     веб-сайтов – в разных браузерах.




47
«Мы это выкатили, и оно
     перестало работать!»




48
Конфигурационное
     тестирование сервер-сайда –
     проверка работоспособности в
     окружении, максимально
     идентичном продакшену (железка,
     OS, утилиты, библиотеки, конфиги,
     версии).



49
«Всё сломалось, когда туда
     пришли пользователи»




50
Нагрузочное тестирование –
     проверка работоспособности под
     нагрузкой (одновременная обработка
     большого потока запросов).




51
«Работает, но страшно
     тормозит»




52
Тестирование
     производительности – проверка
     скорости работы системы.




53
Причём:
     •  Необходимо измерить длительность
        полного цикла «запрос-ответ». Оценить
        общее время, обратить внимание на
        отдельные этапы




54
Причём:
     •  Необходимо измерить длительность
        полного цикла «запрос-ответ». Оценить
        общее время, обратить внимание на
        отдельные этапы

     •  То же самое – под нагрузкой




55
Причём:
     •  Необходимо измерить длительность
        полного цикла «запрос-ответ». Оценить
        общее время, обратить внимание на
        отдельные этапы

     •  То же самое – под нагрузкой

     •  В пользовательских условиях (сетевые
        условия)

56
«Всё было хорошо, пока не
     пришли злые китайские
     хакеры»




57
Тестирование безопасности –
     об этом вам прочитают отдельную
     лекцию




58
«А как этим пользоваться?»




59
купил айфон а чо с ним делать
     где кнопки чтобы нажимать
     и как мне позвонить сереге
     а вот и он звонит и чо


60
Тестирование юзабилити –
     тестирование удобства
     использования.

     Коридорный вариант доступен
     всем.




61
«Оно работало, а потом вдруг
     упало»




62
Тестирование стабильности –
     тестирование стабильности
     работы под нагрузкой, длительное
     время.




63
Всё?




64
Ещё много…
     •  Volume тестирование
     •  Stress/Recovery тестирование
     •  Spike тестирование
     •  Localization тестирование
     •  Compatibility тестирование
     И т. д. И т. п.




65
Какие выбрать?




66
Исходя из специфики
     вашего проекта.




67
Способы тестирования




68
Ручное тестирование –
     выполнение тестов вручную
     или с помощью скриптов.
     Ручной анализ результатов.




69
Плюсы и минусы ручного подхода


     Плюсы
     •  Более информативно – замечаются
        дефекты рядом




70
Плюсы и минусы ручного подхода


     Плюсы
     •  Более информативно – замечаются
        дефекты рядом


     Минусы
     •  Долго



71
Плюсы и минусы ручного подхода


     Плюсы
     •  Более информативно – замечаются
        дефекты рядом


     Минусы
     •  Долго
     •  Дорого

72
Автоматическое тестирование –
     выполнение с помощью скриптов
     или инструментов. Оценка
     результатов проводится
     автоматически.




73
Плюсы и минусы неручного подхода
     Плюсы
     •  Удобно и легко




74
Плюсы и минусы неручного подхода
     Плюсы
     •  Удобно и легко

     Минусы
     •  Тесты нужно писать и поддерживать




75
Плюсы и минусы неручного подхода
     Плюсы
     •  Удобно и легко

     Минусы
     •  Тесты нужно писать и поддерживать
     •  Тесты выполняются «в лоб»




76
Плюсы и минусы неручного подхода
     Плюсы
     •  Удобно и легко

     Минусы
     •  Тесты нужно писать и поддерживать
     •  Тесты выполняются «в лоб»
     •  Сами тесты/скрипты/инструменты могут
        содержать баги и порождать ложные
        результаты
77
Разумная комбинация
     методов – залог успеха.




78
Инструменты	
  
      	
  
     Функциональное, приемочное тестирование:
      	
  
     Selenium (web app): http://seleniumhq.org/
     TestComplete (desktop app): http://smartbear.com/products/qa-
     tools/automated-testing-tools

     Функциональное, unit тестирование:
     подбирается под используемый язык, см http://clck.ru/4bsKa

     Нагрузочное тестирование/тестирование
     производительности:
     Яндекс.Танк: https://github.com/yandex-load/yandex-tank
     Jmeter: http://jmeter.apache.org/


79
Инструменты	
  
       	
   сымитировать плохую сеть:
     Как
       	
  
     Fiddler: http://www.fiddler2.com/fiddler2/
     Charles: http://www.charlesproxy.com/
     Утилита tc: man tc

     Большой зоопарк разнообразных браузеров:
     http://browsershots.org/




80
Марина Широчкина




          pancakyes@yandex.ru




Спасибо

More Related Content

PDF
Марина Широчкина — «Тестирование»
PDF
Марина Широчкина: Тестирование
PDF
Тестирование весна 2013 лекция 5
PDF
Software testing in practice
PPT
Тестирование инсталляторов
PPTX
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
PPTX
Introduction to Automation Testing
PPTX
Фокус тест
Марина Широчкина — «Тестирование»
Марина Широчкина: Тестирование
Тестирование весна 2013 лекция 5
Software testing in practice
Тестирование инсталляторов
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
Introduction to Automation Testing
Фокус тест

What's hot (20)

PDF
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
PPTX
Лучшие практики на практике
PPTX
Evelina Tananaeva
PPTX
Автоматизация тестирования: доступна каждому или удел избранных?
PPTX
ROCS 2 - advanced platform for automated test execution in clustered environm...
PPTX
Test Automation Wargaming SQA Days 17
PDF
5 oleg nikiforov - automating routine tasks for mobile apps testing
PPTX
Severity и Priority для неначинающих: очевидное и невероятное
PPTX
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
PPTX
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
PDF
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
PPTX
Автоматизация тестирования ролей и привилегий
PDF
Автоматическое тестирование. Моя система
PDF
Тестировщик в Agile - кто он?
PPTX
Qa Automation - отбрасываем лишнее и тестируем суть
PPSX
История HERE Maps for Windows: меняемся не изменяя качеству
PPTX
Тестируем производительность с помощью Selenium
PPTX
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
PDF
Процесс тестирования в распределенной команде
PDF
QAFest. Роль тестирования в Devops
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
Лучшие практики на практике
Evelina Tananaeva
Автоматизация тестирования: доступна каждому или удел избранных?
ROCS 2 - advanced platform for automated test execution in clustered environm...
Test Automation Wargaming SQA Days 17
5 oleg nikiforov - automating routine tasks for mobile apps testing
Severity и Priority для неначинающих: очевидное и невероятное
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
Автоматизация тестирования ролей и привилегий
Автоматическое тестирование. Моя система
Тестировщик в Agile - кто он?
Qa Automation - отбрасываем лишнее и тестируем суть
История HERE Maps for Windows: меняемся не изменяя качеству
Тестируем производительность с помощью Selenium
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
Процесс тестирования в распределенной команде
QAFest. Роль тестирования в Devops
Ad

Viewers also liked (20)

PDF
Презентация о компании для входа в федеральные сети.
PPT
Управление качеством 2
PDF
тестирование
PDF
Тестирование группового PvE
PDF
Управление качеством в Agile. Как опередить баги
PDF
Stack Overflow как повседневный инструмент разработчика
PDF
О тестирование софта: мир качества, жуков и информации. Атрощенков Сергей.
PPT
Идея!
PDF
Конференц зал АКАР
PPTX
Cristal Festival
PDF
Digital ways
PDF
Soda Digital presentation
PPTX
Digital как основа рекламных кампаний (с) Андрей Анищенко
PDF
АКАР: Условия проведения Медийного тендера
PDF
Реклама в интернете- технологии роста
PDF
инфопартнер Red apple пакеты 2012
PDF
АКАР: Условия проведения Креативного тендера
PPTX
классификация рекламных кампаний
PPTX
Direct Hit
Презентация о компании для входа в федеральные сети.
Управление качеством 2
тестирование
Тестирование группового PvE
Управление качеством в Agile. Как опередить баги
Stack Overflow как повседневный инструмент разработчика
О тестирование софта: мир качества, жуков и информации. Атрощенков Сергей.
Идея!
Конференц зал АКАР
Cristal Festival
Digital ways
Soda Digital presentation
Digital как основа рекламных кампаний (с) Андрей Анищенко
АКАР: Условия проведения Медийного тендера
Реклама в интернете- технологии роста
инфопартнер Red apple пакеты 2012
АКАР: Условия проведения Креативного тендера
классификация рекламных кампаний
Direct Hit
Ad

Similar to Марина Широчкина - Тестирование (20)

PPTX
Continious integration-Automated Testing-Solid-Agile
PDF
Enter: testing
PPT
Виталий Стрелюк
PDF
ук 03.007.02 2011
PDF
Стратегия тестирования крупного проекта в условиях Agile разработки v2
PDF
Иван Евтухович — Как перестать релизиться и начать жить
PDF
Тестирование осень 2013 лекция 5
PPTX
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
PPTX
организация и проведение тестирования
PPT
Организация тестового набора при автоматизированном функциональном тестировании
PDF
Светлана Федянина - Процесс тестирования в распределенной команде
PPTX
Тестирование ПО
PDF
Benefits of unit-testing and inversion of controll
PPT
Автоматизация тестирования как способ получения знаний
PDF
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
PPTX
Вирусное тестирование. Что-то новое в конфигурационном тестировании
PPT
лившиц владимир - независимое тестирование миф
PPTX
Автоматизация тестирования: почему умирают проекты?
PPTX
Автоматизация Тестирования - Почему умирают проекты?
PPT
Виталий Стрелюк, Постановка процесса тестирования в Agile
Continious integration-Automated Testing-Solid-Agile
Enter: testing
Виталий Стрелюк
ук 03.007.02 2011
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Иван Евтухович — Как перестать релизиться и начать жить
Тестирование осень 2013 лекция 5
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
организация и проведение тестирования
Организация тестового набора при автоматизированном функциональном тестировании
Светлана Федянина - Процесс тестирования в распределенной команде
Тестирование ПО
Benefits of unit-testing and inversion of controll
Автоматизация тестирования как способ получения знаний
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Вирусное тестирование. Что-то новое в конфигурационном тестировании
лившиц владимир - независимое тестирование миф
Автоматизация тестирования: почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?
Виталий Стрелюк, Постановка процесса тестирования в Agile

More from Yandex (20)

PDF
Предсказание оттока игроков из World of Tanks
PDF
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
PDF
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
PDF
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
PDF
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
PDF
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
PDF
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
PDF
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
PDF
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
PDF
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
PDF
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
PDF
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
PDF
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
PDF
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
PDF
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Предсказание оттока игроков из World of Tanks
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...

Марина Широчкина - Тестирование

  • 3. Введение Что это такое и с чем его едят?
  • 4. Тестирование – процесс сравнения ожидаемых результатов с полученными. 4
  • 5. Тестирование – набор инженерных практик, нацеленных на раннее обнаружение дефектов. 5
  • 6. Тестирование – способ предоставления и получения обратной связи: как технологической, так и продуктовой. 6
  • 7. Пример продуктовой обратной связи •  «Здесь нельзя грабить корованы!» (с) пользователь 7
  • 8. Пример продуктовой обратной связи •  «Здесь нельзя грабить корованы!» (с) пользователь •  «Оно делает не то, что надо!» (с) менеджер 8
  • 9. Пример продуктовой обратной связи •  «Здесь нельзя грабить корованы!» (с) пользователь •  «Оно делает не то, что надо!» (с) менеджер •  «Я не могу использовать разработанный тобой API, он не возвращает все необходимые данные.» (с) коллега-разработчик 9
  • 10. Пример технической обратной связи •  «Поддержка продукта при такой архитектуре будет слишком сложна.» (с) системный архитектор 10
  • 11. Пример технической обратной связи •  «Поддержка продукта при такой архитектуре будет слишком сложна.» (с) системный архитектор •  «Ребята, оно падает каждые полчаса, я не буду это поддерживать.» (с) системный администратор 11
  • 12. Пример технической обратной связи •  «Поддержка продукта при такой архитектуре будет слишком сложна.» (с) системный архитектор •  «Ребята, оно падает каждые полчаса, я не буду это поддерживать.» (с) системный администратор •  «Эта реализация не выдержит предполагаемой нагрузки.» (с) кто-то битый жизнью 12
  • 13. Раннее обнаружение проблем – залог здорового сна. 13
  • 14. Уровни тестирования Баг лучше поймать сразу же после его создания. Народная мудрость
  • 15. Unit-тесты – тесты, проверяющие корректность работы отдельных модулей программы. 15
  • 16. 16
  • 17. 17
  • 18. Входные (тестовые) данные Выходные данные (полученный результат) 18
  • 19. Плюсы unit-тестов •  Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания». 19
  • 20. Плюсы unit-тестов •  Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания». •  Могут служить документацией к коду. 20
  • 21. Плюсы unit-тестов •  Можно запустить сразу после внесения изменений в код – позволяют найти дефект сразу после его «создания». •  Могут служить документацией к коду. •  Упрощают процесс рефакторинга. 21
  • 22. Минусы unit-тестов •  Их надо писать. 22
  • 23. Минусы unit-тестов •  Их надо писать. •  Их надо уметь писать. 23
  • 24. Минусы unit-тестов •  Их надо писать. •  Их надо уметь писать. •  Их надо поддерживать. 24
  • 25. Даже если все компоненты по отдельности работают правильно, то это ещё ничего не значит. 25
  • 26. Интеграционные тесты – тесты, проверяющие корректность взаимодействия отдельных модулей друг с другом. 26
  • 27. 27
  • 28. 28
  • 29. 29
  • 30. Плюсы интеграционных тестов •  Находят баги, которые не могут быть обнаружены unit-тестами. 30
  • 31. Плюсы интеграционных тестов •  Находят баги, которые не могут быть обнаружены unit-тестами. •  Запускаются после сборки проекта и позволяют быстро обнаружить проблемы взаимодействия. 31
  • 32. Минусы интеграционных тестов •  все минусы unit-тестов 32
  • 33. Даже если все компоненты по отдельности работают правильно и корректно взаимодействуют друг с другом – это ещё ничего не значит. 33
  • 34. Приёмочные тесты – тесты, проверяющие работоспособность системы целиком. В реальном окружении, с реальными данными, на реальных сценариях. 34
  • 35. OS Железка 35
  • 36. Плюсы приёмочных тестов •  Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами 36
  • 37. Плюсы приёмочных тестов •  Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами •  Позволяют оценить работоспособность продукта целиком 37
  • 38. Плюсы приёмочных тестов •  Находят баги, которые не могут быть обнаружены unit- и интеграционными тестами •  Позволяют оценить работоспособность продукта целиком •  На этом уровне с продуктом могут ознакомиться будущие пользователи 38
  • 39. Минусы приёмочных тестов •  Самые высокоуровневые – сложнее локализовывать проблему 39
  • 40. Минусы приёмочных тестов •  Самые высокоуровневые – сложнее локализовывать проблему •  Занимают больше времени 40
  • 41. Минусы приёмочных тестов •  Самые высокоуровневые – сложнее локализовывать проблему •  Занимают больше времени •  Обнаруживают проблемы с некоторой задержкой 41
  • 43. Виды тестирования Каждому виду багов – свой вид тестирования
  • 44. «АААА! Ничего не работает» 44
  • 45. Функциональное тестирование – проверка работы кода/продукта на соответствие требованиям. Проверка логики работы. 45
  • 46. «Не работает у части пользователей» 46
  • 47. Конфигурационное тестирование на клиенте – проверка работоспособности на различных конфигурациях. Для веб-сайтов – в разных браузерах. 47
  • 48. «Мы это выкатили, и оно перестало работать!» 48
  • 49. Конфигурационное тестирование сервер-сайда – проверка работоспособности в окружении, максимально идентичном продакшену (железка, OS, утилиты, библиотеки, конфиги, версии). 49
  • 50. «Всё сломалось, когда туда пришли пользователи» 50
  • 51. Нагрузочное тестирование – проверка работоспособности под нагрузкой (одновременная обработка большого потока запросов). 51
  • 53. Тестирование производительности – проверка скорости работы системы. 53
  • 54. Причём: •  Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы 54
  • 55. Причём: •  Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы •  То же самое – под нагрузкой 55
  • 56. Причём: •  Необходимо измерить длительность полного цикла «запрос-ответ». Оценить общее время, обратить внимание на отдельные этапы •  То же самое – под нагрузкой •  В пользовательских условиях (сетевые условия) 56
  • 57. «Всё было хорошо, пока не пришли злые китайские хакеры» 57
  • 58. Тестирование безопасности – об этом вам прочитают отдельную лекцию 58
  • 59. «А как этим пользоваться?» 59
  • 60. купил айфон а чо с ним делать где кнопки чтобы нажимать и как мне позвонить сереге а вот и он звонит и чо 60
  • 61. Тестирование юзабилити – тестирование удобства использования. Коридорный вариант доступен всем. 61
  • 62. «Оно работало, а потом вдруг упало» 62
  • 63. Тестирование стабильности – тестирование стабильности работы под нагрузкой, длительное время. 63
  • 65. Ещё много… •  Volume тестирование •  Stress/Recovery тестирование •  Spike тестирование •  Localization тестирование •  Compatibility тестирование И т. д. И т. п. 65
  • 67. Исходя из специфики вашего проекта. 67
  • 69. Ручное тестирование – выполнение тестов вручную или с помощью скриптов. Ручной анализ результатов. 69
  • 70. Плюсы и минусы ручного подхода Плюсы •  Более информативно – замечаются дефекты рядом 70
  • 71. Плюсы и минусы ручного подхода Плюсы •  Более информативно – замечаются дефекты рядом Минусы •  Долго 71
  • 72. Плюсы и минусы ручного подхода Плюсы •  Более информативно – замечаются дефекты рядом Минусы •  Долго •  Дорого 72
  • 73. Автоматическое тестирование – выполнение с помощью скриптов или инструментов. Оценка результатов проводится автоматически. 73
  • 74. Плюсы и минусы неручного подхода Плюсы •  Удобно и легко 74
  • 75. Плюсы и минусы неручного подхода Плюсы •  Удобно и легко Минусы •  Тесты нужно писать и поддерживать 75
  • 76. Плюсы и минусы неручного подхода Плюсы •  Удобно и легко Минусы •  Тесты нужно писать и поддерживать •  Тесты выполняются «в лоб» 76
  • 77. Плюсы и минусы неручного подхода Плюсы •  Удобно и легко Минусы •  Тесты нужно писать и поддерживать •  Тесты выполняются «в лоб» •  Сами тесты/скрипты/инструменты могут содержать баги и порождать ложные результаты 77
  • 78. Разумная комбинация методов – залог успеха. 78
  • 79. Инструменты     Функциональное, приемочное тестирование:   Selenium (web app): http://seleniumhq.org/ TestComplete (desktop app): http://smartbear.com/products/qa- tools/automated-testing-tools Функциональное, unit тестирование: подбирается под используемый язык, см http://clck.ru/4bsKa Нагрузочное тестирование/тестирование производительности: Яндекс.Танк: https://github.com/yandex-load/yandex-tank Jmeter: http://jmeter.apache.org/ 79
  • 80. Инструменты     сымитировать плохую сеть: Как   Fiddler: http://www.fiddler2.com/fiddler2/ Charles: http://www.charlesproxy.com/ Утилита tc: man tc Большой зоопарк разнообразных браузеров: http://browsershots.org/ 80
  • 81. Марина Широчкина pancakyes@yandex.ru Спасибо