Что такое автоматизация?
• Автоматизация в тестировании – это использование программных средств для поддержки тестирования.
Причины для автоматизации
• Ручное тестирование требует длительного времени
• Ручной процесс подвержен ошибкам• Освобождается время для лучшей работы• Страховочная сетка – регрессия• Получение отклика – рано и часто• Польза от тестов, управляющих кодированием• Тесты обеспечивают документацию• Возврат инвестиций
Начинаем?
Автоматизация тестирования — это стратегическая задача. Она требует:• Наличия специальных людей, обладающих
особыми навыками• Инвестиций времени и средств, особенно, на
начальных этапах• Изменений в общем процессе тестирования
Автоматизатор... Кто он?
Знания и навыки:• Языки программирования• Design Patterns• Инструменты Автоматизации• Инструменты сборки • ИнфраструктураООП, Java, C#, xUnit, SQL, XML, HTML, JavaScript, Regular Expressions, XPATH, CSS, CI (Jenkins, Hudson,), Linux, Testing, Test Design
Какой язык выбрать?
• Java• C#• Python• Ruby• PHP• Perl
Что можно автоматизировать?
• Генерация данных• Системная конфигурация• Симуляторы• Сборки проекта (UI and non UI)• Анализаторы кода
Как продать автоматизацию?
В контексте:• Продуктовая компания• Аутсорсинговая компания• IT отдел в не IT компании• Фрилансеры
Пример бизнес целей
Автоматизировать что-нибудь – это не цель!!!За год сократить время выполнения тестов в два раза без снижения полноты покрытия требований:• Ежемесячно сокращать на 5%• Автоматизировать 10 % самых трудоемких тестов
и 20 самых легко автоматизируемых тестов• Сократить общее количество тестов на 20%
(убрать дубликаты)• Автоматизировать установку и настройку
Препятствия
• Список Брета• Позиция программистов• Боль перемен• Начальные инвестиции• Постоянно меняющийся код• Унаследованные системы• Страх• Старые привычки
Список Брета
• Остаточный принцип выделения времени на автоматизацию
• Недостаток ясности цели• Недостаток опыта• Большая реорганизация, теряется опыт• Безысходность. Автоматизация – плацебо• Удовольствие – не тестирование,
удовольствие – автоматизация
Квадраты гибкого тестирования
Используйте квадранты для идентификации областей где автоматизация необходима.
Пирамида автоматизации тестов
Пирамида помогает правильно инвестировать средства и ресурсы в автоматизацию для получения максимальной отдачи.
Что надо для работы
• Браузер(ы)• Java SDK (Python, Ruby, .Net, PHP, Perl)• Selenium• Тестовый фреймворк (JUnit, TestNG)• Java IDE (Eclipse, NetBeans, IDEA, …)
+• Selenium IDE• FireBug, Firefinder
План разработки тестов
• Запишем рекордером (Selenium IDE)• Перенесём на язык Java• Запустим при помощи Java
Общая схема
Что такое Selenium?
Selenium -- это инструмент для автоматизированного управления браузерами.
Selenium -- это настоящее и будущее автоматизированного управления браузерами. Если Вы хотите считаться профессионалом в области автоматизации тестирования веб-приложений -- Вы обязательно должны владеть этим инструментом.
Инструменты Selenium
Если Вы хотите сделать:• небольшой сценарий для быстрого
автоматизированного воспроизведения бага,• вспомогательный скрипт для выполнения
отдельных рутинных действий при ручном тестировании,
Вам нужен Selenium IDE -- расширение браузера Firefox, которое позволяет записывать и воспроизводить действия пользователя в браузере.
Инструменты Selenium
Если Вам требуется разработать:• надежный фреймворк автоматизации,
способный работать с любым браузером,• большой тестовый набор, включающий тесты с
достаточно сложной логикой поведения и проверок,
Вам нужен Selenium WebDriver -- набор библиотек для различных языков программирования, позволяющих управлять браузером из программы, написанной на этом языке программирования.
Инструменты Selenium
Предшественником Selenium WebDriver является инструмент Selenium RC, который в настоящее время имеет статус "замороженного" и в дальнейшем развиваться не будет.Поэтому, если Вы ещё продолжаете использовать Selenium RC, рекомендуется рассмотреть варианты миграции на Selenium WebDriver.
Инструменты Selenium
Если Вам необходимо:• запускать тесты удалённо на разных машинах с
разными операционными системами и браузерами,• организовать тестовый стенд для выполнения
большого количества тестов,Вам нужен Selenium Server -- он может принимать команды с удалённой машины, где работает сценарий автоматизации, и исполнять их в браузере. Несколько серверов Selenium могут образовывать распределённую сеть, которая называется Selenium Grid, что позволяет легко масштабировать стенд автоматизации.
Где что брать/читать
http://software-testing.ru/http://automated-testing.info/
http://seleniumhq.org/http://tctutorial.ru/http://code.google.com/p/selenium/http://stackoverflow.com/
Литература