SlideShare a Scribd company logo
Промышленное тестирование
Николай Васильев
IITU Software Testing, 2014 1
Для чего мы тестируем?
IITU Software Testing, 2014 2
Для чего мы тестируем?
• Для самопроверки
– Разработчик, чтобы быть уверенным в качестве
проделанной работы
• Для сохранения имиджа
– Не показывать пользователям ерунду
– Давать пользователям то, что работает, не
обманывает ожиданий
• Предотвратить потери в деньгах
• Предотвратить вред жизни или здоровью
IITU Software Testing, 2014 3
Почему мы тестируем?
• Люди ошибаются
• Даже самая мелкая ошибка может стоить
дорого
• Разработчики не всегда проверяют свой код
– А уж тем более, не всегда делают это
эффективно
IITU Software Testing, 2014 4
Задача тестирования
• Проверить, что полезные фичи
реализованы как надо
• Проверить, что нет вредных эффектов
• Сделать это все эффективно
IITU Software Testing, 2014 5
Роли в проекте
IITU Software Testing, 2014 6
Роли в проекте
• Что такое проект?
– Ограничение по времени
– Есть определенная цель
– Есть методы ее достижения
– Есть метрики оценки успешности (KPI)
• Проекты могут быть маленькие (месяцы)
• Могут быть большие
• Могут быть бессрочные
– Состоят из подпроектов
– Мы называем их «сервисы»
IITU Software Testing, 2014 7
Роли в проекте
• Руководитель сервиса (тимлид)
• Менеджер проектов
• Разработчики
• Тестирование
• Админы (devops)
IITU Software Testing, 2014 8
Роли в проекте:
тимлид
• Руководит направлением, сервисом
• Отвечает за все проекты в направлении
• Решает межпроектные споры
• Решает внутрипроектные споры
– Если договориться с менеджером не
получилось
IITU Software Testing, 2014 9
Роли в проекте:
менеджер проекта
• Координирует проект
– Или несколько небольших
• Согласует работу участников проекта
• Согласует сроки всех задач
• Согласует приоритеты задач
IITU Software Testing, 2014 10
Роли в проекте:
разработчик
• Каждый разработчик – реализует полезные бизнес-функции
• Senior, Старший разработчик
– Знает всю техническую систему (подсистему), которая затронута
проектом
– Сам делает как правило только самые важные и ответственные
задачи
– Несет ответственность за младших разработчиков
• Разработчик
– То же самое, но знает только часть нужной системы
– Несет ответственность за свои задачи
• Junior, младший разработчик; Intern, стажер
– Не знает систему, или знает недостаточно
– Все знания получает в процессе работы
– Ответственность за его задачи несет senior
IITU Software Testing, 2014 11
Роли в проекте:
разработчик
• Рост разработчика
– Увеличение знания системы (экспертиза)
– Ответственность за свои задачи (от 0 до 100%)
– Ответственность за задачи в подсистеме,
системе (от 0 до 100%)
IITU Software Testing, 2014 12
Роли в проекте:
системный администратор
• Выкладывает готовый софт в продакшн
– Production – софт, который сейчас обслуживает
пользователей
• Следит за работоспособностью продакшна
• То же самое для тестовой среды
– С меньшим приоритетом
IITU Software Testing, 2014 13
Роли в проекте:
тестирование!
IITU Software Testing, 2014 14
Роли в проекте:
руководитель группы тестирования
• Знает всю техническую систему, которая
затронута проектом (см. Senior)
• Знает как тестировать каждый узел системы
• Оценивает риски и приоритеты
тестирования
• Согласует объем и приоритет задач на
тестирование
• Несет ответственность за качество
тестирования
IITU Software Testing, 2014 15
Роли в проекте:
тестировщик
• Знает часть сервиса и как ее тестировать
– Как правило, лучше всех в проекте (эксперт)
• Создает план на тестирование компонентов
– если нужно
• Проводит тесты
• Фиксирует дефекты, документирует
• Создает тестовую документацию (как тестируем),
если нужно
– Тест-кейсы
– Чеклисты – списки кейсов
• Дает добро (или блокирует) выкладку релиза
IITU Software Testing, 2014 16
Роли в проекте:
автоматизатор тестирования
• Тестировщик-программист
• Пишет программы, которые делают тесты
автоматически
• Когда?
– Когда вручную невозможно
– Когда вручную не эффективно
IITU Software Testing, 2014 17
Роли в проекте:
нагрузочное тестирование
• Отдельная каста
• Имитируют высокую нагрузку на сервис на
специализированной среде
• Измеряют показатели скорости и качества
ответа
– Скорость ответа приемлема
– Нет отказов
IITU Software Testing, 2014 18
Тимлид
НагрузочникРазработчик
Менеджер Тестировщик
Автоматизатор
Технический
писатель
IITU Software Testing, 2014 19
Процесс разработки и тестирования
• Разработка ведется по фичам (задачам)
• Фича, Feature – законченный элемент
системы, отдельная полезная функция
IITU Software Testing, 2014 20
Процесс разработки и тестирования
• Создается задача
– Task, issue, change request, фича, таска…
• Реализуется разработчиком
• Коммит в бранч
• Сборка, юнит-тесты (если есть)
• Код ревью
• Тестирование в бранче
• Мерж в мастер
• Сборка релиза по мастеру
IITU Software Testing, 2014 21
Процесс тестирования релиза
• Создается специальный issue
– Какие пакеты и как надо выкатить (для админов)
– Какие задачи вошли в релиз и какие есть подводные камни
(для тестирования)
• Тестирование регрессии
– Вручную при каждой сборке; один раз на релиз вручную;
каждый раз при сборке – автоматически; выборочно;
• Тестирование новых фич
– Получить спецификацию на фичу, дополнить, убрать все
неясности
• Заведение багов
• Проверка resolved – исправленных багов
• Решение о выкладке в продакшн
IITU Software Testing, 2014 22
Методы тестирования
• Тестирование по спецификации
– В явном виде может и не быть
• Исследовательское тестирование
• Бета-тестирование
• Сравнение с эталоном
IITU Software Testing, 2014 23
Технологии и средства тестирования
• Дизайн и обсуждение дизайна тестов
– Блокнот, ручка, маркер, доска
• Коммуникации
– Почта, джаббер, телефон, личные и видео
встречи
• Организация работы
– Issue-трекер, вики
IITU Software Testing, 2014 24
Технологии и средства тестирования
• Инструменты тестирования
– Браузер
– Командная строка (bash, ssh, diff)
– Текстовые редакторы
– СКВ – git, svn
– Языки программирования, среды разработки
(для автотестов)
IITU Software Testing, 2014 25
Технологии и средства тестирования
• Кастомные инструменты
– https://github.com/yandex-qatools/htmlelements
– https://github.com/allure-framework
– Различные дифферы
– Фреймворки…
• Jenkins, teamcity
• WebDriver (Selenium)
IITU Software Testing, 2014 26
Облачные технологии в
тестировании
IITU Software Testing, 2014 27
Облачные технологии в
тестировании
• Пример
https://github.com/yandex-
qatools/htmlelements-
examples/blob/master/htmlelements-junit-
example/src/test/java/my/company/web/Searc
hingByRequestTest.java
IITU Software Testing, 2014 28
IITU Software Testing, 2014 29
Облачные технологии в
тестировании
• Что из этого можно делать удаленно (в
облаке)?
IITU Software Testing, 2014 30
Облачные технологии в
тестировании
• Что из этого можно делать удаленно (в
облаке)?
– Выполнение самого Java кода
– Получение браузера
IITU Software Testing, 2014 31
Облачные технологии в
тестировании
• Что из этого можно делать удаленно (в
облаке)?
– Выполнение самого Java кода
– Получение браузера
• Так и происходит :)
IITU Software Testing, 2014 32
Облачные технологии в
тестировании
• Другой пример - тестирование serverside
• Есть маленькая копия продакшн – тестовый
стенд
• Тесты на нем можно гонять в один поток
• Где здесь применить облако?
IITU Software Testing, 2014 33
Облачные технологии в
тестировании
• Другой пример - тестирование serverside
• Есть маленькая копия продакшн – тестовый
стенд
• Тесты на нем можно гонять в один поток
• Где здесь применить облако?
• Правильно!
– Делать новые стенды по мере надобности
– Удалять ненужные
IITU Software Testing, 2014 34
Облачные технологии в
тестировании
• Что еще можно сделать с помощью облака?
• Наладить автозапуск тестов:
– Jenkins-хук по сборке релиза
– Разворачивание тестового стенда
– Запуск теста
– Отчет приходит в почту
• Нам остается только пить кофе :)
IITU Software Testing, 2014 35
Методы оценки качества
тестирования
IITU Software Testing, 2014 36
Методы оценки качества
тестирования
• Экспертная оценка
– Руководитель сервиса
– Менеджер
– Senior
– Руководитель группы тестирования
• Статистика
– Найденных багов
– Пропущенных багов
– Критичности тех и других
• Скорость тестирования
• Измерение code coverage
IITU Software Testing, 2014 37
Обязанности и ответственность
тестировщика
• Тестирование :)
• Анализ задачи
– Обнаружить нестыковки
– Какие нужны доступы, ресурсы
• Заведение багов
• Отчет о тестировании
– «можно катить»
– Ссылка на отчет автотестов, с кратким резюме – ок/не ок
• Root cause analysis
– По пропущенным багам
• Ведение документации по тестированию
IITU Software Testing, 2014 38

More Related Content

PDF
Марина Широчкина — «Тестирование»
PPTX
Шаги мануальщика к автоматизации на крупном проекте
PDF
Марина Широчкина: Тестирование
PPTX
Continious integration-Automated Testing-Solid-Agile
PPTX
Андрей Сильчук: "Автоматическое тестирование".
PDF
Марина Широчкина - Тестирование
PPT
Testing mistakes
PDF
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Марина Широчкина — «Тестирование»
Шаги мануальщика к автоматизации на крупном проекте
Марина Широчкина: Тестирование
Continious integration-Automated Testing-Solid-Agile
Андрей Сильчук: "Автоматическое тестирование".
Марина Широчкина - Тестирование
Testing mistakes
Стратегия тестирования крупного проекта в условиях Agile разработки v2

What's hot (18)

PPT
Qt tool evaluation
PPT
Тестирование инсталляторов
PPTX
Ui testing how intel does this
PPTX
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
PDF
Технологии разработки ПО
PDF
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
PDF
Автоматизация тестирования как сервис
PDF
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
PDF
Тестирование весна 2013 лекция 5
PDF
презентация по дисциплине технология разработки программного обеспечения
PPTX
Severity и Priority для неначинающих: очевидное и невероятное
PDF
QAFest. Роль тестирования в Devops
PDF
5 oleg nikiforov - automating routine tasks for mobile apps testing
PPTX
Mva stf module 2 - rus
PDF
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
PPTX
Ответственность за качество в разных ИТ-проектах
PDF
Benefits of unit-testing and inversion of controll
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
Qt tool evaluation
Тестирование инсталляторов
Ui testing how intel does this
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
Технологии разработки ПО
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
Автоматизация тестирования как сервис
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
Тестирование весна 2013 лекция 5
презентация по дисциплине технология разработки программного обеспечения
Severity и Priority для неначинающих: очевидное и невероятное
QAFest. Роль тестирования в Devops
5 oleg nikiforov - automating routine tasks for mobile apps testing
Mva stf module 2 - rus
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Ответственность за качество в разных ИТ-проектах
Benefits of unit-testing and inversion of controll
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
Ad

Viewers also liked (18)

PDF
Тестирование ПО (2016)
PDF
Rubycube storysmart appsuite-1
PDF
Winter 16 Webinar Slide Deck
PDF
BrightGen's Spring 13 Salesforce Release Webinar
PPTX
CAS WILSON - ANGLAIS
PDF
BrightGen Spring 16 Release Webinar
PPTX
Alex's Design and Illustration's Summary
PPTX
What Is Automated Supply Vending?
PDF
Creative endeavours portfolio
PDF
6 Tips to Improving Customer Loyalty
PPTX
Rompecabezas
PDF
Moodle Questionnaire repsonses
PDF
Rekind Employer Value Propositiion
PDF
Moving from Excel to Force.com
PPTX
Simplicity of Design Work Resume by Alexander Nico
PDF
the talk Big Ideas to Scale SME & Startups
PDF
BrightGen's Dreamforce 13 New Features Webinar
Тестирование ПО (2016)
Rubycube storysmart appsuite-1
Winter 16 Webinar Slide Deck
BrightGen's Spring 13 Salesforce Release Webinar
CAS WILSON - ANGLAIS
BrightGen Spring 16 Release Webinar
Alex's Design and Illustration's Summary
What Is Automated Supply Vending?
Creative endeavours portfolio
6 Tips to Improving Customer Loyalty
Rompecabezas
Moodle Questionnaire repsonses
Rekind Employer Value Propositiion
Moving from Excel to Force.com
Simplicity of Design Work Resume by Alexander Nico
the talk Big Ideas to Scale SME & Startups
BrightGen's Dreamforce 13 New Features Webinar
Ad

Similar to Software testing in practice (20)

PPTX
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
PPT
01-lection-ka
PDF
Black box testing
PDF
тестирование
PPT
Внедрение тестирования в Scrum
PPT
Внедрение тестирования в Scrum
PDF
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
PPTX
Mva stf module 1 - rus
PPTX
Image-based automation
PDF
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
PPTX
Автоматическое тестирование и с чем его едят
PPTX
Image-based automation
PPTX
Автоматизация с помощью скриншотов. Как научить скрипт видеть графический инт...
PDF
Тестирование весна 2014 лекция 1
PPTX
Как развить отдел тестирования от палки-копалки до CI
PPTX
Agile Testing Process
PPTX
Agile Testing Process
PPTX
ACC - конструируем тест-план методом Google
PDF
PPTX
Тестирование ПО
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
01-lection-ka
Black box testing
тестирование
Внедрение тестирования в Scrum
Внедрение тестирования в Scrum
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Mva stf module 1 - rus
Image-based automation
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
Автоматическое тестирование и с чем его едят
Image-based automation
Автоматизация с помощью скриншотов. Как научить скрипт видеть графический инт...
Тестирование весна 2014 лекция 1
Как развить отдел тестирования от палки-копалки до CI
Agile Testing Process
Agile Testing Process
ACC - конструируем тест-план методом Google
Тестирование ПО

Software testing in practice

  • 2. Для чего мы тестируем? IITU Software Testing, 2014 2
  • 3. Для чего мы тестируем? • Для самопроверки – Разработчик, чтобы быть уверенным в качестве проделанной работы • Для сохранения имиджа – Не показывать пользователям ерунду – Давать пользователям то, что работает, не обманывает ожиданий • Предотвратить потери в деньгах • Предотвратить вред жизни или здоровью IITU Software Testing, 2014 3
  • 4. Почему мы тестируем? • Люди ошибаются • Даже самая мелкая ошибка может стоить дорого • Разработчики не всегда проверяют свой код – А уж тем более, не всегда делают это эффективно IITU Software Testing, 2014 4
  • 5. Задача тестирования • Проверить, что полезные фичи реализованы как надо • Проверить, что нет вредных эффектов • Сделать это все эффективно IITU Software Testing, 2014 5
  • 6. Роли в проекте IITU Software Testing, 2014 6
  • 7. Роли в проекте • Что такое проект? – Ограничение по времени – Есть определенная цель – Есть методы ее достижения – Есть метрики оценки успешности (KPI) • Проекты могут быть маленькие (месяцы) • Могут быть большие • Могут быть бессрочные – Состоят из подпроектов – Мы называем их «сервисы» IITU Software Testing, 2014 7
  • 8. Роли в проекте • Руководитель сервиса (тимлид) • Менеджер проектов • Разработчики • Тестирование • Админы (devops) IITU Software Testing, 2014 8
  • 9. Роли в проекте: тимлид • Руководит направлением, сервисом • Отвечает за все проекты в направлении • Решает межпроектные споры • Решает внутрипроектные споры – Если договориться с менеджером не получилось IITU Software Testing, 2014 9
  • 10. Роли в проекте: менеджер проекта • Координирует проект – Или несколько небольших • Согласует работу участников проекта • Согласует сроки всех задач • Согласует приоритеты задач IITU Software Testing, 2014 10
  • 11. Роли в проекте: разработчик • Каждый разработчик – реализует полезные бизнес-функции • Senior, Старший разработчик – Знает всю техническую систему (подсистему), которая затронута проектом – Сам делает как правило только самые важные и ответственные задачи – Несет ответственность за младших разработчиков • Разработчик – То же самое, но знает только часть нужной системы – Несет ответственность за свои задачи • Junior, младший разработчик; Intern, стажер – Не знает систему, или знает недостаточно – Все знания получает в процессе работы – Ответственность за его задачи несет senior IITU Software Testing, 2014 11
  • 12. Роли в проекте: разработчик • Рост разработчика – Увеличение знания системы (экспертиза) – Ответственность за свои задачи (от 0 до 100%) – Ответственность за задачи в подсистеме, системе (от 0 до 100%) IITU Software Testing, 2014 12
  • 13. Роли в проекте: системный администратор • Выкладывает готовый софт в продакшн – Production – софт, который сейчас обслуживает пользователей • Следит за работоспособностью продакшна • То же самое для тестовой среды – С меньшим приоритетом IITU Software Testing, 2014 13
  • 15. Роли в проекте: руководитель группы тестирования • Знает всю техническую систему, которая затронута проектом (см. Senior) • Знает как тестировать каждый узел системы • Оценивает риски и приоритеты тестирования • Согласует объем и приоритет задач на тестирование • Несет ответственность за качество тестирования IITU Software Testing, 2014 15
  • 16. Роли в проекте: тестировщик • Знает часть сервиса и как ее тестировать – Как правило, лучше всех в проекте (эксперт) • Создает план на тестирование компонентов – если нужно • Проводит тесты • Фиксирует дефекты, документирует • Создает тестовую документацию (как тестируем), если нужно – Тест-кейсы – Чеклисты – списки кейсов • Дает добро (или блокирует) выкладку релиза IITU Software Testing, 2014 16
  • 17. Роли в проекте: автоматизатор тестирования • Тестировщик-программист • Пишет программы, которые делают тесты автоматически • Когда? – Когда вручную невозможно – Когда вручную не эффективно IITU Software Testing, 2014 17
  • 18. Роли в проекте: нагрузочное тестирование • Отдельная каста • Имитируют высокую нагрузку на сервис на специализированной среде • Измеряют показатели скорости и качества ответа – Скорость ответа приемлема – Нет отказов IITU Software Testing, 2014 18
  • 20. Процесс разработки и тестирования • Разработка ведется по фичам (задачам) • Фича, Feature – законченный элемент системы, отдельная полезная функция IITU Software Testing, 2014 20
  • 21. Процесс разработки и тестирования • Создается задача – Task, issue, change request, фича, таска… • Реализуется разработчиком • Коммит в бранч • Сборка, юнит-тесты (если есть) • Код ревью • Тестирование в бранче • Мерж в мастер • Сборка релиза по мастеру IITU Software Testing, 2014 21
  • 22. Процесс тестирования релиза • Создается специальный issue – Какие пакеты и как надо выкатить (для админов) – Какие задачи вошли в релиз и какие есть подводные камни (для тестирования) • Тестирование регрессии – Вручную при каждой сборке; один раз на релиз вручную; каждый раз при сборке – автоматически; выборочно; • Тестирование новых фич – Получить спецификацию на фичу, дополнить, убрать все неясности • Заведение багов • Проверка resolved – исправленных багов • Решение о выкладке в продакшн IITU Software Testing, 2014 22
  • 23. Методы тестирования • Тестирование по спецификации – В явном виде может и не быть • Исследовательское тестирование • Бета-тестирование • Сравнение с эталоном IITU Software Testing, 2014 23
  • 24. Технологии и средства тестирования • Дизайн и обсуждение дизайна тестов – Блокнот, ручка, маркер, доска • Коммуникации – Почта, джаббер, телефон, личные и видео встречи • Организация работы – Issue-трекер, вики IITU Software Testing, 2014 24
  • 25. Технологии и средства тестирования • Инструменты тестирования – Браузер – Командная строка (bash, ssh, diff) – Текстовые редакторы – СКВ – git, svn – Языки программирования, среды разработки (для автотестов) IITU Software Testing, 2014 25
  • 26. Технологии и средства тестирования • Кастомные инструменты – https://github.com/yandex-qatools/htmlelements – https://github.com/allure-framework – Различные дифферы – Фреймворки… • Jenkins, teamcity • WebDriver (Selenium) IITU Software Testing, 2014 26
  • 28. Облачные технологии в тестировании • Пример https://github.com/yandex- qatools/htmlelements- examples/blob/master/htmlelements-junit- example/src/test/java/my/company/web/Searc hingByRequestTest.java IITU Software Testing, 2014 28
  • 30. Облачные технологии в тестировании • Что из этого можно делать удаленно (в облаке)? IITU Software Testing, 2014 30
  • 31. Облачные технологии в тестировании • Что из этого можно делать удаленно (в облаке)? – Выполнение самого Java кода – Получение браузера IITU Software Testing, 2014 31
  • 32. Облачные технологии в тестировании • Что из этого можно делать удаленно (в облаке)? – Выполнение самого Java кода – Получение браузера • Так и происходит :) IITU Software Testing, 2014 32
  • 33. Облачные технологии в тестировании • Другой пример - тестирование serverside • Есть маленькая копия продакшн – тестовый стенд • Тесты на нем можно гонять в один поток • Где здесь применить облако? IITU Software Testing, 2014 33
  • 34. Облачные технологии в тестировании • Другой пример - тестирование serverside • Есть маленькая копия продакшн – тестовый стенд • Тесты на нем можно гонять в один поток • Где здесь применить облако? • Правильно! – Делать новые стенды по мере надобности – Удалять ненужные IITU Software Testing, 2014 34
  • 35. Облачные технологии в тестировании • Что еще можно сделать с помощью облака? • Наладить автозапуск тестов: – Jenkins-хук по сборке релиза – Разворачивание тестового стенда – Запуск теста – Отчет приходит в почту • Нам остается только пить кофе :) IITU Software Testing, 2014 35
  • 37. Методы оценки качества тестирования • Экспертная оценка – Руководитель сервиса – Менеджер – Senior – Руководитель группы тестирования • Статистика – Найденных багов – Пропущенных багов – Критичности тех и других • Скорость тестирования • Измерение code coverage IITU Software Testing, 2014 37
  • 38. Обязанности и ответственность тестировщика • Тестирование :) • Анализ задачи – Обнаружить нестыковки – Какие нужны доступы, ресурсы • Заведение багов • Отчет о тестировании – «можно катить» – Ссылка на отчет автотестов, с кратким резюме – ок/не ок • Root cause analysis – По пропущенным багам • Ведение документации по тестированию IITU Software Testing, 2014 38