Сегодня тестирование настолько отличается от того, что было несколько лет назад, что многие говорят о его смерти. Вводный доклад расскажет в самых общих чертах о том, что такое тестирование, какие виды, техники, подходы существуют в тестировании и о том, как тестирование вышло за установленные рамки, проникая в другие сферы разработки - концепция параразработки.
Когда кто-то говорит, что на проекте использует автоматизацию тестирования, то мы живо представляем себе идеальную картину. Тестирование идет очень быстро, практически мгновенно, находятся все баги, релизы выпускаются один за одним, тесты пишутся быстро и просто. Все вокруг счастливы и довольны.
В реальности же все оказывается гораздо сложнее: не все можно протестировать автоматически, приложение меняется, тесты нужно поддерживать, а еще писать новые. Автоматизация тестирования уже не кажется такой "дешевой" практикой.
Сколько же это стоит и как быть? В своем докладе я попытаюсь рассказать, из чего складывается стоимость автоматизации тестировании и на опыте 2ГИС покажу, на какие рычаги можно воздействовать, чтобы менять ее под конкретный проект.
Обычно Unit-тесты записываются в терминах значений переменных и внутренних состояний объектов. Применительно к ООП такой подход приводит к нарушению инкапсуляции. Mock-объекты позволяют тестировать не состояние объекта, а его поведение.
В докладе будет на примерах разобрано, как использовать Mock-объекты для моделирования:
1. Нехватки ресурсов: нехватки места на диске
2. Тестирования поведения приложения в условиях обрыва сетевых подключений
3. Моделирования высокой нагрузки (некоторые случаи)
4. Тестирования сложности алгоритмов (это без Mock-объектов сделать в принципе нельзя)
5. Нагрузочные тесты, адаптирующиеся под конкретное оборудование