SlideShare a Scribd company logo
Тестируем сложные backend-ы 
Екатерина Боброва 
Тамтэк
Сложная система 
• Сложная бизнес-логика 
• Многокомпонентная система 
• Интеграция со сторонними компонентами 
• Состояние системы не детерминированно
Как тестируем? 
Проверяем, что продукт соответствует 
требованиям заказчика 
• Функциональные тесты 
• Интеграция компонентов системы 
• Обработка сбоев в сторонних компонентах 
Скорее всего используется фреймворк для 
автоматизации тестов
Реальные внешние компоненты 
+ Максимальная приближенность к 
реальным условиям 
‒ Не всегда возможно 
– Дорого 
– Нестабильно 
– Можем не знать, что конкретно возвращает
Моки и стабы 
+ Быстро 
+ Удобно тестировать граничные случаи и 
исключения 
+ Можно быстро отредактировать 
– Неточное повторение реального окружения
Как тестируем?
End-to-end тесты
End-to-end тесты 
+ Подход с точки зрения пользователя 
+ Тестирование системы целиком 
– Не учитывают особенности кода 
– Сложно подготовить тестовые данные для 
тестирования граничных значений и 
специфических сценариев
Unit-тесты 
+ Учитывают особенности кода 
+ Использование стабов и моков 
– Модуль может делать не то, что нужно 
заказчику
А сколько тестов надо? 
End-to- 
end 
??? 
Unit tests
Так как же тестируем?
Техники тест-дизайна 
• Декомпозиция 
• Функциональное тестирование 
• Причина-следствие
Разделение на компоненты 
• Выделяем бизнес-сущности 
• Внутри компонента идет преобразование 
одной бизнес-сущности в другую 
• Для разных групп тестов может быть разное 
разбиение
Разделение на компоненты 
Внутри компонента идет преобразование 
одной бизнес-сущности в другую
Разделение на компоненты 
• Сложные компоненты можно разбивать на 
подкомпоненты
Взаимодействие с внешним 
компонентом 
Тестируем преобразование 
внешних структур данных во 
внутренние бизнес-структуры и 
обратно
Взаимодействие с внешним 
компонентом
Взаимодействие с внешним 
компонентом
Взаимодействие с внешним 
компонентом
Пример 
• Проект «семья» 
• Сын спрашивает у мамы, можно ли пойти 
погулять 
• Действия мамы: 
– проверить, какая погода 
– спросить мнение папы 
– принять решение
Пример
Пример
Пример
Пример
Пример
Пример
Интеграционные тесты 
+ Лучшее покрытие функционала тестами 
+ Тесты удобно согласовывать с заказчиком, 
так как говорим на его языке 
– Тестировщики должны писать на одном 
языке программирования с разработчиками 
– Разработчики должны учитывать при 
разработке архитектуры потребности 
тестировщиков
А сколько тестов надо? 
End-to- 
end 
Integration 
tests 
Unit tests 
Количество тестов 
Длительность тестов
Вопросы? 
skype: filechka28 
email: eabobrova88@gmail.com

More Related Content

PPTX
TDD для интеграции с БД легко и просто!
PPT
Разработка через приемочное тестирование с FIT
PPT
Разработка через приемочное тестирование с использованием FIT
PPTX
Архитектура автоматизированных тестов: представление предметной области
PPTX
Тестирование Требований
PPT
Unit testing best practices
PPTX
Тестирование требований
PPTX
Test Driven Development in .NET Applications
TDD для интеграции с БД легко и просто!
Разработка через приемочное тестирование с FIT
Разработка через приемочное тестирование с использованием FIT
Архитектура автоматизированных тестов: представление предметной области
Тестирование Требований
Unit testing best practices
Тестирование требований
Test Driven Development in .NET Applications

What's hot (20)

PPT
Особенности тестирования аудио\видео интерфейсов
PPT
CQRS. Event Sourcing. Особенности тестирования
PPTX
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
PPT
Continuous Integration для тестировщиков
PDF
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
PDF
Разработка качественного ПО
PPTX
Пять вещей, которые нужно знать заказчику
PPT
Подход к тестированию хранилища данных на базе MS SQL Server
PPTX
IT-шная история игрушек или feature-driven тестирование в действии
PDF
План тестирования
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
PPTX
Никита Ремизов - Введение в разработку ТЗ
PPTX
Юнит тестирование
PPTX
Фокус тест
PPTX
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
PPT
Тестирование инсталляторов
PPTX
Шаблоны проектирования нагрузочных скриптов
PPTX
Способы организаций больших Java проектов по Автоматизированному тестированию
PPTX
Web application testing architecture
Особенности тестирования аудио\видео интерфейсов
CQRS. Event Sourcing. Особенности тестирования
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Continuous Integration для тестировщиков
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
Повышение качества тестов и автоматическая валидация REST API документации
Разработка качественного ПО
Пять вещей, которые нужно знать заказчику
Подход к тестированию хранилища данных на базе MS SQL Server
IT-шная история игрушек или feature-driven тестирование в действии
План тестирования
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Никита Ремизов - Введение в разработку ТЗ
Юнит тестирование
Фокус тест
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Тестирование инсталляторов
Шаблоны проектирования нагрузочных скриптов
Способы организаций больших Java проектов по Автоматизированному тестированию
Web application testing architecture
Ad

Similar to 2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы (20)

PPTX
Test driven development in net
PPTX
Лучшие практики на практике
PDF
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
PDF
MS ALM 2013 Review
PPTX
Нефункциональные требования
PPT
Как принести пользу разработке и упростить себе жизнь?
PPTX
XP Days Ukraine 2014 - Refactoring legacy code
PPTX
Роман Кокин «Организация тестирования в больших командах»
PPT
Sep reqm-lec1
PPT
Сергей Ревко
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
PDF
QAFest. Роль тестирования в Devops
PDF
ук 03.007.02 2011
PDF
Enter: testing
PPT
Организация тестирования производительности по SWEAT
PPT
Организация тестирования производительности по SWEAT
PPT
JavaTalks.Unit Testing.Part 1
PPTX
Шаги мануальщика к автоматизации на крупном проекте
PDF
PDF
Бизнес и системный анализ весна 2013 лекция 6
Test driven development in net
Лучшие практики на практике
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
MS ALM 2013 Review
Нефункциональные требования
Как принести пользу разработке и упростить себе жизнь?
XP Days Ukraine 2014 - Refactoring legacy code
Роман Кокин «Организация тестирования в больших командах»
Sep reqm-lec1
Сергей Ревко
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
ук 03.007.02 2011
Enter: testing
Организация тестирования производительности по SWEAT
Организация тестирования производительности по SWEAT
JavaTalks.Unit Testing.Part 1
Шаги мануальщика к автоматизации на крупном проекте
Бизнес и системный анализ весна 2013 лекция 6
Ad

More from HappyDev (20)

PPT
2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
PPT
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
PPTX
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
PPTX
2015-12-06 Константин Борисов - Как собеседовать программиста?
PDF
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
PPTX
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
PDF
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
PDF
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
PDF
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
PPTX
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
PPTX
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
PDF
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
PDF
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
PPT
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
PDF
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
PDF
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
PDF
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
PDF
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
PDF
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
PDF
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем
2015-12-06 Aнтон Непомнящих - Принципы канбан и теории ограничений на примере...
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli script
2015-12-06 Константин Борисов - Как собеседовать программиста?
2015-12-05 Данил Никифоров - NoSQL для мобайла с синхронизацией данных
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Евгений Тюменцев - Практики разработки серверных приложений
2015-12-06 Александр Чернышев - Технологии открытости мобильных приложений
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Александр Шиповалов - Веселые картинки в тестировании
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-06 Юрий Мельничек - Руководство для разработчиков по маркетингу мобил...
2015-12-06 Сергей Хрущев - Человеческим языком о суперкомпьютерах
2015-12-06 Максим Юнусов - Проектирование REST приложения, или нужно ли прогр...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...
2015-12-06 Антон Тарасенко - Ваш следующий сервис будет асинхронным
2015-12-06 Андрей Коновалов - От сервисной компании к продуктовой: что нужно,...
2015-12-05 Вадим Литвинов - Проблемы разработки распределённых систем

2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы

Editor's Notes

  • #3: Что есть что на схеме сложной системы
  • #4: Как определить, какие тесты нужны
  • #5: Пример с базой локальной и как на проде
  • #7: Как определить, какие тесты нужны? Методики тест-дизайна
  • #8: End-to-end тесты могут быть сложными и/или нестабильными для недетерминированных систем, пример Антона Еще долгими, т.к. много действий, чтобы дойти до некоторого места в схеме
  • #10: Пример с billing
  • #14: Подробно, что есть бизнес-сущность