Maybe some mock_true

28
Время для издевательств над задней частью! Aliaksei Boole Software engineer in test Juno

Transcript of Maybe some mock_true

Page 1: Maybe some mock_true

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

Aliaksei BooleSoftware engineer in test

Juno

Page 2: Maybe some mock_true

Time to mock back-end!

Page 3: Maybe some mock_true

О чём поговорим?

• Немного размышлений о тестировании и IT.• Раздельное тестирование back-end и front-end.• Прототип решения.• Q&A

Page 4: Maybe some mock_true

Новое —это хорошо забытое старое.

Page 5: Maybe some mock_true

Компьютерная сеть

Почта

Page 6: Maybe some mock_true

База данных

Конторская книга

Page 7: Maybe some mock_true

Поисковая система

Библиотечный перечень

Page 8: Maybe some mock_true

Главная область экрана ОС

Рабочий стол клерка

Page 9: Maybe some mock_true

Направление развития IT.

Page 10: Maybe some mock_true

Разработка развивается как и любое производство.

Мелкотоварное производство

Ремесло

Мануфактура

Фабрика

Мелкое ручное производство

Кустарное производство

небольших партий

Распределение труда, частичная

механизация

Производство, основанное на

машинном труде

• Разработка штучных программ под определённую машину.

• Код на бумаге.

• Стандартизация интерфейсов.• Первые языки высокого уровня.• Текстовые редакторы.

• Появление ролей.• Системы контроля версий.• Интегрированные системы

разработки.

• Автоматизация доставки.• Автоматизация тестирования.• Статический и динамический

анализ.

Page 11: Maybe some mock_true

Почему мы тестируем так?

Page 12: Maybe some mock_true
Page 13: Maybe some mock_true

Мы знаем что это?

Page 14: Maybe some mock_true

Если «Да», то почему тестируем чёрным ящиком?

Page 15: Maybe some mock_true

Раздельное тестирование back-end и front-end.

Page 16: Maybe some mock_true

Проверка имени при регистрации.

Page 17: Maybe some mock_true

Тесты для такой функциональности.

Page 18: Maybe some mock_true

Но разве не один и тот же код выполняется на back-end?

Page 19: Maybe some mock_true

Мы тестируем один и тот же back-end.

Page 20: Maybe some mock_true

Что же делать?

Page 21: Maybe some mock_true

Тестируем отдельно!

Page 22: Maybe some mock_true

Техническое решение.

Page 23: Maybe some mock_true

BeMo (back-end mock)• inject() – установка Xhook на страницу;• mockFor(url)– готовим мок для Ajax запроса;• getCallCountFor(url) – возвращает

количество вызовов мока для определенного урла;• enable() – включаем Xhook, устанавливаем моки;• disable() – отключаем Xhook, удаляем моки.

Xhook - https://github.com/jpillora/xhook

Page 24: Maybe some mock_true

Примеры реального использования.

Page 25: Maybe some mock_true

Почему вам стоит это использовать?

• Вы сможете точнее определять проблему• Тестирования становится «браузерным»• Ваши тесты становятся стабильнее• «А что будет, если?» - страхование качества

Page 26: Maybe some mock_true

Почему вам не стоит это использовать?

• Это не серебряная пуля• Это только прототип• Иногда лучше сделать по-другому

Page 27: Maybe some mock_true

Присоединяйтесь к разработке!

• Полноценный API• Задержка запросов и обрыв соединения• Документация• BeMo – recorder• BeMo - python

https://github.com/v1-wizard/bemo

В планах:

Page 28: Maybe some mock_true

Спасибо!Q&A

Контакты:Алексей Буль (Aliaksei Boole)[email protected] skype: v1_wizardhttp://www.electrictower.ru