Automation Overview

Preview:

Citation preview

Автоматизация тестирования:Основы

Кирилл КейсTest Automation Engineer

Kyrylo.keis@gmail.com@testkeis

Что такое автоматизация?

• Автоматизация в тестировании – это использование программных средств для поддержки тестирования.

Причины для автоматизации

• Ручное тестирование требует длительного времени

• Ручной процесс подвержен ошибкам• Освобождается время для лучшей работы• Страховочная сетка – регрессия• Получение отклика – рано и часто• Польза от тестов, управляющих кодированием• Тесты обеспечивают документацию• Возврат инвестиций

Начинаем?

Автоматизация тестирования — это стратегическая задача. Она требует:• Наличия специальных людей, обладающих

особыми навыками• Инвестиций времени и средств, особенно, на

начальных этапах• Изменений в общем процессе тестирования

Автоматизатор... Кто он?

Знания и навыки:• Языки программирования• 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/

Литература