24
Автоматизация тестирования: Основы Кирилл Кейс Test Automation Engineer [email protected] @testkeis

Automation Overview

Embed Size (px)

Citation preview

Page 1: Automation Overview

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

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

[email protected]@testkeis

Page 2: Automation Overview

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

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

Page 3: Automation Overview

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

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

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

Page 4: Automation Overview

Начинаем?

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

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

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

Page 5: Automation Overview

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

Знания и навыки:• Языки программирования• Design Patterns• Инструменты Автоматизации• Инструменты сборки • ИнфраструктураООП, Java, C#, xUnit, SQL, XML, HTML, JavaScript, Regular Expressions, XPATH, CSS, CI (Jenkins, Hudson,), Linux, Testing, Test Design

Page 6: Automation Overview

Какой язык выбрать?

• Java• C#• Python• Ruby• PHP• Perl

Page 7: Automation Overview

Что можно автоматизировать?

• Генерация данных• Системная конфигурация• Симуляторы• Сборки проекта (UI and non UI)• Анализаторы кода

Page 8: Automation Overview

Как продать автоматизацию?

В контексте:• Продуктовая компания• Аутсорсинговая компания• IT отдел в не IT компании• Фрилансеры

Page 9: Automation Overview

Пример бизнес целей

Автоматизировать что-нибудь – это не цель!!!За год сократить время выполнения тестов в два раза без снижения полноты покрытия требований:• Ежемесячно сокращать на 5%• Автоматизировать 10 % самых трудоемких тестов

и 20 самых легко автоматизируемых тестов• Сократить общее количество тестов на 20%

(убрать дубликаты)• Автоматизировать установку и настройку

Page 10: Automation Overview

Препятствия

• Список Брета• Позиция программистов• Боль перемен• Начальные инвестиции• Постоянно меняющийся код• Унаследованные системы• Страх• Старые привычки

Page 11: Automation Overview

Список Брета

• Остаточный принцип выделения времени на автоматизацию

• Недостаток ясности цели• Недостаток опыта• Большая реорганизация, теряется опыт• Безысходность. Автоматизация – плацебо• Удовольствие – не тестирование,

удовольствие – автоматизация

Page 12: Automation Overview

Квадраты гибкого тестирования

Используйте квадранты для идентификации областей где автоматизация необходима.

Page 13: Automation Overview

Пирамида автоматизации тестов

Пирамида помогает правильно инвестировать средства и ресурсы в автоматизацию для получения максимальной отдачи.

Page 14: Automation Overview

Что надо для работы

• Браузер(ы)• Java SDK (Python, Ruby, .Net, PHP, Perl)• Selenium• Тестовый фреймворк (JUnit, TestNG)• Java IDE (Eclipse, NetBeans, IDEA, …)

+• Selenium IDE• FireBug, Firefinder

Page 15: Automation Overview

План разработки тестов

• Запишем рекордером (Selenium IDE)• Перенесём на язык Java• Запустим при помощи Java

Page 16: Automation Overview

Общая схема

Page 17: Automation Overview

Что такое Selenium?

Selenium -- это инструмент для автоматизированного управления браузерами.

Selenium -- это настоящее и будущее автоматизированного управления браузерами. Если Вы хотите считаться профессионалом в области автоматизации тестирования веб-приложений -- Вы обязательно должны владеть этим инструментом.

Page 18: Automation Overview

Инструменты Selenium

Если Вы хотите сделать:• небольшой сценарий для быстрого

автоматизированного воспроизведения бага,• вспомогательный скрипт для выполнения

отдельных рутинных действий при ручном тестировании,

Вам нужен Selenium IDE -- расширение браузера Firefox, которое позволяет записывать и воспроизводить действия пользователя в браузере.

Page 19: Automation Overview

Инструменты Selenium

Если Вам требуется разработать:• надежный фреймворк автоматизации,

способный работать с любым браузером,• большой тестовый набор, включающий тесты с

достаточно сложной логикой поведения и проверок,

Вам нужен Selenium WebDriver -- набор библиотек для различных языков программирования, позволяющих управлять браузером из программы, написанной на этом языке программирования.

Page 20: Automation Overview

Инструменты Selenium

Предшественником Selenium WebDriver является инструмент Selenium RC, который в настоящее время имеет статус "замороженного" и в дальнейшем развиваться не будет.Поэтому, если Вы ещё продолжаете использовать Selenium RC, рекомендуется рассмотреть варианты миграции на Selenium WebDriver.

Page 21: Automation Overview

Инструменты Selenium

Если Вам необходимо:• запускать тесты удалённо на разных машинах с

разными операционными системами и браузерами,• организовать тестовый стенд для выполнения

большого количества тестов,Вам нужен Selenium Server -- он может принимать команды с удалённой машины, где работает сценарий автоматизации, и исполнять их в браузере. Несколько серверов Selenium могут образовывать распределённую сеть, которая называется Selenium Grid, что позволяет легко масштабировать стенд автоматизации.

Page 22: Automation Overview

Где что брать/читать

http://software-testing.ru/http://automated-testing.info/

http://seleniumhq.org/http://tctutorial.ru/http://code.google.com/p/selenium/http://stackoverflow.com/

Page 23: Automation Overview

Литература

Page 24: Automation Overview