Описание и анализ процесса автоматизированного тестирования, Описание процесса тестирования - Тестирование программного обеспечения

Данная глава посвящена описанию автоматизированного тестирования, его типам, выявлению достоинств и недостатков в автоматизации тестирования.

Более того в этой главе определены критерии эффективности процесса тестирования, описаны формулы для расчет экономической целесообразности введения автоматизированного тестирования.

Описание процесса тестирования

Автоматизированное тестирование представляет собой процесс проверки таких функций, как запуск, инициализация, исполнения, анализа и вывода, производимый в автоматическом режиме. Автоматизированное тестирование осуществляется с помощью специального программного обеспечения и вспомогательных инструментов. Этот тип тестирования решает те же задачи что и ручное функциональное тестирования.

Автоматизация процесса тестирования программного обеспечения делает возможным повышение качества тестирования и ускоряет процесс его проведения.

Автоматизация тестирования начинается с построения процесса ручного тестирования, а именно, с документации, написанной для такого тестирования. Таким образом, для того, чтобы начать процесс автоматизации тестирования, нужно точно знать, что и как должно быть реализовано. Обычно каждый автоматизированный тест базируется на тест-кейсе для ручного тестирования с повышенным уровнем детализации.

Выбор тестов для автоматизации.

Для того, чтобы определить, что именно нужно автоматизировать, необходимо сначала оценить целесообразность автоматизации тестирования в условиях проекта. Если автоматизация целесообразна, то, принимая во внимание требования к объекту тестирования, необходимо разработать план, согласно которому автоматизированные тесты будут создаваться. При разработке подобного документа, необходимо четко понимать, что нужно автоматизировать и как именно это реализовать. Автоматизация тестирования обычно позволяет ускорить и удешевить процесс тестирования, однако существуют условия, в которых автоматизация особенно эффективна:

    - Функциональность, которая используется довольно часто и в которой риски от ошибок достаточно высоки. Автоматизация проверки критической функциональности поможет быстрее находить ошибки, следовательно, быстрее их решать. - Рутинные операции, например проверка форм, в которых необходимо заполнять большое количество полей. - Труднодоступные места в системе, такие как запись в базу данных, бекэнд процессы, логирование. - Валидационные сообщения (проверка появления валидации при некорректном заполнении поля) - Проверка корректного поиска данных - Проверки, требующие точных математических расчетов - Длинные end-to-end сценарии

И многое другое, в зависимости от инструментов тестирования и требований к системе.

Можно выделить три основных вида автоматического тестирования: модульное тестирование (unit test), тестирование API и GUI тесты.

    - Модульное тестирование является самым низким уровнем автоматизированного тестирования. Поиск ошибок осуществляется на уровне функций, методов, процедур. Данные тесты обычно пишутся разработчиками. - Тестирование API осуществляет проверку взаимодействия нескольких модулей между собой, или проверяет взаимодействие со сторонними сервисами. - GUI тесты - тестирование через графический пользовательский интерфейс. С помощью имитации действий пользователя проверяются такие аспекты, как надлежащее функционирование кнопок и полей, правильное появление диагностических сообщений об ошибках и корректная работа приложения в целом. Написанием GUI тестов чаще всего занимаются тестировщики.

Сегодня существует множество средств, позволяющих автоматизировать тестирование программного продукта. Однако автоматизация тестирования не всегда востребована, ведь в конечном итоге может оказаться что разработка и сопровождение систем автоматизированного тестирования обойдется компании дороже, чем труд ручных тестировщиков.

При анализе целесообразности создания систем автоматизированного тестирования важно оценить:

    - насколько сложно эту работу выполнять "руками" - как часто будут выполняться эти тесты - необходимо ли увеличивать скорость выполнения тестов - если тесты нужно автоматизировать, то нужно ли это делать со всеми тестами, или достаточно автоматизировать лишь некоторые из них.

Основные задачи, которые решаются внедрением автоматизированного тестирования - это снижение времени, нужного для тестирования и повышение качества тестирования.

Под повышением качества подразумевается, что автоматизированное тестирование обычно позволяет покрыть большее количество функционала, а также позволяет выполнять тесты, которые невозможно осуществлять вручную. Автотесты также дают возможность минимизировать присутствие человеческого фактора при тестировании.

Следовательно, можно выделить основные плюсы и минусы автоматизированного тестирования.

Преимущества:

    - Сокращение времени, затрачиваемого на исполнение тестов (относительно с ручного тестирования) - Возможность проводить тесты, которые невозможно реализовать без использования программных средств автоматизации. - Экспертиза становится более независимой, поскольку исключается человеческий фактор.

Недостатки:

    - Автоматизация тестирования может потребовать очень значительных трудозатрат - Требуется персонал с гораздо более высокой квалификацией - Более сложный анализ результатов - Повышение трудозатрат на актуализацию автотестов при изменениях в системе - Риск появления ошибок в самом автотесте - Не все тесты возможно автоматизировать

Похожие статьи




Описание и анализ процесса автоматизированного тестирования, Описание процесса тестирования - Тестирование программного обеспечения

Предыдущая | Следующая