Статьи

До тестирования сайт ведет себя как кот Шредингера. Вы не знаете, работает ли все так, как задумано. Тесты перед запуском или обновлением сайта помогут убедиться в том, что в код не закрались уязвимости или дефекты. Объясняем на карточках как это работает.

Зачем вообще тестировать сайт?

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

Какие бывают виды тестов?
  1. Блочные (UNIT-тесты) пишет только разработчик для отдельных частей функционала. Они проверяют работу в условиях, приближенных к боевым. Это тестирование отдельных небольших частей функционала сайта в изоляции.
  2. Интеграционные (модульные) тесты проверяют работу нескольких взаимодействующих функциональностей. Они имитируют поведение пользователей и отправляются запросы системе, чтобы проверить ее работу.
  3. Функциональные тесты проверяют работу всей системы. Они имитируют поведение пользователя: программа открывает браузер, заходит на страницу, проверяет функциональности и отображение. Тест проверяет работу страниц целиком и помогает убедиться, что каждая функциональность сайта – ссылки, поиск, cookie-файлы работают именно так, как задумано и описано в ТЗ.
  4. Smoke-тесты это быстрые тесты для экспресс-проверки системы. Если на запрос приходит корректный ответ, то система в порядке и глобальных ошибок нет. Но при этом работу конкретной функциональности такой тест не покажет. Smoke-тесты рассчитаны на простые проверки, например, работает ли форма регистрации, и должны быть легкими и быстрыми, чтобы их часто запускать. Название произошло от способа быстрой проверки электроприборов: если, включив прибор в розетку, вы увидели дым, нужна доработка.
На что еще влияют тесты?

Тестировщик не просто запускает программу с тестом, а дает рекомендации по юзабилити. Тестирование помогает найти слабые места продукта на всех стадиях, помочь создать требования к продукту. По данным Nielsen Norman Group обеспечение качества влияет на пользовательский опыт. Когда функционал работает не так, как было задумано, пользователи ставят под сомнение свое понимание работы сайта и идет неэффективными обходными путями. Результат тестирования показывает, насколько логичен проект и понятны ли шаги по его использованию.

Какая методика тестирования сейчас актуальна?

Тестировать сайт можно вручную или автоматически. У каждого из подходов есть свои плюсы и минусы.

Автоматическое тестирование

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

Ручное тестирование

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

По исследованиям 2017–18 годов возникла тенденция на распространение автотестов и применение agile-методологии в тестировании. Специалисты рекомендуют определить стратегию тестирования и аналитики на уровне всей компании и повысить уровень автоматизации. «Умная автоматизация» и аналитика ускорят процесс тестирования на множестве девайсов. Эта тенденция ведет к развитию интеллектуальных платформ тестирования, которые будут адаптироваться под постоянно меняющиеся смартфоны и другие устройства.

Могут ли сайты работать без тестов?

Если проект не протестирован, значит что-то не работает, но вы об этом не знаете.
Кроме того, тестирование поможет:

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