17
Докладчик: Авчинникова О. И. Причины и способы имитации back-end'а февраль, 2016

Причины и способы имитации back-end'а

Embed Size (px)

Citation preview

Page 1: Причины и способы имитации back-end'а

Докладчик: Авчинникова О. И.

Причины и способы имитации back-end'а

февраль, 2016

Page 2: Причины и способы имитации back-end'а

1. Тесты пишутся долго.

2. Высокие затраты на поддержку.

3. Тесты выполняются долго.

4. Тесты хрупкие.

5. Много времени тратится на

выяснение причин падения тестов.

Проблемы UI-тестов

Поддержка

Кол-во тестов

Уровень

2

Page 3: Причины и способы имитации back-end'а

1. В среднем 2-3% “failed” тестов.

Немного арифметики

• Всего: 300 тестов

• Дефектов: 5 шт

• Процент падений: 3%

• Время выполнения

теста: 1мин

• Время анализа падения:

10 мин.

1 запуск +1 перезапуск Итог

Упало(300-5)*3%+5 = 14

+ Упало(14-5) * 3% + 5 = 5

19

Время выполнения 300мин = 5 часов

+ Время выполнения 14минут

5ч 14мин

Время анализа14*10=2ч 18мин

Время анализа5*10 = 50мин

3ч 8мин

3

Page 4: Причины и способы имитации back-end'а

Какими же должны быть идеальные тесты?

• Время выполнения: максимум 10 мин.

• Запуск после очередного коммита.

• Мгновенное оповещение виновника проблем.

4

Page 5: Причины и способы имитации back-end'а

Что могло бы нам помочь?

5

Page 6: Причины и способы имитации back-end'а

Так можно ли перевернуть пирамиду?

UIUI

API

UNIT

UI

UI

API

UNIT

ИЛИ

6

Page 7: Причины и способы имитации back-end'а

UIUI

API

UNIT

• Научиться писать код качественно.

• Максимально снизить время на подготовку предусловий.

• Максимально снизить время ожидания при загрузке

страницы/проливке данных.

• Четко понимать, что конкретно мы тестируем и не делать никаких

лишних действий.

• Каждый раз, когда это возможно, опускаться на уровень ниже.

• Автоматизировать нужно то, что мы тестируем, а не то как это

делается.

• Разделяй и властвуй.

Что могло бы нам помочь?

7

Page 8: Причины и способы имитации back-end'а

• Надо понимать, что и как тестируется (высокий уровень знания

проекта).

• При тестировании по кусочкам можно что-либо упустить.

НО! Возможно эти недостатки стоят того, чтоб получить набор гарантированно работающей критической функциональности, а какие-то менее важные детали можно и упустить.

Недостатки

8

Page 9: Причины и способы имитации back-end'а

1. Отдельно тестируем серверную логику:

• Через веб-сервисы;

2. Отдельно проверяем работу UI

• Jasmine

• BeMo + Xhoock

• CasperJS + Sinon.JS/Mockjax

3. Смотрим, что все вместе корректно работает.

• Selenium

Разделяй и властвуй

9

Page 10: Причины и способы имитации back-end'а

Сократить кол-во посредников – делаем заглушки.

10

Page 11: Причины и способы имитации back-end'а

CasperJS + Sinon.JS/Mockjax

//функция ответа на

перехваченные

запросы, согласно

установленным

правилам

11

Page 12: Причины и способы имитации back-end'а

//создание правила для ответа на запросы

CasperJS + Sinon.JS/Mockjax

12

Page 13: Причины и способы имитации back-end'а

CasperJS + Sinon.JS/Mockjax

//автотест

13

Page 14: Причины и способы имитации back-end'а

CasperJS + Sinon.JS/Mockjax

//стартовая форма

//оригинальный ответ от

сервера

//нами запрограммированный ответ

от сервера

12

3

14

Page 15: Причины и способы имитации back-end'а

1. UI-автотесты – универсальные, но длительные и нестабильные.

2. Чтобы с этим бороться нужно:

• автоматизировать то, что мы тестируем, а не то как это делается.

• понимать как работает то что мы тестируем.

• дробить тестовые сценарии на более мелкие части.

Итоги…

15

Page 16: Причины и способы имитации back-end'а

Теория:

• Автоматизация Тестирования - Почему умирают проекты?

• Time to mock back-end!

• Можно ли перевернуть пирамиду?

• Время для издевательств над задней частью!

Практика:

• How To Use CasperJS with Mocked Data to Test Your Site’s UI

• Github/bemo

• CasperJS

Ссылки

16

Page 17: Причины и способы имитации back-end'а

Спасибо за внимание!Ваши вопросы?