SlideShare a Scribd company logo
1 of 23
Core Systems Transformation Solutions
Введение в автоматизированное
тестирование
Абраменко Алексей
Июнь 2015
Confidential 1
Содержание
• Определение
• Что можно и что целесообразно
автоматизировать
• Плюсы, минусы и риски автоматизации
• Принятие решения о внедрении
автоматизированного тестирования
• Этапы внедрения автоматизированного
тестирования
• Уровни, подходы, рекомендации
• Объем покрытия и метрики
• Участники процесса автоматизации
тестирования, необходимые навыки
• Обзор наиболее распространенных
инструментов
• Вопросы
Confidential 2
Автоматизированное тестирование: что это такое
Автоматизированное тестирование - процесс верификации
программного обеспечения, при котором основные функции и
шаги теста, такие как запуск, инициализация, выполнение,
анализ и выдача результата, выполняются автоматически при
помощи инструментов для автоматизированного тестирования
http://protesting.ru
Confidential 3
Что можно автоматизировать?
Какие части ПО можно тестировать с использованием
автоматизации?
Практически все:
• GUI
• базы данных
• веб сервисы
• API
Миф 1: автоматизированное тестирование – это
только функциональное тестирование и только через
GUI
Confidential 4
Что целесообразно автоматизировать?
Тесты - кандидаты на автоматизацию:
• часто повторяемые, например регрессионные
• рутинные
• использующие запросы к серверу
• валидация элементов UI
• математические расчеты
• трудоемкие, трудозатратные
• длинные end-to-end сценарии
• нагрузочные
Миф 2: автоматизированное тестирование применяется
лишь для регрессионного тестирования
Confidential 5
Плюсы автоматизации
• высвобождает время для большего объема тестирования
• сокращает риски человеческого фактора
• способен повторять сценарий теста
• скрипты могут работать в фоновом режиме
• ночные запуски
• обычно выполняют тест быстрее, чем при ручном тестировании
• может быть частью Continuous Integration
• позволяет выполнять действия, трудно реализуемые вручную
• правильно реализованное логирование упрощает задачу
локализации бага
Confidential 6
Подводные камни автоматизации: ресурсы
• требуется время на разработку, отладку, поддержку
• инструменты могут иметь высокую стоимость
• требуется наличие специалистов с определенными знаниями
Миф 3: в автоматизированном тестировании все
выполняется само
Миф 4: позволяет сократить расходы
Миф 5: решает проблему нехватки ресурсов
Confidential 7
Подводные камни автоматизации: возможности
• скрипты могут содержать ошибки
• «парадокс пестицида»
• все покрыть автотестами достаточно сложно
Автоматизация не отменяет ручного тестирования - это
взаимодополняющие процессы, которые нужно использовать
совместно
Миф 6: полностью исключает человеческий фактор
Миф 7: позволяет найти больше ошибок
Confidential 8
Возможные риски автоматизации
• нереалистичные ожидания от использования автоматизации
• недооценка времени и количества работы на создание,
внедрение, поддержку
• недооценка стоимости (обучение, консультации, закупка
инструментов)
• прекращение поставщиков поддержки инструмента
• окончание бесплатности инструмента, закрытие кода
• специалист покидает проект, компанию
Confidential 9
Как принять решение о внедрении
автоматизированного тестирования
По совокупности следующих пунктов:
• это технически возможно
• процесс тестирования на проекте существует и работает
• экономическая целесообразность
• длительность проекта, длительность разворачивания
автоматизации
• есть наработки из других проектов
• есть необходимые специалисты
• инструменты автоматизированного тестирования имеют
поддержку от поставщика, хорошую документацию, коммьюнити и
т.п.
• инструменты готовы к возможному масштабированию, изменению
тестируемого продукта
Confidential 10
Этапы внедрения автоматизированного тестирования
Этапы процесса тестирования Работы по автоматизации
Инициирование и
планирование
• оценка необходимости использования
автоматизации
• выбор областей продукта, тестирование
которых будет автоматизировано
• выбор инструментов автоматизации
• формирование команды
• подготовка инструментов
• развертывание окружения
Разработка тест кейсов • выбор, какие тест кейсы будут
автоматизированы
• ревью выбранных тест кейсов инженерами
по автоматизации
• разработка и отладка скриптов
Выполнение тестов • запуск скриптов
Анализ результатов, отчетность • анализ логов
Завершение • архивирование, консервация
Confidential 11
Подходы внедрения автоматизированного
тестирования. Уровни
Не зацикливаться на GUI.
Внедрять постепенно, переходя от простого к сложному.
Тестируемое приложение можно
разбить на 3 уровня:
1. Unit Tests
2. Functional Tests (Non-GUI)
3. GUI Tests Level
Confidential 12
Подходы внедрения автоматизированного
тестирования. Рекомендации
• процесс автоматизации тестирования – часть общего процесса
тестирования
• начните с тестов, прохождение которых занимает много времени
вручную (с учетом приоритетов)
• скрипт создается исходя из сценария тест кейса
• обсудите формат тест кейсов с командой
• сохраняйте независимость скриптов от тестовых данных
• используйте для ручных и автоматизированных тест кейсов одни и
те же файлы с тестовыми данными
• включайте запуск автоматических тестов в систему
Continuous Integration
• продумайте способ логирования и отчетности
• не изобретайте велосипед
Confidential 13
Использование тест кейсов в автоматизации
• автоматизация проходит на основе существующих тест кейсов
• руководитель процесса тестирования принимает решение, какие
кейсы будут автоматизированы
• тест кейсы перед автоматизацией должны быть пройдены
вручную
• инженеры по автоматизации проводят ревью выбранных тест
кейсов
Precondition • Инициализация приложения
• Инициализация тестовых данных
Steps • Выполнение действий
• Выполнение проверок
• Занесение данных о результате
Post Condition • Завершение работы приложения
• Очистка тестовых данных
Confidential 14
Объем покрытия автоматизированными тестами
Миф 8. Чем больше автотестов, тем лучше.
Нужно исходить из контекста проекта:
• Архитектура проекта
• Сроки
• Бюджет
• Требования к качеству от заказчика
Confidential 15
Метрики покрытия автоматизированными тестами
Главная метрика:
% =
количество автоматизированных тест кейсов
количество выбранных для автоматизации тест кейсов
Confidential 16
Какие работы проводятся в процессе автоматизации
• Развертывание окружения
• Подготовка инструментов для тестирования
• Создание скриптов, библиотек
• Запуск скриптов
• Анализ результатов работы скриптов
• Поддержка скриптов
Confidential 17
Состав участников команды автоматизации
тестирования
Идеальный случай – отдельная команда автоматизаторов в
дополнение к команде мануальных тестировщиков.
Состав команды автоматизаторов:
• Инженер(ы) по автоматизации
• Лидер команды автоматизаторов
В зависимости от внедренного процесса и опыта могут привлекаться
и мануальные тестировщики, и девелоперы.
Confidential 18
Необходимые навыки и опыт для участия в процессе
автоматизации тестирования
• Желание обучаться
• Навыки программирования. Как правило - знание Java, SQL
• Интерес к программированию
• Знание теории тестирования
Confidential 19
Наиболее распространенные инструменты
Инструмент Плюсы и возможности Минусы
Selenium
WebDriver
Тестирование Web UI.
Бесплатно, мультиплатфоменность,
кроссбраузерность, мультиязычность,
большое коммьюнити, возможность
распараллеливания тестирования.
Только Web UI
приложения, нет
встроенного создания
отчетов, нет
встроенной системы
хранения локаторов
HP Quick Test
Professional
Работает с Windows desktop, Web UI, SAP GUI
приложениями. Cистема генерации отчетов,
хранение локаторов, своя среда разработки,
рекордер, большое коммьюнити.
Только Windows.
Платная (несколько
десятков тыс.
долларов)
Test Complete Работает с Windows desktop, Web UI,
мобильными приложениями. Система
генерации отчетов, хранение локаторов,
своя среда разработки, рекордер, большое
коммьюнити. Возможность
распараллеливания тестирования.
Только Windows.
Платная (несколько
десятков тыс. евро)
Confidential 20
Наиболее распространенные инструменты – 2
Инструмент Плюсы и возможности Минусы
HP
LoadRunner
Нагрузочное тестирование.
Работает с desktop, Web, Server, Web Service
приложениями, БД. Эмуляция виртуальных
пользователей. Cистема генерации отчетов.
Есть бесплатная ограниченная версия.
Полная версия
платная.
0.56$ в день за 1
виртуального
пользователя.
Apache
JMeter
Нагрузочное тестирование.
Поддержка множества сетевых протоколов.
Бесплатно. Хорошее коммьюнити. Рекордер.
Кроссплатформенность. Логирование и
визуализация отчетов. Много дополнительных
модулей.
Ресурсоемкий. На
длительных и
тяжелых тестах
часто падает.
SoapUI Для тестирования Web Services. Может
проводить функциональное и нагрузочное
тестирование. Эмуляция заглушек.
Есть бесплатная версия. Встроенное
логирование. Возможность создания сценариев.
Нет рекордера.
Слабое
коммьюнити,
мало примеров.
Confidential 21
Использование своего фрэймворка
Пример:
• IntellijIdea: среда разработки
• Maven: инструмент сборки и запуска проектов
• Selenium WebDriver : автоматизация доступа к элементам Web UI
приложения
• TestNG: управление тестами
• jdbc: работа с БД
• Java SE: язык реализации
• Jenkins: инструмент непрерывной интеграции для сборки и
запуска тестов
Confidential 22
Спасибо. Вопросы?

More Related Content

Similar to Introduction to Automation Testing

Automation Overview
Automation OverviewAutomation Overview
Automation OverviewKiraKeiss
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Hub-IT-School
 
Автоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятMarina Peregud
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?SQALab
 
Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?Igor Khrol
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Technopark
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей РевкоSQALab
 
Анализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестированияАнализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестированияSQALab
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыSQALab
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSАлександр Шамрай
 
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...SQALab
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?SQALab
 

Similar to Introduction to Automation Testing (20)

Automation Overview
Automation OverviewAutomation Overview
Automation Overview
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".
 
Автоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едят
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?
 
Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
 
Enter: testing
Enter: testingEnter: testing
Enter: testing
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
Анализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестированияАнализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктуры
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
 
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
 

More from Return on Intelligence

Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Return on Intelligence
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsReturn on Intelligence
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classificationReturn on Intelligence
 
Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Return on Intelligence
 
Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Return on Intelligence
 
Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Return on Intelligence
 

More from Return on Intelligence (20)

Clean Code Approach
Clean Code ApproachClean Code Approach
Clean Code Approach
 
Code Coverage
Code CoverageCode Coverage
Code Coverage
 
Effective Communication in english
Effective Communication in englishEffective Communication in english
Effective Communication in english
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
Conflicts Resolving
Conflicts ResolvingConflicts Resolving
Conflicts Resolving
 
Database versioning with liquibase
Database versioning with liquibaseDatabase versioning with liquibase
Database versioning with liquibase
 
Effective Feedback
Effective FeedbackEffective Feedback
Effective Feedback
 
English for Negotiations 2016
English for Negotiations 2016English for Negotiations 2016
English for Negotiations 2016
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!
 
Quick Start to AngularJS
Quick Start to AngularJSQuick Start to AngularJS
Quick Start to AngularJS
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.js
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classification
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)
 
Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)
 
Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)
 
Career development in exigen services
Career development in exigen servicesCareer development in exigen services
Career development in exigen services
 
Introduction to selenium web driver
Introduction to selenium web driverIntroduction to selenium web driver
Introduction to selenium web driver
 

Introduction to Automation Testing

  • 1. Core Systems Transformation Solutions Введение в автоматизированное тестирование Абраменко Алексей Июнь 2015
  • 2. Confidential 1 Содержание • Определение • Что можно и что целесообразно автоматизировать • Плюсы, минусы и риски автоматизации • Принятие решения о внедрении автоматизированного тестирования • Этапы внедрения автоматизированного тестирования • Уровни, подходы, рекомендации • Объем покрытия и метрики • Участники процесса автоматизации тестирования, необходимые навыки • Обзор наиболее распространенных инструментов • Вопросы
  • 3. Confidential 2 Автоматизированное тестирование: что это такое Автоматизированное тестирование - процесс верификации программного обеспечения, при котором основные функции и шаги теста, такие как запуск, инициализация, выполнение, анализ и выдача результата, выполняются автоматически при помощи инструментов для автоматизированного тестирования http://protesting.ru
  • 4. Confidential 3 Что можно автоматизировать? Какие части ПО можно тестировать с использованием автоматизации? Практически все: • GUI • базы данных • веб сервисы • API Миф 1: автоматизированное тестирование – это только функциональное тестирование и только через GUI
  • 5. Confidential 4 Что целесообразно автоматизировать? Тесты - кандидаты на автоматизацию: • часто повторяемые, например регрессионные • рутинные • использующие запросы к серверу • валидация элементов UI • математические расчеты • трудоемкие, трудозатратные • длинные end-to-end сценарии • нагрузочные Миф 2: автоматизированное тестирование применяется лишь для регрессионного тестирования
  • 6. Confidential 5 Плюсы автоматизации • высвобождает время для большего объема тестирования • сокращает риски человеческого фактора • способен повторять сценарий теста • скрипты могут работать в фоновом режиме • ночные запуски • обычно выполняют тест быстрее, чем при ручном тестировании • может быть частью Continuous Integration • позволяет выполнять действия, трудно реализуемые вручную • правильно реализованное логирование упрощает задачу локализации бага
  • 7. Confidential 6 Подводные камни автоматизации: ресурсы • требуется время на разработку, отладку, поддержку • инструменты могут иметь высокую стоимость • требуется наличие специалистов с определенными знаниями Миф 3: в автоматизированном тестировании все выполняется само Миф 4: позволяет сократить расходы Миф 5: решает проблему нехватки ресурсов
  • 8. Confidential 7 Подводные камни автоматизации: возможности • скрипты могут содержать ошибки • «парадокс пестицида» • все покрыть автотестами достаточно сложно Автоматизация не отменяет ручного тестирования - это взаимодополняющие процессы, которые нужно использовать совместно Миф 6: полностью исключает человеческий фактор Миф 7: позволяет найти больше ошибок
  • 9. Confidential 8 Возможные риски автоматизации • нереалистичные ожидания от использования автоматизации • недооценка времени и количества работы на создание, внедрение, поддержку • недооценка стоимости (обучение, консультации, закупка инструментов) • прекращение поставщиков поддержки инструмента • окончание бесплатности инструмента, закрытие кода • специалист покидает проект, компанию
  • 10. Confidential 9 Как принять решение о внедрении автоматизированного тестирования По совокупности следующих пунктов: • это технически возможно • процесс тестирования на проекте существует и работает • экономическая целесообразность • длительность проекта, длительность разворачивания автоматизации • есть наработки из других проектов • есть необходимые специалисты • инструменты автоматизированного тестирования имеют поддержку от поставщика, хорошую документацию, коммьюнити и т.п. • инструменты готовы к возможному масштабированию, изменению тестируемого продукта
  • 11. Confidential 10 Этапы внедрения автоматизированного тестирования Этапы процесса тестирования Работы по автоматизации Инициирование и планирование • оценка необходимости использования автоматизации • выбор областей продукта, тестирование которых будет автоматизировано • выбор инструментов автоматизации • формирование команды • подготовка инструментов • развертывание окружения Разработка тест кейсов • выбор, какие тест кейсы будут автоматизированы • ревью выбранных тест кейсов инженерами по автоматизации • разработка и отладка скриптов Выполнение тестов • запуск скриптов Анализ результатов, отчетность • анализ логов Завершение • архивирование, консервация
  • 12. Confidential 11 Подходы внедрения автоматизированного тестирования. Уровни Не зацикливаться на GUI. Внедрять постепенно, переходя от простого к сложному. Тестируемое приложение можно разбить на 3 уровня: 1. Unit Tests 2. Functional Tests (Non-GUI) 3. GUI Tests Level
  • 13. Confidential 12 Подходы внедрения автоматизированного тестирования. Рекомендации • процесс автоматизации тестирования – часть общего процесса тестирования • начните с тестов, прохождение которых занимает много времени вручную (с учетом приоритетов) • скрипт создается исходя из сценария тест кейса • обсудите формат тест кейсов с командой • сохраняйте независимость скриптов от тестовых данных • используйте для ручных и автоматизированных тест кейсов одни и те же файлы с тестовыми данными • включайте запуск автоматических тестов в систему Continuous Integration • продумайте способ логирования и отчетности • не изобретайте велосипед
  • 14. Confidential 13 Использование тест кейсов в автоматизации • автоматизация проходит на основе существующих тест кейсов • руководитель процесса тестирования принимает решение, какие кейсы будут автоматизированы • тест кейсы перед автоматизацией должны быть пройдены вручную • инженеры по автоматизации проводят ревью выбранных тест кейсов Precondition • Инициализация приложения • Инициализация тестовых данных Steps • Выполнение действий • Выполнение проверок • Занесение данных о результате Post Condition • Завершение работы приложения • Очистка тестовых данных
  • 15. Confidential 14 Объем покрытия автоматизированными тестами Миф 8. Чем больше автотестов, тем лучше. Нужно исходить из контекста проекта: • Архитектура проекта • Сроки • Бюджет • Требования к качеству от заказчика
  • 16. Confidential 15 Метрики покрытия автоматизированными тестами Главная метрика: % = количество автоматизированных тест кейсов количество выбранных для автоматизации тест кейсов
  • 17. Confidential 16 Какие работы проводятся в процессе автоматизации • Развертывание окружения • Подготовка инструментов для тестирования • Создание скриптов, библиотек • Запуск скриптов • Анализ результатов работы скриптов • Поддержка скриптов
  • 18. Confidential 17 Состав участников команды автоматизации тестирования Идеальный случай – отдельная команда автоматизаторов в дополнение к команде мануальных тестировщиков. Состав команды автоматизаторов: • Инженер(ы) по автоматизации • Лидер команды автоматизаторов В зависимости от внедренного процесса и опыта могут привлекаться и мануальные тестировщики, и девелоперы.
  • 19. Confidential 18 Необходимые навыки и опыт для участия в процессе автоматизации тестирования • Желание обучаться • Навыки программирования. Как правило - знание Java, SQL • Интерес к программированию • Знание теории тестирования
  • 20. Confidential 19 Наиболее распространенные инструменты Инструмент Плюсы и возможности Минусы Selenium WebDriver Тестирование Web UI. Бесплатно, мультиплатфоменность, кроссбраузерность, мультиязычность, большое коммьюнити, возможность распараллеливания тестирования. Только Web UI приложения, нет встроенного создания отчетов, нет встроенной системы хранения локаторов HP Quick Test Professional Работает с Windows desktop, Web UI, SAP GUI приложениями. Cистема генерации отчетов, хранение локаторов, своя среда разработки, рекордер, большое коммьюнити. Только Windows. Платная (несколько десятков тыс. долларов) Test Complete Работает с Windows desktop, Web UI, мобильными приложениями. Система генерации отчетов, хранение локаторов, своя среда разработки, рекордер, большое коммьюнити. Возможность распараллеливания тестирования. Только Windows. Платная (несколько десятков тыс. евро)
  • 21. Confidential 20 Наиболее распространенные инструменты – 2 Инструмент Плюсы и возможности Минусы HP LoadRunner Нагрузочное тестирование. Работает с desktop, Web, Server, Web Service приложениями, БД. Эмуляция виртуальных пользователей. Cистема генерации отчетов. Есть бесплатная ограниченная версия. Полная версия платная. 0.56$ в день за 1 виртуального пользователя. Apache JMeter Нагрузочное тестирование. Поддержка множества сетевых протоколов. Бесплатно. Хорошее коммьюнити. Рекордер. Кроссплатформенность. Логирование и визуализация отчетов. Много дополнительных модулей. Ресурсоемкий. На длительных и тяжелых тестах часто падает. SoapUI Для тестирования Web Services. Может проводить функциональное и нагрузочное тестирование. Эмуляция заглушек. Есть бесплатная версия. Встроенное логирование. Возможность создания сценариев. Нет рекордера. Слабое коммьюнити, мало примеров.
  • 22. Confidential 21 Использование своего фрэймворка Пример: • IntellijIdea: среда разработки • Maven: инструмент сборки и запуска проектов • Selenium WebDriver : автоматизация доступа к элементам Web UI приложения • TestNG: управление тестами • jdbc: работа с БД • Java SE: язык реализации • Jenkins: инструмент непрерывной интеграции для сборки и запуска тестов

Editor's Notes

  1. говорить мы будем о том, как внедрять процесс автоматизации на проекте, и все, что с этим связано Тренинг адресован тестовым инженерам, как мануальным, так и тем, кто уже автоматизирует тестирование. Для всех сомневающихся, стоит ли внедрять автоматизацию, и для уже решившихся, но не знающих как все организовать. Про вопросы. перейдем к первому сладу
  2. И начнем с определения. Основная мысль - Автоматизированное тестирование - процесс верификации программного обеспечения, при котором основные функции и шаги теста выполняются автоматически при помощи инструментов для автоматизированного тестирования. Такое явление, как автоматизированное тестирование, сопровождает некоторое количество заблуждений и мифов. Какие-то мифы свойственны девелоперам, какие-то мануальным тестировщикам, какие-то менеджерам. В течении этой презентации мы будем рассматривать в том числе эти мифы и по-возможности их развенчивать.
  3. Можно автоматизировать тест кейсы, которые проверяют не только UI, а и такие области ПО как
  4. Кандидатами на автоматизацию могут быть не только лишь тесты из регрессионного набора, а например рутинные тесты (напр. открыть 100 вкладок и проверить наличие на ней логотипа) - использующие запросы к серверу – например нужно оттестировать работу sql скриптов. Вручную вы и так уже открываете консоль, запускаете скрипт, проверяете ответ. В случае большого набора таких тестов выгоднее такую работу поручить машине. валидация элементов UI – напр валидация текстовых полей, попытка заполнения разными некорректными данными и проверка текста ошибки Те, которые позволят уменьшить влияние человеческого фактора: трудоемкие, трудозатратные – напр поиск в логах нужной записи, валидация XML response математические расчеты длинные end-to-end сценарии – типовые сценарии использования приложения, например создать email, прикрепить файл, отправить нескольким адресатам, для каждого адресата проверить корректность полученного письма и приложения Нагрузочные – достаточно сложно выполнить нагрузочное испытание без специальных инструментов автоматизированного тестирования То есть они не обязательно должны входить в скоуп регрессии.
  5. Поговорим о том, ради чего мы собственно говоря процесс автоматизации внедряется, о его плюсах Основное - высвобождает время для большего объема тестирования сокращает риски человеческого фактора, такие как усталость, ошибки, отсутствие мотивации, больничные, отпуска могут работать в фоновом режиме и у тестировщика есть время параллельно выполнять другие задачи. ночной запуск – по расписанию или событию может быть частью Continuous Integration, при правильной настройке процесса позволяет очень быстро обнаружить дефект позволяет выполнять действия, трудно реализуемые вручную (например эмуляция параллельной работы нескольких десятков пользователей) правильно реализованное логирование упрощает задачу локализации бага – а можно делать еще и скриншоты, а можно настроить и генерировать сразу готовые отчеты о тестировании.
  6. К сожалению автоматизированное тестирование не лишено недостатков, и довольно существенных. Бывает, что кто-то имеет излишне оптимистичное представление о возможностях автоматизированного тестирования, это все выливается в мифы, что
  7. «парадокс пестицида» - это термин использующийся в теории тестирования Здесь проводится аналогия между повторным выполнением тестов и повторной обработкой полей тем же пестицидом, который уже применялся недавно. После первой обработки часть вредителей погибла, но не все -- некоторые выжили, потому что их организм оказался устойчив к яду. Так вот эти «баги" с большой вероятностью переживут и повторную обработку. Точно так же, повторное применение одних тех же тестов, и даже повторное применение одних и тех же методов тестирования, приводит к тому, что в программе остаются дефекты, против которых эти методы неэффективны. Нужно проходить ногами, или в случае тестирования руками, и добивать эти баги. все покрыть автотестами достаточно сложно Вообще автоматизация – это дорогое удовольствие. Внедрение автоматизированного тестирования стоит дороже мануального. Также не получится полностью отказаться от ручного тестирования - это взаимодополняющие процессы
  8. Многие риски произрастают из подводных камней. К сожалению часто возможности автоматизации переоценивают. Невозможно покрыть все, или считать, что автоматизация тестирования - достаточное условие для проверки качества продукта. иногда - проще и дешевле протестировать вручную специалист покидает проект, компанию – это проектный риск, Но последствия могут быть очень неприятными, так как нужно искать или обучать нового специалиста, возможно новому инженеру не понравится тот код, и та организация автоматизации тестирования, которая была до него, и он потеряет время на попытку все переделать важно сопровождать процесс автоматизации документированием, написанием мануалов, комментариев, чтобы в случае данного проектного риска новый специалист мог менее болезненно подхватить и продолжить процесс автоматизации
  9. Хорошо все обдумав экономическая целесообразность: дешевле потратить время и финансы на внедрение процесса автотестирования (оплата инженера, время на разработку, средства на тулы), чем на поддержку ручного тестирования длительность проекта – возможно разворачивание автоматизации будет длительнее самого проекта Взвесить все плюсы и минусы. Иметь ввиду, что автоматизация имеет свои недостатки, и их немало.
  10. Поговорим про этапы автоматизированного тестирования Вообще процесс тестирования принято разбивать на этапы, и на каждом из этих этапов мы проводим работы по внедрению автоматизации. Если конечно решение об автоматизации принято подготовка инструментов развертывание окружения То есть подготовка тестового окружения
  11. Поговорим о подходах к внедрению автоматизированного тестирования Вспомним про уровни тестирования ПО: Юнит Модульное Интеграционное Системное Приемочное Те же подходы могут быть применены и к автоматизации В случае с юнит: это обычно тесты, написанные разработчиками. Но тестировщики тоже могут подключиться. Пример – вы разрабатываете web приложение, которое создает некие объекты в базе данных используя post запросы. Важно протестировать и UI, и бэкенд. Не нужно сразу бросаться и покрывать автотестами web интерфейс. Обычно автоматизация тестирования UI гораздо более ресурсоемкая, чем покрытие автотестами бэкенда. Что в нашем случае можно сделать? Можно сначала внедрить автоматизацию тестирования веб сервиса – посылать запрос и проверять правильность его ответа. С точки зрения внедрения автоматизации это менее трудоемко, чем автоматизация UI. Затем можеи добавить проверку правильности заполнения базы правильными данными, используя sql реквесты и сравнение результата запроса с ожидаемым результатом. А вот затем можно думать о тестах на UI. Конечно – это пример, а не правило. В каждом конкретном случае то, что вы будете автоматизировать – зависит от плана тестирования, который вы приняли на начальном этапе. Возможно ваша задача будет сводиться только лишь к автоматизации UI. Тем не менее важно помнить, что начинать процесс автоматизации необходимо на ранних этапах, и совсем не обязательно начинать с того, что займет больше времени на внедрение.
  12. Очень важно помнить: процесс автоматизации тестирования является частью общего процесса тестирования Другими словами автоматизация – это не независимый процесс, это часть общего процесса тестирования, которая прописана в тест плане. Наша основная задача в автоматизации тестирования – освободить больше времени для решения большего количества задач, и заменив долгое ручное тестирование желательно быстрым автоматизированным – мы как раз будем иметь больше времени для других задач Поэтому логично начать автоматизировать те тесты, прохождение которых занимает много времени вручную скрипт создается исходя из сценария тест кейса – то есть он не должен быть программой что-то и как-то проверяющей. Сценарием скрипта является соотвествующий тест кейс На самом деле довольно часто бывает сложно вот так взять и создать скрипт работающий так же, как требуется в тест кейсе. Например, в кейсе сказано – получите одноразовый пароль, посланный в виде смс на телефон, и введите в поле на странице. Вот по такому сценарию автоматизировать тест сложно. Но можно этот же пароль вытащить из базы данных на сервере, автоматизировав sql запрос. Чтобы минимизировать трудности автоматизации в будущем по тем сценариям, какими снабдили вас тестировщики – нужно с ними сотрудничать ) Поговорите об удобном формате тест кейсов, это сэкономит время. сохранять независимость скриптов от тестовых данных – возможность менять инструменты, использовать данные многократно для разных случаев А также - используйте для ручных и автоматизированных тест кейсов одни и те же файлы с тестовыми данными. Это позволит не делать одну и ту же работу дважды включайте запуск автоматических тестов в систему Continuous Integration – начните как можно раньше, как только это будет возможно. Это позволит выявлять проблемы раньше. продумайте способ логирования и отчетности – если вы прогнали тест, и он где то в середине упал, то как понять причину ошибки и шаги для ее вопроизведения? Только если записывать все что делает программа, в удобном для дальнейшего исследования виде. не изобретайте велосипед - 99% задач уже решал кто-то до вас. Потратьте час на поиск готового решения.
  13. Как тест кейсы используются в процессе автоматизации? Руководитель или руководители процесса тестирования принимают решение, какие кейсы будут автоматизированы. Как правило это тест лид совместно с лидером команды автоматизаторов Это не означает, что они просматривают каждый кейс и ставять метку – автоматизировать его или нет. Они определяют признаки тест кейса, который будет подлежать автоматизации, и прописывают эти признаки в тест плане. А в дальнейшем или автор тест кейса исходя из этих условий выставляет метку, или инструмент для хранения тест кейсов как-то помечает кейсы, подходящие по условиям. Теперь посмотрим, как у нас соотносятся сценарий тест кейса и скрипт, который автоматизирует его выполнение Тест кейс состоит из...
  14. Миф 8. Чем больше автотестов, тем лучше. – вообще звучит справедливо, но это справедливо только когда у нас неограниченное количество ресурсов Иногда трудозатраты на разработку тестового окружения могут заметно превысить ручной вариант выполнения, даже если придётся тесты гонять каждый день. Некоторые тестовые случаи просто невозможно автоматизировать по разным причинам: какие-то действия не поддаются автоматизации. Например автоматизация UI десктопного приложения запущенного под линукс. К сожалению таких инструментов нет Сроки Бюджет Мы уже говорили о том, что если срок жизни проекта сопоставим с временем на внедрение автоматизации, то толку от нее будет мало и прочие причины…
  15. То есть какой процент выбранных для автоматизации тест кейсов автоматизирован. Понятно, что нужно стремиться к 100% Иногда используют такую метрику как процент автоматизированных кейсов от общего числа кейсов. Но мы уже знаем, что у нас нет цели покрыть автотестами абсолютно все кейсы, и такая метрика для нас будет бесполезна.
  16. Давайте поговорим об активностях, которые существуют в процессе внедрения процесса автоматизации тестирования. Итак мы должны: ... Информация об этих работах, сроках, ответственных – отражается в тест плане
  17. А кто проводит эти активности? Инженер – анализ ТС, создание скриптов, их прогон, их поддержка Тест лид – организация, стратегия, выбор тулов, подхода, стратегии, архитектуры Это – идеальный случай, задачи распределены, и каждый занимается своим делом. Но идеальные случаи встречаются редко, и перечисленные на предыдущем слайде задачи могут выполняться и другими участниками проекта.
  18. Первое – начать автоматизировать тестирование не сложно. По собственному опыту для того, чтобы начать, нужны желание, базовые навыки программирования и интерес к нему Не нужно быть гуру программирования. Например в случае Java - для создания скриптов для автоматизации тестирования используются далеко не все возможности этого языка, в основном базовые.
  19. Инструментов для автоматизации тестирования достаточно много. Различается по области применения, типу тестирования, стоимости, возможностям, платформенности. Здесь я подготовил список наиболее часто использующися инструментов, их возможности и недостатки. Дополнительную информацию об этих и других продуктах довольно легко найти, например, в википедии. Основные инструменты для тестирования UI это Selenium Webdriver и QTP.
  20. Для нагрузочного тестирования чаще используются HP LoadRunner или JMeter. Для тестирования вебсервисов применяют SoapUi
  21. Очень часто используется свой собственный фрэймворк. У нас есть приложение с web ui, для хранения данных используется БД, а для связи между клиентом и БД применяются пост и гет запросы селениум вебдрайвер – это библиотека, которая позволяет обращаться к элементам на веб странице, и выполнять с ними какие то действия. В таком виде инструмент неудобен, это просто jar файл Но можно создать свое рабочее место, свой фрэймворк Фрэймворк в нашем случае - это набор необходимых библиотек и среды разработки, который облегчает разработку скриптов. Если мы возьмем среду разработки, например Idea, создадим maven проект, в качестве зависимостей укажем собственно - вебдрайвер, который позволит обращаться к элементам на странице TestNG, библиотеку, которая будет помогать управлять тестами Добавим библиотеку jdbc, которая нужна для работы с базами данных Языком, на котором мы будем писать сами скрипты, выберем Java, И сам проект интегрируем в дженкинс То у нас получится удобный фрэймворк для создания тест кейсов, а сам прогон тестов будет включен в систему непрерывной интеграции Подробно про использование Селениум Вебдрайвер для автоматизации тестирования расскажет Евгений Ланцов в тренинге, который будет скоро проводить. Приглашаю всех на него.