Manual QA course. Автоматизация тестирования. (Лекция 28)

Содержание

Слайд 2

По степени автоматизации ● Ручное тестирование. ● Автоматизированное тестирование. ● Полуавтоматизированное тестирование.

По степени автоматизации

● Ручное тестирование.
● Автоматизированное тестирование.
● Полуавтоматизированное тестирование.

Слайд 3

Полуавтоматизированное тестирование

Полуавтоматизированное тестирование

Слайд 4

Автоматизированное тестирование Процесс верификации программного обеспечения, при котором основные функции и

Автоматизированное тестирование

Процесс верификации программного обеспечения, при котором основные функции и шаги

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

Три главных вопроса

Три главных вопроса

Слайд 6

Три главных вопроса Why? What? How?

Три главных вопроса

Why? What? How?

Слайд 7

Why: Decision Criteria • Экономическая выгода / ROI (возврат инвестиций) /

Why: Decision Criteria

• Экономическая выгода / ROI (возврат инвестиций) / простая

математика
• Процесс тестирования программного обеспечения
• Обеспечение качества
• “Долгоиграющий” проект
• Желание и способность
• Квалифицированные специалисты
• Требования заказчика
Слайд 8

Why: Decision Criteria ROI = (стоимость ручного - стоимость автоматизации) /

Why: Decision Criteria

ROI = (стоимость ручного - стоимость автоматизации) / стоимость

автоматизации
Простая математика и простая логика
• Автоматизация в 10 раз дороже, чем Manual
• ROI менее 1 года
• Частота выполнения
Слайд 9

Оптимизация процесса тестирования • Автоматизированные тесты работают значительно быстрее, чем человек

Оптимизация процесса тестирования

• Автоматизированные тесты работают значительно быстрее, чем человек
• Тестирование

проходит намного чаще
• Избегаем человеческого фактора
• Моделирование мультиюзер тестирования
Слайд 10

Запросы заказчика • Для того, чтобы сэкономить деньги -> ROI •

Запросы заказчика

• Для того, чтобы сэкономить деньги -> ROI
• Чтобы выполнить

Agile process -> доставить качественный продукт быстрее
• Для улучшения качества -> необходимо определить основную причину плохого качества
• Для покрытия ручных тест кейсов автоматизированными -> необходимо определить истинную цель
Слайд 11

Итоги • Какова реальная цель автоматизации • Является ли данный проект

Итоги

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

автоматизации
• Какой функционал будет эффективно автоматизировать
• Определить высшую оценку времени для прототипирования, разработки и реализации автоматизации
• Какой эффект для проекта даст автоматизация
Слайд 12

What? Smoke Test Regression testing Performance and Load testing Unit testing

What?

Smoke Test
Regression testing
Performance and Load testing
Unit testing
Repeatable actions / Routine tasks
Preconditions

and test data for other tests
Слайд 13

How: Approaches Unit testing - для тестирования отдельного модуля TDD -

How: Approaches

Unit testing - для тестирования отдельного модуля
TDD - сначала тест,

затем разработка (все тесты не пройдены), цель: все тесты пройдены
BDD - управляется и технической стороной и стороной бизнеса: бизнес-интересы + техническое понимание
Keyword Driven - определить ключевые слова (или слова действия) для каждой функции, которую мы хотим проверить
Data Driven - создание реюзабельной тестовой логики для снижения затрат на поддержку и улучшить тестовое покрытие; тесты выполняются и проверяются на основании данных
Слайд 14

Итоги • Автоматизация тестирования требует поставленного процесса тестирования и правильного планирования

Итоги

• Автоматизация тестирования требует поставленного процесса тестирования и правильного планирования
• Не

автоматизировать, если у вас не хватает времени даже для ручного тестирования
• Автоматизация тестирования является фуллтайм процессом, поэтому использовать нужных людей
• Автоматизация - это больше, чем выполнение тестов (управление, поддержка, проведение, отчет о результатах, управление тестовой средой)
• Выберите подходящую технику тестирования для проекта
• Не пытайтесь автоматизировать все
• Не разрабатывайте программу, чтобы протестировать другую программу
• Управляйте процессом автоматизации так же, как процессом разработки
• Разрабатывайте тесты и функционал для тестов так, чтобы их было проще использовать и переиспользовать
• Анализируйте и совершенствуйте процесс реализации после каждого проекта
Слайд 15

Как выбрать инструмент для тестирования? Прежде всего, необходимо проанализировать наиболее популярные

Как выбрать инструмент для тестирования?

Прежде всего, необходимо проанализировать наиболее популярные инструменты

в различных аспектах. Затем вам нужно поделиться результатами этого анализа с командой автоматизации тестирования и обсудить его
Слайд 16

Как выбрать инструмент для тестирования? Окружение проекта Требования заказчика Подход к

Как выбрать инструмент для тестирования?

Окружение проекта
Требования заказчика
Подход к тестированию
Знание и

умение работать в команде автоматизации тестирования с этими инструментами
Слайд 17

Как выбрать инструмент для тестирования? Особенности Легкий в использовании, IDE Запись

Как выбрать инструмент для тестирования?

Особенности
Легкий в использовании, IDE
Запись / воспроизведение
Распознавание объектов

(нахождения элементов и т.д.)
Слайд 18

Как выбрать инструмент для тестирования? Удобство использования Поддерживаемые ОС и платформы

Как выбрать инструмент для тестирования?

Удобство использования
Поддерживаемые ОС и платформы для тестирования
Поддержка

инструмента
Интеграция в процесс разработки ПО (CI, системы контроля версий и т.д.)
Слайд 19

Как выбрать инструмент для тестирования? Стоимость Free / Commercial

Как выбрать инструмент для тестирования?

Стоимость
Free / Commercial

Слайд 20

Selenium IDE ● Open Source ● расширение для Firefox ● множество плагинов

Selenium IDE

● Open Source
● расширение для Firefox
● множество плагинов

Слайд 21

Selenium IDE

Selenium IDE

Слайд 22

Page Object model

Page Object model

Слайд 23

Page Object model Page Object Model – это паттер проектирования для

Page Object model

Page Object Model – это паттер проектирования для создания Object Repository для

элементов UI.
Согласно этому паттерну – для каждой страницы приложения/сайта должен быть определен соответствующий класс.
Слайд 24

Page Object model

Page Object model

Слайд 25

Page Object model. Преимущества. Элементы объявляются отдельно от реализации теста; Независимость

Page Object model. Преимущества.

Элементы объявляются отдельно от реализации теста;
Независимость класса с

объектами от реализации тестов;
Становится меньше кода;
Методы получают более реальные имена.
Слайд 26

Page Object model. Пример.

Page Object model. Пример.

Слайд 27

Page Object model. Пример.

Page Object model. Пример.

Слайд 28

BDD Как (As a) [X] Я хочу (I want) [Y] Чтобы

BDD

Как (As a) [X] Я хочу (I want) [Y] Чтобы (so that) [Z]
Допустим (Given) некоторый начальный контекст (данность), Если (When) происходит событие, То (then) убедится,

что получены некоторые результаты.
Слайд 29

BDD Название: Клиент изымает наличные Как клиент, Я хочу получить наличные

BDD

Название: Клиент изымает наличные Как клиент, Я хочу получить наличные из банкомата, чтобы мне не пришлось

стоять в очереди в банке.
Слайд 30

BDD +Сценарий 1: На счету есть деньги+ Допустим на счету есть

BDD

+Сценарий 1: На счету есть деньги+ Допустим на счету есть деньги И Карточка валидная И в банкомате

есть наличность Если Клиент запрашивает наличность То Убедиться в том, что сумма вычтена со счета И убедиться в том, что деньги выданы И убедиться в том, что карточка возвращена
Слайд 31

BDD +Сценарий 2: счет превышен за рамки лимита + Допустим счет

BDD

+Сценарий 2: счет превышен за рамки лимита + Допустим счет превышен И карточка валидная Если клиент запрашивает

наличность То убедиться в том, что показано сообщение об отказе И убедиться в том, что наличность не выдана И убедиться в том, что карточка возвращена
Слайд 32

BDD Feature: Calculator In order to avoid silly mistakes As a

BDD

Feature: Calculator
In order to avoid silly mistakes
As a math

idiot
I want to be told the sum of two numbers
Слайд 33

BDD @mytag Scenario: Add two numbers Given I have entered 50

BDD

@mytag
Scenario: Add two numbers
Given I have entered 50 into

the calculator
And I have also entered 70 into the calculator
When I press add
Then the result should be 120 on the screen
Слайд 34

BDD

BDD

Слайд 35

Вопросы и ответы

Вопросы и ответы