Зачем авто-тесты нам нужны?

20
Виталий Квятковский Какие авто-тесты нам нужны?

Transcript of Зачем авто-тесты нам нужны?

Page 1: Зачем авто-тесты нам нужны?

Виталий Квятковский

Какие авто-тесты нам нужны?

Page 2: Зачем авто-тесты нам нужны?

Кто я

Page 3: Зачем авто-тесты нам нужны?

Пирамида тестирования

Page 4: Зачем авто-тесты нам нужны?

Типы автоматизированных тестов

Unit

Integration

Уровень интерфейса пользователя

Функциональные

Имитируют пользователя

Selenium

Другие

Нагрузочные

Usability

Page 5: Зачем авто-тесты нам нужны?

Unit/Integration тесты

Unit

Классы

Компоненты

Integration

Связи компонентов

Связи с внешними системами

Что тестирует?

TDD

Continuous Integration

Page 6: Зачем авто-тесты нам нужны?

Unit тесты: Инструменты

JUnit

TestNG

Mock-фреймворки

Page 7: Зачем авто-тесты нам нужны?

Integration тесты: Инструменты

Тестирование с помощью фейков

Базы данных

- In-memory fakes (H2/derby/sqlite)

- Или отдельный инстанс для тестирования

Файловая система

- Commons VFS

- Java 7: jimfs

REST Сервисы

- MockServer

- Jetty

Page 8: Зачем авто-тесты нам нужны?

Функциональное тестирование

ATDD (Acceptance TDD)

Нестабильны

Медленны

Запускаются против выделенного окружения

Не часть Continuous Integration (smoke test)

Selenium (Selenide, Headless drivers)

Page 9: Зачем авто-тесты нам нужны?

Можем ли все автоматизировать?

Да

Нет

Page 10: Зачем авто-тесты нам нужны?

Можно ли все автоматизировать (опрос)?

36%

64%

ДаНет

Page 11: Зачем авто-тесты нам нужны?

Что автоматизировать (опрос)

1. Smoke-тесты

2. Сложные/трудоемкие

3. End-to-End тесты

4. Регрессионные тесты

5. Редко меняющиеся

6. API/UI

Page 12: Зачем авто-тесты нам нужны?

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

Регрессионное тестирование

Рутинные операции

Допустимые конфигурации (аппаратного обеспечения,ОС)

Нагрузочное тестирование

Ввод больших массивов данных

Где автоматическая верификация более предпочтительна

Сложные расчеты

Page 13: Зачем авто-тесты нам нужны?

Зачем автоматизировать (опрос)

1. Скорость выполнения тестов

2. Экономия времени тестировщика

3. Уверенность разработчика

4. Устранить человеческий фактор

5. Опыт в чем-то новом

Page 14: Зачем авто-тесты нам нужны?

Зачем автоматизировать

Исключить человеческий факторнадежнее

Оптимизация использования времени тестировщика

Скорость

Автоматический отчет о тестировании

Выполнение в фоне

Page 15: Зачем авто-тесты нам нужны?

Недостатки (опрос)

1. Стоимость поддержки

2. Стоимость разработки

3. Сложно писать

4. Время

5. Качество должно быть выше

6. НЕ ad-hoc тестирование

Page 16: Зачем авто-тесты нам нужны?

Недостатки

Стоимость и время разработки

Квалификация автоматизатора

Затраты на поддержку

Однотипность

Разработка каркаса – большие затраты

Page 17: Зачем авто-тесты нам нужны?

Авто-тесты – Вариант 1

Unit-тесты

Integration-тесты

Ручное тестирование

Page 18: Зачем авто-тесты нам нужны?

Авто-тесты – Вариант 2

Unit-тесты

Integration-тесты

UI-тесты

+ немножечко ручного тестирования…

Page 19: Зачем авто-тесты нам нужны?

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

Page 20: Зачем авто-тесты нам нужны?

Спасибо за внимание!