чит лист тестирования календаря

Как мы тестируем frontend (html-верстку). Чек-лист

Меня зовут Павел, я со-основатель 100UP (разработка сайтов и рекламное агентство в одном лице). Мы занимаемся дизайном и разработкой технически сложных веб-проектов. В основном это e-commerce и b2b-порталы (личные кабинеты дилеров, производителей и др.).

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

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

1. Два вида тестирования: ручное и автоматизированное. Автоматизация: юнит-тесты и интеграционные тесты.

2. Чек-лист по тестированию верстки: что в себя включает проверка; проверяемые параметры.

3. В каких браузерах и на каких устройствах мы тестируем.

4. Разработка сайта и тестирование. Схема.

5. Сервисы, которые используются для тестирования верстки сайта.

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

Для того, чтобы выполнить ручное тестирование, разработчику и тестировщику необходимо “пройтись” по всем пунктам разработанного заранее чек-листа (представлен в пункте статьи №2).

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

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

Самые низкоуровневые (простые) тесты — это юнит-тесты. В широком смысле юнит-тесты — это код, который тестирует юниты (части) кода: функции, модули и классы. В рамках frontend-разработки юнит-тесты — это тесты javascript. Обычно каждый javascript-компонент сайта имеет большое количество мелких юнит-тестов. Каждый такой тест проверяет только одно взаимодействие с тестируемым компонентом.

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

Для написания и воспроизведения юнит-тестов мы используем фреймворк jest. Тесты производятся в виртуальной среде, где взаимодействие с сервером эмулируется.

Кроме юнит-тестов также для автоматического тестирование верстки мы используем приемочные тесты или интеграционные тесты. В интеграционных тестах производится тестирование как и целых компонентов, так и взаимодействие разных компонентов друг с другом. Такие тесты позволяют проверить, как frontend будет вести себя на готовом сайте на CMS-движке. В первую очередь данными тестами проверяется взаимодействие различных javascript-компонентов между собой.

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

Для написания приемочных тестов мы используем Selenium.

Кроме того к автоматическим тестам мы относим мониторинг сайта и логирование javascript-ошибок, найденных при взаимодействии с этим сайтом. На наших сайтах мы логируем javascript-ошибки с помощью Sentry.

Данный чек-лист постоянно нами обновляется и каждый его пункт содержит описание, которое мы решили не вставлять в эту статью, так как она была получилась “километровая”. Актуальный чек-лист с комментариями можно посмотреть на нашем сайте.

Мы пришли к тому, что проверяемые параметры можно разделить на несколько групп:

1. Соответствие макету

2. Работа в разных окружениях

3. Проверка на разных разрешениях экрана (проверка десктопной и адаптивных версий)

Источник

Чек-лист для тестирования числового поля

При тестировании встречаются как интересные задачки с замудреной логикой, так и простые, вроде проверки простой строки или числового поля. Для простых полей можно один раз написать чек-лист проверок, а потом переиспользовать, лишь немного меняя под «своё» поле.

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

Итак, у нас есть некое поле, куда нужно вводить число. Например, поле «возраст» при регистрации:

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

При этом на сайте нельзя регистрироваться до 18 лет, есть запрещённый контент.

Какие проверки тут можно провести:

Корректные значения

Представьте, что у вас буквально 5 минут на проверку функционала. И вы успеваете провести только первые несколько тестов из чек-листа. А чек-лист у вас:

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

Для поля с возрастом какие у нас будут корректные значения? Все, что выше 18 лет:

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

Также важно понимать, что у нас может быть не одно корректное значение. Это когда у нас есть несколько диапазонов, и разные условия на каждом.

Например, тот же возраст:

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

Или если у нас идет расчет страховки в зависимости от стажа вождения:

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

Каждый раз берем разные значения, но в этом пункте смысл один — взять корректные значения из ТЗ.

Некорректные значения

Тут есть разные варианты. Что значит некорректное значение?

— А что будет, если мы возьмем значение из «неправильного» диапазона? Что, если мне меньше 18 лет? Ну, скажем, 10.

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

Потом внимательно смотрим на выбранный интервал:

— Хммммм, но ведь возраст не может быть меньше 0. То есть у нас есть логическая граница, разделяющая два разных класса эквивалентности:

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

— Если у нас есть некая логическая граница снизу, должна быть и сверху. Какой максимально возможный возраст у регистрирующихся на нашем сайте? Скорее всего, это около 55-65 лет, потому что более старшее поколение не любит компьютеры. Но можно заложить и условные 100-110 лет долгожителей.

Получаем еще один интервал с неявной границей. Но в любом случае, значения 25 и 145 будут различаться — одно реалистичное, а другое нет. Значит, стоит его тоже попробовать!

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

А дальше снова эффект пестицида. Один раз берем 145, а другой — 6666666.

Тут мы можем столкнуться с тем, что в поле нельзя ввести больше 2-3 символов. Разработчик перестраховался «от дурака». Это не повод опускать руки и отказываться от своей проверки. Потому что скорее всего разработчик просто установил maxlength на поле, а он легко обходится!

Граничные значения

Граничные значения отделяют один интервал от другого. Их обязательно надо тестировать. Потому что именно на границах чаще всего встречаются баги. Почему? Да потому что попадают в оба диапазона, или не попадают ни в один.

В нашем примере в ТЗ есть условие «регистрация только для лиц старше 18 лет». Это значит, что разработчик должен сделать в коде программы логику вида:

Источник

Чек-лист тестирования WEB приложений

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

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

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

Чек-лист для тестирования WEB приложений состоит из шести разделов:

Функциональное тестирование

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

Что проверяем?

Интеграционное тестирование

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

Что проверяем?

Тестирование безопасности

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

Что проверяем?

Тестирование локализации и глобализации

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

Что проверяем?

Тестирование удобства использования

Тестирование удобства использования подразумевает проверку навигации, контента, другая информация для пользователя.

Что проверяем?

Кросс-платформенное тестирование

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

Источник

Где брать идеи для тестов (подборка полезных ссылок)

Вот выдали нам (тестировщикам) функционал и сказали:

А с чего начать? Для новичка это может быть целой проблемой. Особенно когда нет подробного ТЗ. Поэтому я решила создать эту подборку, где можно поискать вдохновение! ツ

Где брать идеи

Статьи

Они обычно называются «классы эквивалентности для. », или «чек-лист для. », или «чит-лист для. », или как-то так. Вот вам мои подборки:

Классы эквивалентности для стандартного грида — то есть для шапки отчета, по которой можно сортировать

Это еще не конец! — в этой статье Michael Hunter рассказывает про разные методы ввода, файлы, сетевое соединение, сообщения об ошибках, доступность, меню…

Юлия → Iuliia. Схемы транслитерации — если ваша система что-то транслитерирует, то будет полезно.

Чит-листы в Ситечке

В системе «Ситечко» есть чит-листы, это как раз шаблоны для переиспользования (подробнее можно почитать тут).

Чтобы их увидеть, нужно:

Ну и всё, дальше уже выбираете нужный вам.

Работы студентов

Я собираю хорошие работы студентов своей школы для начинающих в конфлюенсе в открытом доступе (ссылка доступна без авторизации). Эти работы помогают другим студентам:

Плагины для автозаполнения полей

Например, тот же Bug Mugnet. Установили плагин, ставим курсор на любое поле ввода, и вдохновляемся. Вот, например, подборка для валидных емейл-адресов:

чит лист тестирования календаря. Смотреть фото чит лист тестирования календаря. Смотреть картинку чит лист тестирования календаря. Картинка про чит лист тестирования календаря. Фото чит лист тестирования календаря

Исследовательские туры

Туры из книги James A. Whittaker — это когда ты выбираешь какой-то один тур, засекаешь время, и выполняешь задачи тура. Фишка в том, что в каждом туре подробно рассказано, что именно тебе нужно делать.

Они помогают находить баги. Но и мысли для тестирования тоже подкидывают. В какую сторону думать, что проверять — можно найти там вдохновение!

Если у вас есть другие полезные ссылки на чек-листы и идеи для тестирования, скидывайте в комментарии!

PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале

Источник

То, что поможет начинающему тестировщику

I. Дата и время:
Американский/Канадский формат даты/времени представлен в виде mm/dd/yyyy (hh:mm:ss).
Европейский формат даты/времени представлен в виде dd-mm-yyyy (hh:mm:ss).

Тестирование осуществляется по следующим этапам:

1. Вводятся типичные правильные значения, и проверяется связанная с полем функциональность (“05/05/2005” или “05-05-2005”).

2. Вводятся типичные неправильные значения, и проверяется присутствие валидации (“dfg”).

3. Вводятся граничные правильные значения. Каждый элемент (день, месяц, год, час, минута, секунда) тестируются отдельно. Можно совмещать в один тестовый пример тестирование нескольких элементов одновременно, но при нахождении ошибки нужно провести тестирование каждого элемента по отдельности. Это значит, что только один элемент принимает граничное правильное значение, а остальные – типичные правильные.
Границы правильных значений:
3.1. Месяц: 01..12.
3.2. День: 01..max_in_month, где max_in_month – максимальное количество дней в выбранном месяце. Варианты: 02/29/2000, 03/31/2000.
3.3. Год: 1753..9999.
3.4. Час: 00..23.
3.5. Минута: 00..59.
3.6. Секунда: 00..59.
3.7. Если дата не может быть будущей, то вводим сегодня/сейчас.
3.8. Если 2 даты означают диапазон, то вводим одинаковые даты.

4. Дата/время остаются правильными если:
4.1. Месяц/день/час/минута/секунда представлены одной цифрой.
4.2. Секунды отсутствуют.

6. Производятся атаки на поле:
6.1. DoS атака. Строка содержит очень много символов (0,1-1Мб).
6.2. Строка содержит спецсимволы («♦♣☺♂»).
6.3. XSS атака. Строка содержит html или php теги. Примеры:

6.4. SQL инъекция. Строка содержит SQL команды в правильном формате для исполнения: ’01/01/2000″; DROP TABLE users; SELECT * FROM data WHERE name LIKE «%’.

Далее у меня описаны правила тестирования числовых полей, полей для мыла, текстовых полей, text area и т.д.

P.S. Дал бы больше по этому топику, но сам только начал работать над этим. Правда еще есть чуть-чуть:

II. Числовой поле:
Числовые поля делятся на 2 вида: целые и дробные. Поля для дробных чисел обычно имеют форматер, устанавливающий определенное количество знаков за точкой (лишние знаки обрезаются, а недостающие заменяются нулями).

Тестирование осуществляется по следующим этапам:

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

3. Вводятся типичные неправильные значения, и проверяется присутствие валидации и форматера.

4. Если форматер есть, и он не описан в спецификации, то обычно его не тестируют. Его работа проверяется при тестировании валидации.
Форматер может быть следующих типов:
а) не позволяет вводить нечисловую информацию;
б) после потери фокуса обнуляет значение, введенное неверно;
в) после потери фокуса убирает все нечисловые символы;
г) после потери фокуса сохраняет только числовую часть, которая стоит перед первым нечисловым символом.

Источник

Добавить комментарий

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