С чего начать автоматизацию тестирования существующего веб-сайта?

Андрей спрашивает:

Я недавно присоединился к веб-компании в качестве первого члена QA. Веб-сайт разрабатывался последние пять лет, и все это время разработчики и другие члены команды проводили тестирование.

Не существует формального процесса контроля качества или тестирования, поэтому все тестирование было в основном спонтанным.


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

У меня вопрос: с чего начать автоматизацию тестирования, чтобы создать этот регрессионный пакет для веб-сайта, который работает более пяти лет?


Любые идеи / предложения будут высоко оценены.

Мой ответ:

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

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


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

Связанный:

1. Изучите

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

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


2. Соберите показатели

Соберите показатели использования сайта у специалистов по маркетингу и / или аналитике. Большинство компаний встраивают «теги отслеживания», такие как Google Analytics, на свои веб-сайты, чтобы иметь возможность отслеживать, как пользователи используют сайт. Существует огромное количество информации о поведении пользователей и распространенных путешествия пользователя которые могут быть получены из этих систем слежения.

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

3. Ключевые сценарии

Начните с автоматизации основных сквозных сценариев через веб-приложение. Это ляжет в основу нашего «пакета дымовой регрессии». Например, для типичного веб-приложения электронной коммерции основной сквозной сценарий выглядит следующим образом:

Домашняя страница -> Результаты поиска -> Информация о продукте -> Вход для клиентов / Регистрация -> Платежные реквизиты -> Подтверждение заказа


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

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

Изучая данные аналитики, вы, вероятно, обнаружите, что 80% пользователей пройдут одним и тем же путем, но с разными данными. Поэтому наш пакет регрессии дыма должен быть построен на основе этих сценариев.

4. Увеличьте охват

Замечание о покрытии, здесь я не говорю о покрытии тестами; основное внимание уделяется покрытие функций .


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

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

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

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

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

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

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

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

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