SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Артур Орлов, d.ati.su
Подводная часть
айсберга
Что делать, чтобы автотесты
не превратились в Титаник
Здравствуйте, я - разработчик
более 10 лет в разработке на всех этапах:
‣ выслушивание проблемы
‣ формулировка задач
‣ разработка решения
‣ тестирование (в т. ч. и ручное)
‣ внедрение
‣ поддержка/администрирование
Кейс из жизни
1. Selenium-hero Как порой проходит
внедрение автотестов
Selenium? Проще простого!
>>> from selenium import webdriver
>>> browser = webdriver.Firefox()
>>> browser.get(‘http://yandex.ru’)
>>> selector = ‘.search2__input .input__control.input__input’
>>> query_field = browser.find_element_by_css_selector(selector)
>>> query_field.send_keys(‘Selenium is awesome!n’)
Прямо по курсу - айсберг
Генерация отчетов
Запуск тестов Организация кода
Работа с БД, файлами, etc
Работа с браузером
* Грубая эвристическая оценка
Внедрять или не внедрять?
Ожидания и
реальность
Чего стоит ждать от
автотестов, а чего нет
Когда автотесты заменят ручную работу?
1. продукт не меняет поведение
2. окружение продукта не меняется

(браузер, ОС, устройства)
Когда автотесты заменят ручную работу?
1. продукт не меняет поведение
2. окружение продукта не меняется

(браузер, ОС, устройства)
Никогда
Зачем тогда все это надо?
❖ быстрая и дешевая проверка стабильного
функционала
❖ тестирование на ранних этапах разработки
❖ тестирование работающего продукта при
изменениях в инфраструктуре
Чего следует ожидать
❖ смещение фокуса деятельности в разработку и
исследования
❖ работа по поддержанию тестов в актуальном
состоянии
❖ больше коммуникаций с разработчиками
Как оценить эффективность?
Производительность не изменится «скачком»:
1. Начните разрабатывать
2. Сделайте постоянной частью процессов
3. Отключите/сломайте/дождитесь проблем с
тестами
4. Посмотрите, что поменялось ;)
Итак, вы решились ввязаться…
Сколько стоят
автотесты?
Эксплуатационная
себестоимость внедрения
Снова про айсберг
Генерация отчетов
Запуск тестов Организация кода
Работа с БД, файлами, etc
Работа с браузером
Снова про айсберг
Эксплуатация
Разработка
Компоненты инфраструктуры
❖ тестовое окружение продукта
❖ машины, где запускаются тесты
❖ браузеры (grid, nodes, собственно браузеры)
❖ утилиты (интеграция в процессы, автозапуск,
планировщики, мониторинг, уведомления)
Кто будет следить?
❖ тестировщики?
❖ программисты?
❖ системные администраторы?
Вам нужен devops!
Что придется делать?
❖ обновление selenium (grid/nodes/библиотеки)
❖ контроль за версиями браузеров
❖ адаптация тестов к особенностям версий selenium/
браузеров
❖ борьба с деградацией тестов
❖ обслуживание инфраструктуры (место на дисках,
ресурсы БД, etc…)
Основные принципы эксплуатационщиков
1. Если неприятность может произойти, она
произойдет.
2. Даже если неприятность не может произойти, она
произойдет.
3. Из всех неприятностей произойдет именно та,
ущерб от которой больше.
Если вы не боитесь сложностей
Велосипеды и
колеса
Выбираем инструменты
Фундамент автотестов
❖ Язык программирования
❖ Фреймворк организации кода
Выбор языка: основной язык проекта
+selenium доступен почти во всех языках
+помощь программистов
+готовое окружение
- порог вхождения может быть высоким (C++/C#)
- зависимость от коммуникации с программистами
Выбор языка:Python
+низкий порог вхождения
+большой набор существующих инструментов/
библиотек
- окружение придется готовить самостоятельно
- справляться со сложностями тоже придется
самостоятельно
Как выбрать?
Исходите из ваших конкретных условий
❖ Сколько людей надо будет учить?
❖ Насколько тесное и комфортное взаимодействие с
программистами?
❖ Что с юнит-тестами у программистов?
❖ Какие есть особенности/нестандартные/устаревшие
технологии в проекте?
Unittest vs BDD
Выбор фреймворка: unittest-style
+программисты про него знают
+есть много паттернов и способов работы
+можно «вклиниться» в тесты к программистам (при
их наличии и использовании языка проекта)
- можно выстрелить себе в ногу
- надо продумывать организацию кода
Выбор фреймворка: BDD-style
+доступность почти во всех языках (python: lettuce, behave)
+удобство
+самодокументруемый код (ценность сценариев даже без учета
автоматизации)
+минимизация разработки
+снижение порога вхождения в язык
+легкое вовлечение программистов (при использовании языка проекта)
- не годится для всех случаев (например, тестирование REST API)
- не все программисты знакомы с концепцией, надо будет объяснять
Что выбрать?
Кто руководит внедрением автотестов?
❖ Тестировщик - выбирайте BDD
❖ Программист - что выберет он (но лучше, чтобы
BDD)
BDD + основной язык проекта
= хорошая, годная схема
Советы
❖ учитесь у своих программистов
❖ используйте общие инструменты
❖ не изобретайте велосипеды
❖ не забивайте гвозди микроскопом
❖ думайте о параллельном запуске сразу

(10 сценариев x 2-3 минуты ≈ 30 мин!)
❖ не давайте программистам писать сценарии
О самом главном
Люди Кому и зачем нужны
автотесты?
Разговор по понятиям: цель тестирования
❖ Тестировщик: обеспечение требуемого уровня
качества
❖ Программист: я пишу код - ты ищешь баги
Coder vs developer
Coder:
- пишет код
Developer:
- думает, зачем писать
код;
- пишет код;
- думает, как проверять;
- проверяет код;
- проверяет, решена ли
задача
Кто нужен для автотестов
❖ Хотя бы один заинтересованный разработчик
❖ Тестировщики, которые не боятся «не знать»
❖ Тестировщики, которые не боятся глупых вопросов
❖ Тестировщики, которые не боятся программистов
К чему готовить команду
❖ Автотесты - марафон
❖ Стремитесь к early usage (написали тест -
используем)
❖ Остановка = деградация
❖ Автотесты - очень специфичный код
Как распределять работу
❖ Тестировщики - думают о том, как тестировать, как
строить процессы
❖ Разработчики - создают инфраструктуру, помогают
писать код
❖ Тестирование != разработка. Пишите сценарии сами
P.S.
Зачем?
❖ Программистам - инструмент верификации работы
❖ Тестировщики - экономия ресурсов на рутинных
процессах
❖ Бизнес - дополнительный инструмент обеспечения
качества
Зачем лично вам это надо?

Weitere ähnliche Inhalte

Was ist angesagt?

Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...COMAQA.BY
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?CEE-SEC(R)
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web apiIgor Lyubin
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрокаSQALab
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
 
Архитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиАрхитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиSQALab
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевPositive Hack Days
 
selenium stack in python
selenium stack in pythonselenium stack in python
selenium stack in pythonCOMAQA.BY
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...COMAQA.BY
 

Was ist angesagt? (20)

Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
Архитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиАрхитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной области
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
 
selenium stack in python
selenium stack in pythonselenium stack in python
selenium stack in python
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 

Andere mochten auch

Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...
Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...
Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...SQALab
 
Selenium, а давай подождем?
Selenium, а давай подождем?Selenium, а давай подождем?
Selenium, а давай подождем?SQALab
 
Практическое пособие по разрушению отдела тестирования
Практическое пособие по разрушению отдела тестированияПрактическое пособие по разрушению отдела тестирования
Практическое пособие по разрушению отдела тестированияSQALab
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...SQALab
 
Как «сварить» Pairwise и не пуститься во все тяжкие
Как «сварить» Pairwise и не пуститься во все тяжкиеКак «сварить» Pairwise и не пуститься во все тяжкие
Как «сварить» Pairwise и не пуститься во все тяжкиеSQALab
 
Оценка качества автотестов
Оценка качества автотестовОценка качества автотестов
Оценка качества автотестовSQALab
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?SQALab
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Оценки тестирования - полезные и условные метрики
Оценки тестирования - полезные и условные метрикиОценки тестирования - полезные и условные метрики
Оценки тестирования - полезные и условные метрикиSQALab
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаSQALab
 
Инструменты и лайфхаки тестирования REST API
Инструменты и лайфхаки тестирования REST APIИнструменты и лайфхаки тестирования REST API
Инструменты и лайфхаки тестирования REST APISQALab
 

Andere mochten auch (12)

Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...
Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...
Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для ...
 
Selenium, а давай подождем?
Selenium, а давай подождем?Selenium, а давай подождем?
Selenium, а давай подождем?
 
Практическое пособие по разрушению отдела тестирования
Практическое пособие по разрушению отдела тестированияПрактическое пособие по разрушению отдела тестирования
Практическое пособие по разрушению отдела тестирования
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
 
Как «сварить» Pairwise и не пуститься во все тяжкие
Как «сварить» Pairwise и не пуститься во все тяжкиеКак «сварить» Pairwise и не пуститься во все тяжкие
Как «сварить» Pairwise и не пуститься во все тяжкие
 
Оценка качества автотестов
Оценка качества автотестовОценка качества автотестов
Оценка качества автотестов
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Оценки тестирования - полезные и условные метрики
Оценки тестирования - полезные и условные метрикиОценки тестирования - полезные и условные метрики
Оценки тестирования - полезные и условные метрики
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионала
 
Инструменты и лайфхаки тестирования REST API
Инструменты и лайфхаки тестирования REST APIИнструменты и лайфхаки тестирования REST API
Инструменты и лайфхаки тестирования REST API
 
Death By PowerPoint Rus
Death By PowerPoint RusDeath By PowerPoint Rus
Death By PowerPoint Rus
 

Ähnlich wie Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник

Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Technopark
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьGoIT
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестированияAgile Ukraine
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложенийAlexander Khozya
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Badoo Development
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven developmentTestableapple
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17OdessaFrontend
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 

Ähnlich wie Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник (20)

Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
 
Qt tool evaluation
Qt tool evaluationQt tool evaluation
Qt tool evaluation
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Автоматизация тестирования
Автоматизация тестированияАвтоматизация тестирования
Автоматизация тестирования
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложений
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 

Mehr von SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информацияSQALab
 

Mehr von SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информация
 

Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник

  • 1. Артур Орлов, d.ati.su Подводная часть айсберга Что делать, чтобы автотесты не превратились в Титаник
  • 2. Здравствуйте, я - разработчик более 10 лет в разработке на всех этапах: ‣ выслушивание проблемы ‣ формулировка задач ‣ разработка решения ‣ тестирование (в т. ч. и ручное) ‣ внедрение ‣ поддержка/администрирование
  • 3. Кейс из жизни 1. Selenium-hero Как порой проходит внедрение автотестов
  • 4. Selenium? Проще простого! >>> from selenium import webdriver >>> browser = webdriver.Firefox() >>> browser.get(‘http://yandex.ru’) >>> selector = ‘.search2__input .input__control.input__input’ >>> query_field = browser.find_element_by_css_selector(selector) >>> query_field.send_keys(‘Selenium is awesome!n’)
  • 5. Прямо по курсу - айсберг Генерация отчетов Запуск тестов Организация кода Работа с БД, файлами, etc Работа с браузером * Грубая эвристическая оценка
  • 6.
  • 7. Внедрять или не внедрять? Ожидания и реальность Чего стоит ждать от автотестов, а чего нет
  • 8. Когда автотесты заменят ручную работу? 1. продукт не меняет поведение 2. окружение продукта не меняется
 (браузер, ОС, устройства)
  • 9. Когда автотесты заменят ручную работу? 1. продукт не меняет поведение 2. окружение продукта не меняется
 (браузер, ОС, устройства) Никогда
  • 10. Зачем тогда все это надо? ❖ быстрая и дешевая проверка стабильного функционала ❖ тестирование на ранних этапах разработки ❖ тестирование работающего продукта при изменениях в инфраструктуре
  • 11. Чего следует ожидать ❖ смещение фокуса деятельности в разработку и исследования ❖ работа по поддержанию тестов в актуальном состоянии ❖ больше коммуникаций с разработчиками
  • 12. Как оценить эффективность? Производительность не изменится «скачком»: 1. Начните разрабатывать 2. Сделайте постоянной частью процессов 3. Отключите/сломайте/дождитесь проблем с тестами 4. Посмотрите, что поменялось ;)
  • 13. Итак, вы решились ввязаться… Сколько стоят автотесты? Эксплуатационная себестоимость внедрения
  • 14. Снова про айсберг Генерация отчетов Запуск тестов Организация кода Работа с БД, файлами, etc Работа с браузером
  • 16. Компоненты инфраструктуры ❖ тестовое окружение продукта ❖ машины, где запускаются тесты ❖ браузеры (grid, nodes, собственно браузеры) ❖ утилиты (интеграция в процессы, автозапуск, планировщики, мониторинг, уведомления)
  • 17. Кто будет следить? ❖ тестировщики? ❖ программисты? ❖ системные администраторы?
  • 19. Что придется делать? ❖ обновление selenium (grid/nodes/библиотеки) ❖ контроль за версиями браузеров ❖ адаптация тестов к особенностям версий selenium/ браузеров ❖ борьба с деградацией тестов ❖ обслуживание инфраструктуры (место на дисках, ресурсы БД, etc…)
  • 20. Основные принципы эксплуатационщиков 1. Если неприятность может произойти, она произойдет. 2. Даже если неприятность не может произойти, она произойдет. 3. Из всех неприятностей произойдет именно та, ущерб от которой больше.
  • 21. Если вы не боитесь сложностей Велосипеды и колеса Выбираем инструменты
  • 22. Фундамент автотестов ❖ Язык программирования ❖ Фреймворк организации кода
  • 23. Выбор языка: основной язык проекта +selenium доступен почти во всех языках +помощь программистов +готовое окружение - порог вхождения может быть высоким (C++/C#) - зависимость от коммуникации с программистами
  • 24. Выбор языка:Python +низкий порог вхождения +большой набор существующих инструментов/ библиотек - окружение придется готовить самостоятельно - справляться со сложностями тоже придется самостоятельно
  • 25. Как выбрать? Исходите из ваших конкретных условий ❖ Сколько людей надо будет учить? ❖ Насколько тесное и комфортное взаимодействие с программистами? ❖ Что с юнит-тестами у программистов? ❖ Какие есть особенности/нестандартные/устаревшие технологии в проекте?
  • 27. Выбор фреймворка: unittest-style +программисты про него знают +есть много паттернов и способов работы +можно «вклиниться» в тесты к программистам (при их наличии и использовании языка проекта) - можно выстрелить себе в ногу - надо продумывать организацию кода
  • 28. Выбор фреймворка: BDD-style +доступность почти во всех языках (python: lettuce, behave) +удобство +самодокументруемый код (ценность сценариев даже без учета автоматизации) +минимизация разработки +снижение порога вхождения в язык +легкое вовлечение программистов (при использовании языка проекта) - не годится для всех случаев (например, тестирование REST API) - не все программисты знакомы с концепцией, надо будет объяснять
  • 29. Что выбрать? Кто руководит внедрением автотестов? ❖ Тестировщик - выбирайте BDD ❖ Программист - что выберет он (но лучше, чтобы BDD)
  • 30. BDD + основной язык проекта = хорошая, годная схема
  • 31. Советы ❖ учитесь у своих программистов ❖ используйте общие инструменты ❖ не изобретайте велосипеды ❖ не забивайте гвозди микроскопом ❖ думайте о параллельном запуске сразу
 (10 сценариев x 2-3 минуты ≈ 30 мин!) ❖ не давайте программистам писать сценарии
  • 32. О самом главном Люди Кому и зачем нужны автотесты?
  • 33. Разговор по понятиям: цель тестирования ❖ Тестировщик: обеспечение требуемого уровня качества ❖ Программист: я пишу код - ты ищешь баги
  • 34. Coder vs developer Coder: - пишет код Developer: - думает, зачем писать код; - пишет код; - думает, как проверять; - проверяет код; - проверяет, решена ли задача
  • 35. Кто нужен для автотестов ❖ Хотя бы один заинтересованный разработчик ❖ Тестировщики, которые не боятся «не знать» ❖ Тестировщики, которые не боятся глупых вопросов ❖ Тестировщики, которые не боятся программистов
  • 36. К чему готовить команду ❖ Автотесты - марафон ❖ Стремитесь к early usage (написали тест - используем) ❖ Остановка = деградация ❖ Автотесты - очень специфичный код
  • 37. Как распределять работу ❖ Тестировщики - думают о том, как тестировать, как строить процессы ❖ Разработчики - создают инфраструктуру, помогают писать код ❖ Тестирование != разработка. Пишите сценарии сами
  • 38. P.S.
  • 39. Зачем? ❖ Программистам - инструмент верификации работы ❖ Тестировщики - экономия ресурсов на рутинных процессах ❖ Бизнес - дополнительный инструмент обеспечения качества
  • 40. Зачем лично вам это надо?