вторник, 15 октября 2019 г.

Ивану кредит не давать!

Пару лет назад мой коллега Иван зашел на сайт банка Х и попробовал оставить заявку на кредит. Ввел ФИО и получил отлуп — «Имя «Иван» вводить нельзя».


Оказалось, что это криво реализованная защита от дурака. ФИО «Иванов Иван Иванович» вызывает подозрение. Скорее всего, это вымышленные данные, которые ввел тестировщик, или человек, который просто дурачится, не хочет давать свои данные.

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

Проблема в том, что нужно было запретить связку: имя Иван и фамилия Иванов и отчество Иванович. То есть условие в коде записать через AND.

А разработчики сделали через OR: если фамилия Иванов ИЛИ имя Иван ИЛИ отчество Иванович — получай ошибку!

Так что увы, все Ивановы, и даже просто Иваны. Таких имен нет, выберите другое!

**************************************************************************

Это реальная история, не вымышленная. Я писала о ней в статье «Классы эквивалентности: будни Золушки» — как пример того, что вроде выделил классы эквивалентности, а баг пропустил!


Если вы тестируете черный ящик, вы никогда не можете с уверенностью сказать, что проверили все классы эквивалентности. Никогда не знаешь, что придет в голову разработчику и какую «защиту» он поставит на поле. Пусть даже в остальном это будет простое текстовое поле, куда можно вводить всё, что угодно...

И именно поэтому так важно уметь выделять классы эквивалентности. И думать о конкретном поле, а не просто как о «это строка, а это число». Это не просто строка, это имя. Вот и проверяйте имена.

Да, и это не убережет от пропущенного бага. Потому что никогда не угадаешь, что может прийти в голову разработчику ¯\_(ツ)_/¯

И все же шансов найти проблему у вас будет больше! Да, закапываться тоже не стоит. Не надо часами тестировать простую строку. Но провести проверки для конкретного поля, а не string — можно и нужно.

1 комментарий:

  1. Вам срочно нужен кредит для оплаты счетов или на другие цели? Вам ранее отказывали в кредите в финансовых учреждениях или дома? Тогда у вас есть уникальная возможность получить кредит в нашей компании. Trustbridge Financial Service — это авторитетный и легальный кредитор, предоставляющий кредиты физическим и юридическим лицам по низкой процентной ставке 3%. Свяжитесь с нами сегодня по электронной почте (trustbridgefinancialservice943@yahoo.com), и мы поможем вам с получением финансовой помощи.

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

    Мы предлагаем следующие виды кредитов:
    a) Потребительский кредит, кредит на расширение бизнеса,
    b) Кредит на открытие бизнеса, кредит на образование,
    c) Кредит на консолидацию долгов, кредит на ремонт дома,
    d) Кредиты под залог недвижимости, инвестиционные кредиты,
    e) Кредит на подготовку к Рождеству.

    Заполните информацию ниже для начала процедуры.

    ФИО:
    Адрес:
    Страна:
    Необходимая сумма кредита:
    Срок кредита:
    Цель кредита:
    Номер телефона:

    Для получения дополнительной информации свяжитесь с нами через WhatsApp: +2349124847559.

    Спасибо
    Администрация
    Финансовые услуги Trust Bridge

    ОтветитьУдалить