28/10/2020
Привет, меня зовут Владимир Савенков. Я разработчик программного обеспечения компании WellYes и сегодня расскажу о тестировании веб-приложений и возможностях его автоматизации.
Тестирование - важная часть процесса разработки веб-приложений. Оно позволяет выявить и устранить возможные проблемы до выпуска стабильной версии и быть уверенными в том, что продукт соответствует предъявляемым требованиям и способен выполнять необходимые пользователю задачи. Многие виды тестов успешно автоматизированны и стали неотъемлемой частью процесса разработки.
Автоматизация рутинных проверок ускоряет процесс выпуска новых версий приложения, повышает качество итогового продукта и при должном подходе сводит к минимуму число ошибок в финальных версиях. Рассмотрим основные виды автотестов.
Модульное или юнит-тестирование направлено на проверку независимых блоков приложения. Такие тесты в сравнивают фактические и ожидаемые выходные данные после подачи на вход определенных значений. Написание юнит-тестов развивает умение декомпозирования кода, что улучшает его читаемость и сводит к минимуму дублирование. Наиболее популярные фреймворки: Mocha, Jasmin, Jest.
В свою очередь интеграционное тестирование отвечает за проверку взаимодействия нескольких связанных блоков приложения.Такие инструменты, как Hermione вместе с Sauce Labs или Applitools воспроизводят действия пользователя по описанному сценарию и проверяют, корректно ли отображается определенный фрагмент интерфейса, верна ли реакция элементов управления. Одни и те же тестовые сценарии могут запускаться в разных браузерах и на разных устройствах, обеспечивая кросс-браузерные проверки.
Наиболее трудоемкими и затратными по времени выполнения являются E2E-тесты, а тестирование называется сквозным, так как проверяет работу приложения целиком и автоматизирует действия пользователя, выполняя различные сценарии. Чаще всего E2E-тесты покрывают наиболее важные функции приложения. Хорошо зарекомендовавшие себя тестовые фреймворки: Protractor, WebdriverIO, NightwatchJS.
Я рассказал только об основных видах тестов, но на вашем проекте их может быть больше. Пишите в комментариях, пишите ли вы тесты и какие фреймворки используете для этого.