Базовые понятия автоматизированного тестирования
Автоматизированное тестирование — не самая простая тема в сфере IT. Подступиться к ней бывает не так уж и просто, так как материалов существует очень много, но они могут быть либо противоречивы, либо неактуальны для используемой платформы. В этой статье мы кратко рассмотрим важные базовые понятия.
Итак, приступим:
- System Under Test (SUT) — это тестируемая система. В зависимости от типа автотеста, системой могут быть различные сущности.
- Black box testing — тестирование SUT при отсутствии информации о деталях внутреннего устройства тестируемой системы.
- White box testing — тестирование с учетом деталей внутреннего устройства SUT.
- Gray box testing -- комбинация подходов.
- Test doubles -- тестовые дублеры, они же фиктивные объекты, которые заменяют объекты реальные, что необходимо для достижения целей автотеста.
Говоря о тестовых дублерах, следует добавить, что они позволяют:
- зафиксировать тестовое окружение, сымитировав нестабильные, медленные либо нереализованные внешние объекты (базу данных, сервер);
- выполнять проверки своих вызовов (обращений ко свойствам, к функциям).
Наиболее хорошо известны 5 типов тестовых дублеров, разных по свойствам: Dummy, Stub, Spy, Fake, Mock. Рассмотрим некоторые из них:
Stub — объект, возвращающий при вызовах его функций/свойств предустановленные (hardcoded) результаты, при этом код реального объекта не выполняется. Когда же функция возвращаемого значения не имеет, вызов просто игнорируется. Mock — объект, который позволяет проверять поведение SUT посредством отслеживания обращений к функциям/свойствам объекта (например, были ли в ходе автотеста вызваны функции мока, в правильном ли это произошло порядке, были ли переданы в них ожидаемые аргументы и т. п. Также Mock может включать функциональность Stub.
Впрочем, подробнее об этих и других видах дублеров лучше читать в первоисточнике.
Несколько слов о качестве автотестов
При разработке автоматизированных тестов важно обеспечить их базовое качество. Следовательно, здесь следует соблюдать ряд правил написания кода, сформулированных Робертом Мартином в книге "Clean Code". Речь идет о глобальных принципах F.I.R.S.T.:
- Fast — автотесты должны выполняться быстро.
- Independent — автотесты не должны друг от друга зависеть, то есть их можно выполнять в любом порядке.
- Repeatable — результат выполнения автотестов должен быть одинаков вне зависимости от среды выполнения.
- Self-validating — важно, чтобы автоматизированные тесты однозначно сообщали о том, является ли их прохождение успешным либо нет.
- Timely — автотесты должны создаваться своевременно.
По материалам https://vc.ru/dev/199012-bystryy-start-gayd-po-avtomatizirovannomu-testirovaniyu-dlya-android-razrabotchika-jvm.