Автоматизированное тестирование JAVA/J2EE приложений

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

Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ

Краткий обзор приведенных в статье терминов:

  • JSP – это компонент представления или экран.
  • JSF – это фреймворк для компонентов представления.
  • JavaScript используется для проверки экрана.
  • Сервлет, фреймворк, EJB, Bean и другие классы Java используются для написания бизнес-логики.

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

Этапы процесса автоматизированного тестирования:

Для эффективной автоматизации необходимо детально продумать подход к тестированию еще до разработки приложения. Существует два отдельных процесса:

  1. Разработка приложения с учетом инструмента автоматизированного тестирования.
  2. Этапы самого тестирования..

На приведенной ниже блок-схеме показан процесс разработки с применением автоматизированного тестирования.

блок-схема  процесса разработки с применением автоматизированного тестирования

Ниже описаны этапы процесса автоматизированного тестирования:

1. Проведите анализ, чтобы определить, какой вид тестирования стоит выбрать – ручное или автоматизированное. Также проанализируйте, какие части тестирования в приложении следует автоматизировать, а какие — вручную.

2. Как только появятся возможности или требования к автоматическому тестированию, проведите анализ его осуществимости.

3. Примите решение и выберите подходящий инструмент. После того, как станут известны компоненты, задействованные в J2EE приложении, и понятна сложность самого приложения, можно выбрать один или несколько необходимых инструментов.

Например, для приложения, полностью основанного на JSP, может быть достаточно инструмента экранной навигации, такого как Selenium Webdriver. Обратите внимание, что для UI-приложений на базе JSF, в дополнение к JUnit и инструментам тестирования экранной навигации, вам могут потребоваться специфические для JSF инструменты для тестирования.

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

5. Оцените влияние инструмента тестирования на дизайн приложения. Если тестирование будет автоматизировано, важно разрабатывать приложения с учетом возможностей инструмента.

6. Разработайте пилотное приложение, запустите инструмент и проверьте, действительно ли он так ценен, как предполагалось на этапе анализа. Если этот этап проходит по плану, инструмент можно доработать для приложения.

7. Когда приложение будет готово к тестированию, напишите тестовые сценарии и запустите инструмент.

Выбор инструмента

Выбор подходящего инструмента автоматизации тестирования для J2EE-приложения во многом зависит от типа приложения и используемых технологий. Кроме этого, существует еще несколько факторов, которые влияют на выбор инструмента:

1. Тип приложения – J2EE приложение может иметь множество вариаций. Некоторые из них разрабатываются с помощью фреймворков, таких как Struts, Spring, Hibernate, некоторые используют только технологии серверной стороны (JSP, сервлеты). В то же время другие приложения построены комплексно, с использованием компонентов представления, контроллеров, бизнес-логики и баз данных.

В соответствии с используемыми технологиями можно выбрать один или несколько инструментов.

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

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

3. Тип тестирования – Инструмент модульного тестирования может не подойти для интеграционного тестирования и наоборот. Например, JUnit является популярным инструментом для модульного тестирования, а TestNG используется для интеграционного тестирования.

4. Бюджет тестирования – Многие из популярных инструментов имеют открытый исходный код, поэтому они подходят для большинства проектов. Для инструментов, специфичных для конкретной технологии, от команды может потребоваться проверить, приемлема ли стоимость инструмента.

5. Сроки тестирования – Как и в большинстве случаев разработки приложений, сроки всегда очень сжаты. Для использования некоторых инструменты может потребовать больше времени, чем для других – на обучение, настройку среды и написание тестовых примеров.

6. Поддержка среды – Важно выбирать инструменты тестирования J2EE в зависимости среды, в которой будет работать приложение. Например, одни работают только на Windows, а другие зависят от языка.

7. Знания тестировщика – тестировщик может быть знаком с конкретным инструментом и уже иметь опыт работы с ним. Если требования проекта и знания тестировщика совпадают, лучше выбрать этот инструмент, чтобы сэкономить время на обучении.

8. Совместимость с другими механизмами тестирования – В больших J2EE приложениях, когда используется несколько компонентов, таких как JSP, сервлеты, JavaScript, JSP, EJB и базы данных, один инструмент не подойдет.

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

9. Отображение результатов тестирования и статистики – Для большинства проектов читаемость тестов может стать ведущим критерием. Таким образом, может оказаться важным, чтобы результаты выполнения теста отображались в надлежащем формате экрана с перечнем дефектов, причинами и т.д.

Преимущества автоматизированного тестирования J2EE-приложений

  • J2EE приложения обычно большие; ручное тестирование всего приложения может оказаться очень трудоемким и подверженным ошибкам.
  • Некоторые инструменты автоматизации J2EE имеют базовые функции тестирования функциональности. Они разработаны и спроектированы с учетом особенностей компонента. Это значительно облегчает жизнь тестировщика. Например, инструмент тестирования JSF JSFUnit позволяет тестировать классы фреймворка.
  • Эффективность автоматизированных тестов высока. При ручном тестировании правильность зависит от навыков тестировщика.
  • В проектах, где происходят повторяющиеся изменения и требуется несколько раз тестировать один и тот же код, автоматическое тестирование оказывается полезным.
  • Автоматизированное тестирование охватывает более широкий набор тестов. Поскольку этот тип тестирования не зависит от человека, скорость выполнения высокая, и за короткое время можно охватить большее количество тестов.
  • Поскольку вмешательство тестировщика не требуется, результаты автоматизированного тестирования в большинстве случаев более точные, чем при ручном. Процесс тестирования также является более последовательным.

Заключение:

Автоматизация предпочтительна для больших J2EE-приложений. При этом тестирование приложения не может быть автоматизировано полностью. В данном случае ручное и автоматизированное тестирование идут рука об руку.

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

Перевод статьи «How to Perform Automation Testing of JAVA/J2EE Applications (Part 2)».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *