Обеспечение качества программного обеспечения (ПО) – это сложный с технологической точки зрения процесс, включающий в себя разработку стратегии тестирования, определение параметров качества, проведение различных проверок, обнаружение и описание всех выявленных дефектов, оптимизация процессов и внесение требуемых изменений.
Автоматизированное и ручное тестирование – один из важных элементов в процессе обеспечения качества ПО.
Ручное тестирование
Ручное тестирование – это прямое взаимодействие QA-инженера и приложения. При таком методе тестировании (manual testing) специалист выполняет все тесты вручную, не используя для этого никаких средств автоматизации. Как правило, такое тестирование является продолжительным и трудоемким процессом, поэтому без автоматизации ручной вид проверок применяется только на краткосрочных, небольших проектах, или когда нужно провести тестирование юзабилити и дизайна.
Плюсы и минусы подхода
Плюсы:
- Обратная связь по UI. Ручное тестирование – это единственный способ, чтобы провести тестирование дизайна приложения и выявить его возможные недостатки.
- Гибкость. Провести тестирование несущественных изменений с помощью ручного метода можно практически сразу, без необходимости тратить время на написание кода. Эта возможность особенно важна при внедрении новых функций, когда нужно оперативно провести проверку и убедиться в корректности работы.
- Исследовательское тестирование и возможность импровизации. С помощью ручной проверки можно проверить максимально допустимый потенциал приложения в нетипичной ситуации, выявив возможные дефекты в самые сжатые сроки.
- Отчет тестировщика. По окончанию тестов, тестировщик составляет отчет, а также предоставляет возможные рекомендации по улучшению ПО. Отчет тестировщика – это первый отзыв от потенциального клиента, с помощью которого можно оценить насколько удобен продукт для конечного пользователя.
- Стоимость. Ручное тестирование всегда менее затратно.
Минусы:
- Длительность и большие трудозатраты. Занимает больше времени, чем автоматизированный процесс проверки ПО, поэтому требует больших трудозатрат со стороны QA-инженера.
- Человеческий фактор. В связи с тем, что тестирование проводит живой человек, бывают ситуации, когда некоторые результаты могут быть не субъективными, а часть ошибок пропущена.
Отсутствие возможности моделирования большой нагрузки – еще один существенный недостаток.
Автоматизированное тестирование
Автоматизированное – это тестирование, основанное на написании кода и специального программного обеспечения. С помощью автоматизированного тестирования можно проверить сложные приложения с большой функциональной частью.
Плюсы и минусы подхода
Плюсы:
- Повторяемость. Код автоматических тестов можно запрограммировать на неоднократную проверку, что актуально при внедрении новой функции. Таким образом, если есть необходимость частого повторного прогона тестирования, то автоматизация позволит значительно сэкономить время и усилия на проверке ПО.
- Нагрузка на приложение. С помощью автоматизированного тестирования, QA-инженер может смоделировать большую нагрузку, приближенную к реальным или пиковым условиям.
- Временной фактор. Автоматизация – это минимум усилий и максимальная оперативность при проведении тестирования. Код для сценария пишется один раз, после чего может использоваться многократно. В ручном тестировании все задачи выполняются индивидуально и требуют постоянного присутствия специалиста.
Минусы:
- Стоимость. Автоматизированное тестирование стоит в разы дороже, чем ручное, поэтому его более рационально использовать для долгосрочных/больших проектов.
- Надежность. Бывают ситуации, когда автоматизированные тесты могут «упасть» по целому ряду причин.
- Нет возможности провести тестирование цвета, эргономики и дизайна. Хоть данный пункт и не является первоочередным, он также влияет на качество исходного продукта.
- Отсутствие обратной связи. Такое тестирование не предоставляет обратную связь относительно качества продукта, а лишь выполняет заранее установленные сценарии проверки.
Еще один недостаток заключается в отсутствии тестирования глазами живого человека, ведь иногда в автоматизированных приложениях остаются ошибки, которые не покрываются программой, но заметны для человека при ручной проверке.
Когда лучше применять ручное, а когда автоматизированное тестирование
Как правило, автоматизации подлежат следующие виды тестирования:
- регрессионное;
- тестирование локализации;
- нагрузочное.
Ручные проверки рекомендуется при:
- интуитивном тестировании (ad-hoc testing);
- исследовательском;
- тестировании юзабилити.
Важно заметить, что как автоматизированное, так и ручное может применяться на разных уровнях тестирования.
Резюме и сравнение
Ручная проверка – более универсальный метод, с помощью которого можно проверить практически любое приложение, иногда даже без необходимости предварительной подготовки. Автоматизированные скрипты позволяют получить более точный результат, запуская тест снова и снова, прилагая к этому минимум усилий.
Грамотное комбинирование двух методов – это возможность оптимизировать затраты и получить продукт высокого качества.