Определения
Что такое ручное тестирование?
В ручном тестировании тесты выполняются тестировщиком вручную. Это классический метод обнаружения багов в приложении.
Что такое автоматизированное тестирование?
В автоматизированном тестировании тестировщики пишут код, который выполняет тесты. Для разработки тест-кейсов и их выполнения могут использоваться специальные инструменты. Цель — сократить время тестирования.
Запускается заранее написанный скрип с тест-кейсами, который выполняет тесты и сверяет актуальные данные с ожидаемыми.
Автоматизированное тестирование помогает сократить время на выполнение многократно повторяющихся тестов. Особенно полезно при регрессионном тестировании — когда нужно убедиться, что новые изменения не сломали существующую функциональность. Несмотря на то, что на этапе выполнения тестов автоматизация экономит много времени, на написание тест-кейсов тратится много усилий.
Ключевые отличия:
- Ручное тестирование проводится человеком, автотесты выполняются с помощью заранее написанного скрипта.
- Ручное тестирование имеет человеческий фактор и зависит от ответственности и опыта тестировщика. Автоматизированное тестирование исключает человеческий фактор при выполнении тестов.
- Выполнение ручных тестов может занимать много времени, выполнение автотестов — нет.
- Для выполнения тестирования вручную не нужно знать программирование. Создание автотестов без знаний того, как писать код, практически невозможно.
Сводная таблица отличий ручного и автоматизированного тестирования
Признак | Автоматизированное тестирование | Ручное тестирование |
---|---|---|
Определение | Автоматизированное тестирование использует специализированные инструменты для создания и выполнения тестов. | В ручном тестировании тест кейсы выполняются вручную тестировщиком. |
Время | Выполнение автотестов занимает гораздо меньше времени, чем ручное тестирование. | Ручное тестирование трудозатратно и требует человеческого ресурса. |
Исследовательское тестирование | Автоматизированное тестирование не позволяет выполнять импровизированные интуитивные тесты. | Исследовательское тестирование возможно. |
Инвестиции в создание тест-кейсов | Начальные инвестиции ресурсов в автоматизированном тестировании выше. Хотя ROI может быть выше на длинной дистанции. | Начальные инвестиции ресурсов сравнительно ниже. ROI в сравнении с автоматизированным тестирование ниже на длинной дистанции. |
Надежность | Надежно, не зависит от человеческого фактора. | Зависит от человеческого фактора, поэтому менее надежно, чем автоматизированное тестирование. |
Влияние UI изменений | Даже для небольших изменение функциональности необходимо тратить время на изменение скрипта для корректной работы. | Изменения не влекут за собой временных затрат. |
Денежные вложения | Покупка инструментов, оплата труда автоматизированных тестировщиков (как правило выше, чем у мануальщиков, иногда в разы) | Оплата труда ручных тестировщиков. |
Эффективность вложений | Неэффективно для небольших приложений. | Неэффективно для больших приложений. |
Доступность отчетов | Любой может зайти в тест менеджмент систему и ознакомиться с результатами. | Из-за человеческого фактора, отчеты, созданные ручными тестировщиками, могут быть не всегда доступны/доступны с задержкой. |
Тестирование производительности | Тестирование производительности (как и нагрузочное тестирование, stress-тестирование, spike-тестирование) выполняется с помощью специальных инструментов. | Редко выполняется вручную. |
Параллельное выполнение тестов | Автоматизированное тестирование может производиться параллельно в разных окружениях (операционных системах, браузерах). | Может проводиться параллельно, но требует для этого больше человеческих ресурсов. |
Знание программирования | Необходимо знание программирования для автоматизированного тестировщика. | Не требуется. |
Установка и настройка | Более сложные (по сравнению с ручным) установка и настройка окружения для выполнения тестов. | Относительно простые. |
Вовлечение | Выполняется автоматически. | Влияет человеческий фактор — постоянное выполнение одного и того же набора тестов может стать скучным. |
Идеальная сфера применения | Полезно, когда один и тот же набор тест-кейсов нужно выполнять постоянно и много раз. | Полезно для нечасто повторяющихся тест-кейсов. |
Влияние на дедлайн | Нулевой риск. | Риск выше, чем при автоматизированном тестировании. |
Фреймворки | Используются Data Driven, Keyword Driven и Hybrid фреймворки для автоматизации. | Не использует фреймворки, но могут использоваться гайдлайны, чеклисты, черновики для написания тейст-кейсов. |
Документация | Автоматизированные тесты сами по себе могут служить документацией. Новый автоматизированный тестировщик может посмотреть код юнит-тестов и разобраться, что он делает и для чего используется. | Необходимо писать документацию по тестированию. |
Когда использовать | Регрессионное тестирование, Тестирование производительности, Нагрузочное тестирование и в часто повторяемых тест-кейсах. | Исследовательское тестирование, тестирование юзабилити, Adhoc тестирование. В случаях, когда часто изменяются требования к функциональности. |
Плюсы и минусы ручного тестирования
Плюсы:
- Быстрая и точная обратная связь, если нужно протестировать конкретный сценарий.
- Менее дорогое на начальных этапах, чем автоматизированное тестирование.
- Человеческий вгляд и интуиция (помогают в обнаружении неочевидных багов)
Минусы:
- Менее надежно, т.к. выполняется человеком. Никто не идеален, поэтому возможны ошибки.
- Невозможно повторно использовать сколько угодно раз, как автоматические.
- Некоторые тест-кейсы могут быть сложно воспроизводимы (то есть повторяемы, потому что требуют симуляции определенных условий, входных данных и т.п.)
Плюсы и минусы автоматизированного тестирования
Плюсы
- Быстрое и эффективное.
- Возможность многократного повторного использования.
- Выполняется компьютером, который не устает и не ленится. Могут быть выполнены сколько угодно раз и в любое время (в том числе ночью, в выходные и праздники)
- Увеличивается покрытие тестами, т.к. программа (в отличие от человека) всегда гарантированно выполняет тесты.
Минусы
- Без человеческого участия сложно проверить приложение визуально (цвета, шрифты, размеры, отступы и подобное)
- Инструменты автоматизированного тестирования могут дорого стоить (но есть и бесплатные — вот наша подборка)
- Тест требуют поддержки (обслуживания) — на это расходуется рабочее время.
- Имеет свои ограничения, не позволяющие автоматизировать все возможные сценарии.