SlideShare a Scribd company logo
1 of 22
Автоматизированное
тестирование и с чем
его едят
Hub QA meetup
Кто этот парень перед нами?
Кто этот парень перед нами?
Имя: Андрей Сильчук
Возраст: 27 лет
Место работы: DataArt
Должность: Project Manager
Увлечения: фигурное катание, Star Wars,
snowboarding
Agenda
• Автоматизация? Какая еще автоматизация?
• Автоматическое тестирование ПО. Зачем вообще?
• Отличие от мануального тестирования ПО, или Ручник vs человек
разумный.
• Имею желание, но не имею возможности, или какие знания были бы
полезны в этой области.
• Когда стоит внедрять автоматизацию. ROI и другие непонятные
слова на три буквы.
Что такое автоматическое
тестирование (АТ)?
• Автоматизированное (автоматическое) тестирование является
составной частью процесса тестирования. Оно использует программные
средства для выполнения тестов и проверки результатов пробега этих
тестов, что помогает сократить время тестирования и упростить его
процесс.
• Automation QA - это QA engineer обеспечивающий создание, отладку и
поддержку работоспособного состояния тест скриптов, тестовых
наборов и инструментов для автоматизированного тестирования.
Подходы к АТ
• Тестировние на GUI уровне. Эмуляция дествий пользователя, часто
record-replay мехнизм. Автоматизация black-box тестирования (иногда
с элементами серого ящика)
• Тестирование на уровне кода, автоматизация Unit-тестирвоания
(модульное тестирование)
End-user testing/UI testing
Code-level testing
End-User testing VS Unit testing
• Реальная система
• Record & Replay
• End to end
• Выполняются QA
End User Tests
• А что если UI не готов?
• Высокий Maintenance - UI меняется
• Покрытие
• Flexibility – Не видна обратная связь
с компонентами
• Code level тесты.
• Написаны на AUT языке
• Маленький maintenance
• Выполняются Dev
Unit Tests
• Стерильная система (mock)
• Не находит интеграционных проблем
• Узкие тесты – используют один метод
• Обычно пишутся Dev, который и
написал сам компонент
Основные инструменты АТ
• Selenium
• QTP
• JUnit
• Microsoft UI Automation
• Coded UI
• Load Runner
• etc .
Что может быть покрыто АТ?
• Functional:
• Unit tests
• Integration testing
• End-User testing
• UI:
• Позиция элементов, внешний вид, наполнение, типы ввода и
фильтрация ввода
• Performance and stability
Manual vs Automation
Ручное Автоматизированное
Задание входных
значений
Гибкость в задании данных. Позволяет использовать разные
значения на разных циклах прогона тестов, расширяя покрытие
Входные значения строго заданы
Проверка результата Гибкая, позволяет тестировщику оценивать нечетко
сформулиррованные критерии
Строгая. Нечетко
сформулированные критерии
могут быть проверены только
путём сравнения с эталоном
Повторяемость Низкая. Человеческий фактор и нечеткое определение данных
приводят к неповторяемости тестирования
Высокая
Надежность Низкая. Длительные тестовые циклы приводят к снижению
внимания у тестировщика
Высокая, не зависит от длины
тестового цикла
Чувствительность к
незначительным
изменениям в
продукте
Зависит от детальности описания процедурыю Обычно
тестировщик в состоянии выполнить тест, если внешний вид
продукта и текст сообщений несколько изменились
Высокая. Незначительные
изменения в интерфейсе часто
ведут к коррекции эталонов
Скорость выполнения
тестового набора
Низкая Высокая
+ Manual vs Automation
• Возможность неформального тестирования
• Возможность гибкой оценки результатов
• Возможность использования исследовательской техники
тестирования
• Возможность полностью имитировать работу пользователя,
использовать пользовательские сценарии
• Не очень чувствителен к изменению продукта
- Manual vs Automation
• Занимает много времени и ресурсов
• Не всегда надежно
• В ряде случаев практически невозможно
+ Automation vs Manual
• Занимают меньше время на выполнение
• Имеют высокую надежность
• Позволяют выполнить тестирование, практически невыполнимое
человеком(например нагрузочное тестирование)
- Automation vs Manual
• Чувствителен к малейшим изменениям в продукте
• Редко позволяет сделать гибкое тестирование и гибкую оценку
результатов
• Нет возможности тестировать неформально и используя
исследовательскую технику тестирования
• Часто требует много времени на создание и поддержку тестов
Когда стоит приступать к АТ?
• Часть функционала на которую запланирована автоматизация готова
и протестирована мануально
• Большое кол-во предварительных данных для тестирования (DB, XML,
etc.), большое количество деталей для проверки
• UI стабилен
• Необходима длительная нагрузка на систему (Performance)
• Большое количество регрессии
Стадии процесса АТ
Принятие
решения о
внедрении
автоматическо
го
тестирования
Выбор
инструменталь
ных средств
Внедрение
автоматическ
ого
тестирования
Планирование,
проетирование
и разработка
Выполнение
тестов,
упарвление
процессом
тестирования
Оценка и
усовершенство
вание
процесса
ROI
ROI = (Gain - Investments)/Gain *100%
Gain - расчётная стоимость тестирования без автоматизации
Investments - расходы на создание и выполнение автоматической
библиотеки тестов за тот же период, что был использован для вычисления
расчётной стоимости тестирования без автоматизации
ROI
Первая версия:
(Время на выполнение тестирования вручную) -
(Время на изучение + время на реорганизацию процесса + время на создание
тестов + время на поддержу + время на исследование дефекта и анализ
результатов) = Экономия времени при использовании автоматического
тестирования
ROI
Все последующие версии:
Время на выполнение тестирования вручную – (время на поддержу тестов
+ время на создание тестов + время на исследование дефекта и анализ
результатов) = Экономия времение при использовании автоматического
тестирования
Manual VS Auto
0
100
200
300
400
500
1 2 3 4 5 6 7 8 9 101112131415161718192021222324
Man
ual
Auto
Время
Кол-во тестов
Что может пригодиться юному
автоматизатору?
• Знания основ мануального тестирования https://www.google.com.ua
• Скриптование. Начиная от простейших cmd и shell скриптов и
заканчивая более сложными вещами (например js)
• Знания WebServices , SOAPUI (Rest and SOAP) http://www.w3schools.com/
• XML and XPATH
• DHTML
• ООП https://www.udemy.com/java-tutorial/
• Регулярные выражения ( http://regexone.com/ )
Вопросы?

More Related Content

What's hot

Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...COMAQA.BY
 
Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17Igor Khrol
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Способы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюCOMAQA.BY
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииGleb Rybalko
 
CQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестированияCQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестированияUladzimir Kryvenka
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеSQALab
 
Фокус тест
Фокус тестФокус тест
Фокус тестSQALab
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»DataArt
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Igor Khrol
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной командеSvetlana Fedyanina
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеSQALab
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
 
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...Igor Khrol
 
Process Quality, QA and QC. QA Club. Kharkov. Ukraine
Process Quality, QA and QC. QA Club. Kharkov. UkraineProcess Quality, QA and QC. QA Club. Kharkov. Ukraine
Process Quality, QA and QC. QA Club. Kharkov. UkraineSergiy Povolyashko, PMP
 

What's hot (20)

Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17Test Automation Wargaming SQA Days 17
Test Automation Wargaming SQA Days 17
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Способы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированию
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
 
02ka-nov
02ka-nov02ka-nov
02ka-nov
 
CQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестированияCQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестирования
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
 
Фокус тест
Фокус тестФокус тест
Фокус тест
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной команде
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
 
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
 
Process Quality, QA and QC. QA Club. Kharkov. Ukraine
Process Quality, QA and QC. QA Club. Kharkov. UkraineProcess Quality, QA and QC. QA Club. Kharkov. Ukraine
Process Quality, QA and QC. QA Club. Kharkov. Ukraine
 

Similar to Андрей Сильчук: "Автоматическое тестирование".

Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Automation Overview
Automation OverviewAutomation Overview
Automation OverviewKiraKeiss
 
доклад на SQADays 2011 в Казани
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казаниmargo-qa
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей РевкоSQALab
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙCEE-SEC(R)
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыSQALab
 
Jubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolCOMAQA.BY
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?SQALab
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиАлександр Шамрай
 
Человеко-дни на тестирование или как не ошибиться с оценкой
Человеко-дни на тестирование или как не ошибиться с оценкойЧеловеко-дни на тестирование или как не ошибиться с оценкой
Человеко-дни на тестирование или как не ошибиться с оценкойSQALab
 
зуева татьяна - опыт автоматизации тестирования в Agile проекте
зуева татьяна -  опыт автоматизации тестирования в Agile проектезуева татьяна -  опыт автоматизации тестирования в Agile проекте
зуева татьяна - опыт автоматизации тестирования в Agile проектеMagneta AI
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
About Testers
About TestersAbout Testers
About Testersantsh
 
Майстер-клас "Автоматизоване тестування. З чого почати?
Майстер-клас "Автоматизоване тестування. З чого почати?Майстер-клас "Автоматизоване тестування. З чого почати?
Майстер-клас "Автоматизоване тестування. З чого почати?DataArt
 

Similar to Андрей Сильчук: "Автоматическое тестирование". (20)

Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Automation Overview
Automation OverviewAutomation Overview
Automation Overview
 
доклад на SQADays 2011 в Казани
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казани
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
Testing
TestingTesting
Testing
 
Enter: testing
Enter: testingEnter: testing
Enter: testing
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
 
Jubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation Tool
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
 
Человеко-дни на тестирование или как не ошибиться с оценкой
Человеко-дни на тестирование или как не ошибиться с оценкойЧеловеко-дни на тестирование или как не ошибиться с оценкой
Человеко-дни на тестирование или как не ошибиться с оценкой
 
зуева татьяна - опыт автоматизации тестирования в Agile проекте
зуева татьяна -  опыт автоматизации тестирования в Agile проектезуева татьяна -  опыт автоматизации тестирования в Agile проекте
зуева татьяна - опыт автоматизации тестирования в Agile проекте
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
About Testers
About TestersAbout Testers
About Testers
 
Майстер-клас "Автоматизоване тестування. З чого почати?
Майстер-клас "Автоматизоване тестування. З чого почати?Майстер-клас "Автоматизоване тестування. З чого почати?
Майстер-клас "Автоматизоване тестування. З чого почати?
 
Test design print
Test design printTest design print
Test design print
 

More from Hub-IT-School

Лекция о профессии Frontend developer / 30.1
Лекция о профессии Frontend developer / 30.1Лекция о профессии Frontend developer / 30.1
Лекция о профессии Frontend developer / 30.1Hub-IT-School
 
Hub IT School: Лекция "IT профессии"
Hub IT School: Лекция "IT профессии"Hub IT School: Лекция "IT профессии"
Hub IT School: Лекция "IT профессии"Hub-IT-School
 
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучениеHub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучениеHub-IT-School
 
Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...
Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...
Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...Hub-IT-School
 
Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"
Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"
Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"Hub-IT-School
 
Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".Hub-IT-School
 
Елена Михеева: "ТОП-10 грехов дизайнеров"
Елена Михеева: "ТОП-10 грехов дизайнеров"Елена Михеева: "ТОП-10 грехов дизайнеров"
Елена Михеева: "ТОП-10 грехов дизайнеров"Hub-IT-School
 

More from Hub-IT-School (7)

Лекция о профессии Frontend developer / 30.1
Лекция о профессии Frontend developer / 30.1Лекция о профессии Frontend developer / 30.1
Лекция о профессии Frontend developer / 30.1
 
Hub IT School: Лекция "IT профессии"
Hub IT School: Лекция "IT профессии"Hub IT School: Лекция "IT профессии"
Hub IT School: Лекция "IT профессии"
 
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучениеHub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
 
Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...
Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...
Hub AI&BigData meetup / Вадим Кузьменко: Как машинное обучение помогает снизи...
 
Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"
Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"
Hub IT School 15.12 / Олег Саламаха: "Как пройти долину смерти"
 
Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".
 
Елена Михеева: "ТОП-10 грехов дизайнеров"
Елена Михеева: "ТОП-10 грехов дизайнеров"Елена Михеева: "ТОП-10 грехов дизайнеров"
Елена Михеева: "ТОП-10 грехов дизайнеров"
 

Андрей Сильчук: "Автоматическое тестирование".

  • 2. Кто этот парень перед нами?
  • 3. Кто этот парень перед нами? Имя: Андрей Сильчук Возраст: 27 лет Место работы: DataArt Должность: Project Manager Увлечения: фигурное катание, Star Wars, snowboarding
  • 4. Agenda • Автоматизация? Какая еще автоматизация? • Автоматическое тестирование ПО. Зачем вообще? • Отличие от мануального тестирования ПО, или Ручник vs человек разумный. • Имею желание, но не имею возможности, или какие знания были бы полезны в этой области. • Когда стоит внедрять автоматизацию. ROI и другие непонятные слова на три буквы.
  • 5. Что такое автоматическое тестирование (АТ)? • Автоматизированное (автоматическое) тестирование является составной частью процесса тестирования. Оно использует программные средства для выполнения тестов и проверки результатов пробега этих тестов, что помогает сократить время тестирования и упростить его процесс. • Automation QA - это QA engineer обеспечивающий создание, отладку и поддержку работоспособного состояния тест скриптов, тестовых наборов и инструментов для автоматизированного тестирования.
  • 6. Подходы к АТ • Тестировние на GUI уровне. Эмуляция дествий пользователя, часто record-replay мехнизм. Автоматизация black-box тестирования (иногда с элементами серого ящика) • Тестирование на уровне кода, автоматизация Unit-тестирвоания (модульное тестирование) End-user testing/UI testing Code-level testing
  • 7. End-User testing VS Unit testing • Реальная система • Record & Replay • End to end • Выполняются QA End User Tests • А что если UI не готов? • Высокий Maintenance - UI меняется • Покрытие • Flexibility – Не видна обратная связь с компонентами • Code level тесты. • Написаны на AUT языке • Маленький maintenance • Выполняются Dev Unit Tests • Стерильная система (mock) • Не находит интеграционных проблем • Узкие тесты – используют один метод • Обычно пишутся Dev, который и написал сам компонент
  • 8. Основные инструменты АТ • Selenium • QTP • JUnit • Microsoft UI Automation • Coded UI • Load Runner • etc .
  • 9. Что может быть покрыто АТ? • Functional: • Unit tests • Integration testing • End-User testing • UI: • Позиция элементов, внешний вид, наполнение, типы ввода и фильтрация ввода • Performance and stability
  • 10. Manual vs Automation Ручное Автоматизированное Задание входных значений Гибкость в задании данных. Позволяет использовать разные значения на разных циклах прогона тестов, расширяя покрытие Входные значения строго заданы Проверка результата Гибкая, позволяет тестировщику оценивать нечетко сформулиррованные критерии Строгая. Нечетко сформулированные критерии могут быть проверены только путём сравнения с эталоном Повторяемость Низкая. Человеческий фактор и нечеткое определение данных приводят к неповторяемости тестирования Высокая Надежность Низкая. Длительные тестовые циклы приводят к снижению внимания у тестировщика Высокая, не зависит от длины тестового цикла Чувствительность к незначительным изменениям в продукте Зависит от детальности описания процедурыю Обычно тестировщик в состоянии выполнить тест, если внешний вид продукта и текст сообщений несколько изменились Высокая. Незначительные изменения в интерфейсе часто ведут к коррекции эталонов Скорость выполнения тестового набора Низкая Высокая
  • 11. + Manual vs Automation • Возможность неформального тестирования • Возможность гибкой оценки результатов • Возможность использования исследовательской техники тестирования • Возможность полностью имитировать работу пользователя, использовать пользовательские сценарии • Не очень чувствителен к изменению продукта
  • 12. - Manual vs Automation • Занимает много времени и ресурсов • Не всегда надежно • В ряде случаев практически невозможно
  • 13. + Automation vs Manual • Занимают меньше время на выполнение • Имеют высокую надежность • Позволяют выполнить тестирование, практически невыполнимое человеком(например нагрузочное тестирование)
  • 14. - Automation vs Manual • Чувствителен к малейшим изменениям в продукте • Редко позволяет сделать гибкое тестирование и гибкую оценку результатов • Нет возможности тестировать неформально и используя исследовательскую технику тестирования • Часто требует много времени на создание и поддержку тестов
  • 15. Когда стоит приступать к АТ? • Часть функционала на которую запланирована автоматизация готова и протестирована мануально • Большое кол-во предварительных данных для тестирования (DB, XML, etc.), большое количество деталей для проверки • UI стабилен • Необходима длительная нагрузка на систему (Performance) • Большое количество регрессии
  • 16. Стадии процесса АТ Принятие решения о внедрении автоматическо го тестирования Выбор инструменталь ных средств Внедрение автоматическ ого тестирования Планирование, проетирование и разработка Выполнение тестов, упарвление процессом тестирования Оценка и усовершенство вание процесса
  • 17. ROI ROI = (Gain - Investments)/Gain *100% Gain - расчётная стоимость тестирования без автоматизации Investments - расходы на создание и выполнение автоматической библиотеки тестов за тот же период, что был использован для вычисления расчётной стоимости тестирования без автоматизации
  • 18. ROI Первая версия: (Время на выполнение тестирования вручную) - (Время на изучение + время на реорганизацию процесса + время на создание тестов + время на поддержу + время на исследование дефекта и анализ результатов) = Экономия времени при использовании автоматического тестирования
  • 19. ROI Все последующие версии: Время на выполнение тестирования вручную – (время на поддержу тестов + время на создание тестов + время на исследование дефекта и анализ результатов) = Экономия времение при использовании автоматического тестирования
  • 20. Manual VS Auto 0 100 200 300 400 500 1 2 3 4 5 6 7 8 9 101112131415161718192021222324 Man ual Auto Время Кол-во тестов
  • 21. Что может пригодиться юному автоматизатору? • Знания основ мануального тестирования https://www.google.com.ua • Скриптование. Начиная от простейших cmd и shell скриптов и заканчивая более сложными вещами (например js) • Знания WebServices , SOAPUI (Rest and SOAP) http://www.w3schools.com/ • XML and XPATH • DHTML • ООП https://www.udemy.com/java-tutorial/ • Регулярные выражения ( http://regexone.com/ )

Editor's Notes

  1. Рассказать про себя. Как зовут Где работаешь Кем работаешь Зачем ты здесь Хобби и увлечения …..
  2. Рассказать про себя. Как зовут Где работаешь Кем работаешь Зачем ты здесь Хобби и увлечения …..
  3. Описание курса….
  4. Первые попытки «автоматизации» появились в эпоху операционных систем DOS. Тогда она заключалась в выдаче приложению команд через командную строку и анализе результатов. Чуть позднее добавились удаленные вызовы через API для работы по сети. Впервые об автоматизированном тестировании упоминается в книге Фредерика Брукса «Мифический человеко-месяц», где говорится о перспективах использования модульного тестирования. Но по-настоящему автоматизация тестирования стала развиваться только в 1980-х годах.
  5. Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и тестирование пользовательского интерфейса (в частности, GUI-тестирование). К первому типу относится, в частности, модульное тестирование. Ко второму — имитация действий пользователя с помощью специальных тестовых фреймворков. Модульное тестирование, или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок. Цель модульного тестирования — изолировать отдельные части программы и показать, что по отдельности эти части работоспособны. Этот тип тестирования обычно выполняется программистами. Интеграцио́нное тести́рование (англ. Integration testing, иногда называется англ. Integration and Testing, аббревиатура англ. I&T) — одна из фаз тестирования программного обеспечения, при которой отдельные программные модули объединяются и тестируются в группе. Обычно интеграционное тестирование проводится после модульного тестирования и предшествует системному тестированию. Интеграционное тестирование в качестве входных данных использует модули, над которыми было проведено модульное тестирование, группирует их в более крупные множества, выполняет тесты, определённые в плане тестирования для этих множеств, и представляет их в качестве выходных данных и входных для последующего системного тестирования. Целью интеграционного тестирования является проверка соответствия проектируемых единиц функциональным, приёмным и требованиям надежности. Тестирование этих проектируемых единиц — объединения, множества или группы модулей — выполняется через их интерфейс, с использованием тестирования «чёрного ящика».
  6. Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и тестирование пользовательского интерфейса (в частности, GUI-тестирование). К первому типу относится, в частности, модульное тестирование. Ко второму — имитация действий пользователя с помощью специальных тестовых фреймворков.
  7. Selenium – целое семейство иснструментов для тестирования Web-приложений о котором мы поговорим позже подробней. Бесплатный QTP - HP QuickTest Professional (QTP) — один из ведущих[1] инструментов автоматизации функционального тестирования, является флагманским продуктом компании HP в своей линейке. Для разработки автоматизированных тестов QTP использует язык VBScript, и поддерживает следующие технологии[2]: Windows® Presentation Foundation, Web services, Macromedia Flex, Ajax, Delphi, .NET, J2EEWeb, Visual Basic, ActiveX, Java, Oracle, SAP Solution, TE, PowerBuilder, Siebel, PeopleSoft, VisualAge, Stingray. Платен. Имеет репозиторий объектов JUnit — библиотека для модульного тестирования программного обеспечения на языке Java. Созданный Кентом Беком и Эриком Гаммой, JUnit принадлежит семье фреймворков xUnit для разных языков программирования, берущей начало в SUnit Кента Бека для Smalltalk. Microsoft UI Automation – API позволяет получить доступ к, идентифицировать и управлять элементами пользовательского интерфейса десктопных приложений Coded UI Test – это решение для автоматизации UI-тестов, которое появилось в Microsoft Visual Studio 10. Позволяет автоматизировать как web-приложения, так и desktop-приложения. Достоинства: полная интеграция с TFS. Огромное количество возможностей при работе с .NET технологиями. Поддержка от Microsoft; наличие встроенного инструмента записи / воспроизведения тестов. Правда, запись доступна только в IE; отлично справляется с AJAX запросами в веб-приложениях; позволяет искать веб-элементы по нескольким критериям поиска (нечеткое совпадение); можно автоматизировать Silverlight 4; подходит для тестирования Windows desktop-приложений. Недостатки: Coded UI Test – довольно дорогое удовольствие, так как запись тестов доступна только в Ultimate и Premium версиях Visual Studio. В Professional версии есть возможность только запуска тестов; ограниченные возможности для тестирования веб-приложений. На данный момент поддерживается только IE 7, IE 8 и Firefox 3.6; отсутствие регулярных обновлений. Изменения доступны только с выпуском очередных версий или дополнений Visual Studio; при использовании инструмента записи / воспроизведения генерируется слишком много кода; для тестирования веб-приложений есть проблемы при поиске требуемого окна; для простейших команд требуется писать много кода; низкая скорость работы (как минимум, при сравнении с Selenium). HP LoadRunner — утилита для автоматизированного нагрузочного тестирования. Программа может выполнять как тестирование различных приложений, так и тестирование сайтов различного уровня сложности. Подключая виртуальных пользователей выполняющих различные скрипты (действия), по различным сценариям. Программа имеет соответствующие наборы инструментов для проведения тестирования. Так же в состав HP LoadRunner входит набор инструментов для работы по различным протоколам с приложением (удаленно, через прокси-сервер и т.п.)
  8. Задачки по расчету:
  9. Задачки по расчету:
  10. Задачки по расчету: У нас есть проект в котором планируется имплементация 7 фич. Известно что на каждую фичу если тестировать мануально надо потратить 30 часов. А на автоматизацию одной фичи необходимо потратить 60 часов. Каких данных не хватает для расчета РОИ? Не хватает время на реогрганизацию процесса (изучение автоматического тула + договориться об имплементации автоматизации....) + время на выполнение тестов (анализ результатов + репортинг) + время на поддежку тестов + время на исследование дефекта. На реоганизацию надо 50. Выполнение тестов 40 на весь проект.... Время на поддержку – 50. На исследование деффекта – 30. Решение – 7*30 – (7*60 + 50 + 40 + 50 + 30) = 210 – (420+ 170)= 210 – 590 – НЕ ВЫГОДНО А теперь посчитаем что у нас тестирование должно проходить на 5 Операционках.... (не или 5 версий продукта будет...) Решение – 7*30*5 – (7*60 + 50 + 40*5 (если тесты бегают паралельно то времени понадобится меньше) + 50 + 30*5) = 1050 – (420 + 50 + 200 + 50 + 150) = 1050 – 870 – ВЫГОДНО
  11. Ручное тестирование и автоматизированное – два совершенно разных процесса, точнее, два способа выполнить один и тот же процесс. Их динамика отличается,  и типы ошибок, которые они пытаются обнаружить, также отличаются. Соответственно, напрямую их сравнивать по стоимости или по количеству обнаруженных ошибок, бессмысленно. Обсуждаем график, у кого какие мысли почему так нарисовано... В случае мануального тестирования мы в какой-то момент упремся в потолок того что мы прогнать за 1 день из-за нехватки инженеров, в то время как в автоматизации этот предел не столь явен. Правда в случае АТ в начале количество тестов будет меньше чем в МТ, т.к. Понадобиться время на написание этих тестов, фреймворка и тд.....