Четыре причины для тестирования валидации ввода (хоть это и скучно) |
05.08.2019 15:45 |
Автор: Кристин Джеквони (Kristin Jackvony) Когда я только начинала работать в тестировании, мне очень нравилось проверять текстовые поля. Было забавно выяснять, что произойдет, если я вставлю в строку слишком большой текст. Однако к моей четвертой работе в QA, когда я обнаружила, что мне снова нужно тестировать форму контактов, мой интерес начал стихать. Ввод максимального и минимального количества символов, на один большего, чем нужно, количества символов, и так далее, в каждое поле приложения уже не казался таким интересным делом. Однако примерно в это время я осознала, как важно проверять валидацию ввода. Когда у пользователя есть возможность добавлять в приложение данные, тут есть потенциал для злонамеренного использования или неожиданных последствий. Тестирование валидации ввода – это критически важная задача по нижеописанным четырем причинам. БезопасностьЗлоумышленники могут пользоваться текстовыми полями для получения информации, к которой у них не должно быть доступа. Это можно провернуть тремя способами:
СтабильностьЕсли у пользователя есть возможность вводить данные, с которыми приложение не может справиться, то оно может среагировать неожиданным образом – например, упасть, или отказаться сохраняться. Вот ряд примеров:
Визуальное единообразиеКогда в поле слишком много символов, это может повлиять на отображение страницы. На это можно посмотреть, исследуя любое тестовое окружение. К примеру, если на странице контактов отображается список имен и фамилий, то зачастую можно увидеть, что какой-то дотошный тестировщик ввел "Оченьоченьоченьоченьоченьоченьдлинноеимя" в качестве контакта. Если такое имя приводит к излишней ширине страницы, требующей горизонтального скролла, то реальный пользователь на продакшене потенциально способен заставить страницу отображаться таким образом. Здоровье базы данныхКогда поля неверно валидируются, в базу могут сохраниться разнообразные ошибочные данные. Это может повлиять как на работу приложения, так и на его поведение. Поле ввода номера телефона – отличный пример того, как ошибочные данные могут повлиять на приложение. Я работала на компанию, где номера телефонов неверно валидировались годами. Когда мы обновляли приложение, мы хотели, чтобы телефоны автоматически форматировались, отображаясь в привлекательном формате: (800)-555-1000. Однако из-за значений в базе, выглядящих как "Папин номер", было невозможно все отформатировать, и это вызывало ошибки страницы. Если поля валидируются неправильно, то в базе данных могут сохраниться ошибочные данные, и это повлияет и на стабильность приложения, и на его поведение. Методичная валидация полей ввода может быть очень скучным делом, но примеры выше показывают, почему этим так важно заниматься. Хорошие новости: есть способы борьбы со скукой. Автоматические проверки валидации могут избавить нас от бесконечного прогона этих тестов вручную. Инструменты манки-тестинга могут помочь выявить баги. А немного фантазии позволит поддерживать тестирование интересным. Я сохранила текст песни "Frosty the Snowman" в отдельном файле. Если мне нужно проверить длину текстового поля, я вставляю туда куски текста. Если разработчик видит значения в базе вроде "Frosty the Snowman was a j", то знает, что там побывала я! |