Зарегистрируйтесь, чтобы продолжить обучение

CRUD Введение в тестирование веб-приложений

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

Представьте мобильное приложение для туризма. В нем пользователь может изучать карту местности и:

  • Создавать записи о местах, которые хочет посетить

  • Просматривать информацию о городах и достопримечательностях

  • Исправлять информацию о достопримечательностях

  • Удалять записи о местах, которые больше не хочется посетить

Другой пример — вы администратор художественной онлайн-галереи. Вам необходимо:

  • Создавать записи о новых художниках и их работах

  • Просматривать информацию об экспонатах

  • Редактировать информацию о художниках и экспонатах

  • Удалять записи о работах, которые убрали из галереи

В этих сценариях прослеживаются базовые действия: создание, чтение, обновление и удаление. Они известны как CRUD (Create Read Update Delete).

В этом уроке мы изучим каждую из операций CRUD. Вы разберетесь в особенностях создания, чтения, обновления и удаления. Также вы узнаете, как тестировать CRUD на примере сервиса Яндекс.Карты.

Особенности CRUD

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

Create

Создание новых данных — ключевая функция всего CRUD. Остальные операции не имеют смысла без создания новой записи в базе данных.

При создании новой записи важно валидировать данные, как и в любой форме. Подробнее про валидацию вы узнали из урока «Формы».

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

Read

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

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

Update

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

Delete

Удаление — последняя операция для CRUD. Она удаляет записи из базы данных, будь то информация о картине или метка на карте.

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

С точки зрения реализации удаление делится на два типа:

  • Физическое — запись стирается из базы данных без возможности восстановления

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

Как тестировать CRUD

Попробуем протестировать CRUD-операции вручную. Для этого воспользуемся сервисом Яндекс.Карты, который позволяет создавать списки меток и добавлять интересные точки на карте. Этим сервисом часто пользуются путешественники, чтобы добавить все интересующие их места на карте:

Создание категории на яндекс картах

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

Тестировать будем по такому сценарию:

  1. Создать список

  2. Добавить две точки на карте

  3. Проверить их отображение в списке

  4. Удалить список

Добавление списка

Создадим новый список и назовем его «Отпуск»:

Создание категории на яндекс картах

Здесь мы видим операцию создания — в нашей учетной записи появляется новый список. Этот список доступен только для нашей учетной записи.

Он позволяет проводить остальные операции по CRUD:

  • Чтение списка

  • Обновление записей в списке — добавление или удаление точек на карте

  • Удаление списка

Добавление точек в список

Теперь попробуем обновить список. Добавим две точки на карте:

Добавление точек в список на яндекс картах
Добавление точек в список на яндекс картах

На этом шаге мы обновили список. Обратите внимание, что обновляется только список. Сами точки на карте — это лишь часть списка, они не изменяются. Филиал Третьяковской галереи и информация о нем никак не изменится от того, что мы добавили точку в наш список.

Просмотр точек в списке

Проверим, что точки добавились корректно. Для этого перейдем в список «Отпуск»:

Просмотр точек в списке на яндекс картах

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

  • Изображения точек

  • Количество точек

  • Каждая точка в отдельности

Важно проверить, что чтение списка доступно только создателю или тем, кому открыт доступ на чтение списка.

Удаление категории

После проверки списка на чтения осталось его удалить:

Просмотр точек в категории на яндекс картах

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

Еще одна особенность — подтверждение удаления. Это сделано, чтобы случайно не удалить категорию:

Просмотр точек в категории на яндекс картах

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

Выводы

В этом уроке мы разобрали механизм, который называется CRUD. Он состоит из четырех базовых операций, которые происходят в базе данных:

  • Create — создание

  • Read — чтение

  • Update — обновление

  • Delete — удаление

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

Во время ручного тестирования CRUD мы воссоздаем сценарий использования сайта и проверки всех операций. Этот сценарий называют «путь пользователя».


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 26 декабря

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»