Он включает «любую деятельность, направленную на оценку атрибута или возможности программы или системы и определение того, что они соответствуют требуемым результатам. Каждый, кто хоть немного знаком с тестированием программного обеспечения, сталкивался с многочисленными и часто загадочными терминами в этой области, такими как «дымовое» тестирование, тестирование «белого ящика», динамическое тестирование, регрессионное тестирование и стресс-тестирование.
Тестирование программного обеспечения, как правило, довольно затратно как по времени, так и по деньгам. Это всегда борьба, чтобы получить адекватные и правильные типы тестирования. Если вы спросите любую группу разработчиков, вы, вероятно, никогда не услышите, чтобы кто-нибудь сказал, что они решили проблему тестирования. Каждая команда программистов постоянно сталкивается с трудным компромиссом, чтобы сбалансировать бюджет, время и качество, когда дело доходит до тестирования их продукта.
В поисках решения команды возлагают большие надежды на автоматизацию тестирования, которая поможет им сократить время и бюджет тестирования при одновременном повышении качества ПО. Итак, что такое автоматизация тестирования? Вот как это определяет Википедия:
«Автоматизация тестирования — это использование специального программного обеспечения (отдельно от тестируемого программного обеспечения) для контроля выполнения тестов и сравнения фактических результатов с прогнозируемыми результатами. Автоматизация тестирования может автоматизировать некоторые повторяющиеся, но необходимые задачи в уже существующем формализованном процессе тестирования или выполнить дополнительное тестирование, которое было бы трудно выполнить вручную».Учитывая преимущества и перспективы автоматизации тестирования, неудивительно, что в последние годы роль QA инженера по автоматизации становится все более популярной. Давайте подробнее рассмотрим работу автотестера.
Подходящие области для автоматизации тестирования
Есть определенные области тестирования, которые лучше подходят для автоматизирования, в то время как в других областях автоматизация просто не имеет смысла. Автоматизация тестирования не решает всех проблем тестирования программного обеспечения.
Вот список удачного использования автоматизации (где требуется повторение и выполнение большого количества задач):- Функциональное тестирование
- Регрессионное тестирование
- Нагрузочное и стресс-тестирование
- Модульное тестирование
- Кроссплатформенное тестирование
- Проверка на дым и вменяемость
- Генерация тестовых данных
- Непрерывная интеграция
Вот некоторые области, в которых автоматизация тестирования неуместна (где человеческие суждения и открытия важнее):- Юзабилити-тестирование
- Тестирование безопасности
- Исследовательское тестирование
Что искать в QA инженерах, которые пишут автотестыПоскольку автоматизация стала возможной благодаря выполнению сценариев и программ при тестировании программного обеспечения и инструментов, основные компетенции, которые мы ищем у инженеров по автоматизации, включают:
- Написание сценариев, а иногда даже знание и возможности программирования
- Понимание технологий (относящихся как к создаваемым программным системам, так и к программному обеспечению для автоматизации тестирования)
- Понимание системных сред и конфигураций (операционные системы, ИТ-инфраструктура, виртуальные машины, контейнеры и т. д.)
- Хорошее понимание потребностей клиентов и требований к программному обеспечению
- Сильное аналитическое мышление и способность к планированию
- Понимание архитектуры программного обеспечения, компонентов, интеграции и API
- Навыки управления проектами
- Понимание методологий и процессов разработки программного обеспечения (agile, scrum, водопад и т.д.)
Инженеры-автоматизаторы QA обычно требуют более высокую заработную плату, чем ручные тестировщики, из-за требуемого более высокого уровня технических навыков (скрипты/программирование). Нередко разработчики прыгают между созданием программного обеспечения и автоматизацией тестирования или берут на себя обе роли одновременно.
Будущее автоматизации тестирования
Автоматизация тестирования стала обязательной частью почти всех усилий по обеспечению качества программного обеспечения. Его популярность и применение будут только расти. Вот почему для нас важно понимать автоматизацию тестирования, как она вписывается в общую стратегию тестирования ПО и кто может сделать ее успешной.