вторник, 11 августа 2015 г.

Идеи багов. Даты и високосный год


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

Моя прошлая работа была = Ромашка-Страхование. Я там как раз занимался тестированием полисов КАСКО, писал автотесты.

Вспомнил одну тонкость с датами в расчёте полиса КАСКО, на которую напоролся случайно.

1) Первая особенность связана со взаимодействием 4 дат: ДР, дата выдачи В/У, дата заявки (предложения) и дата начала действия полиса.
Комбинируя различные комбинации этих 4 дат можно наткнуться на недоработку разработчиков. Конкретно в Ромашке между датой заявки и датой начала действия полиса не более 30 дней. Проблема обнаруживается в том, как считают возраст и стаж девелоперы: относительно даты заявки или даты начала действия полиса. А несколько дней + или - могут дать разницу в несколько тысяч рублей, что существенно.

2) Вторая особенность связана с языком разработки. Если это JAVA, то краеугольным камнем считается переход 28 февраля - 1 марта вблизи високосного года.

Пример:
Дата начала действия полиса = 28 февраля.
Как правило, КАСКО продаётся на 1 год. Следующий год високосный.
Вопрос: до какой даты полис будет действовать? До 28 февраля или до 29 февраля?

Или полис начал действовать 1 марта - до какого числа следующего года он должен действовать?

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

Или полис начал действовать 29 февраля.
+1 год - это 28 февраля или 1 марта? Зависит от языка разработки и от того, как это понимает разработчик (или как ему объяснил аналитик)

Я там работал как раз в 2012 году (високосный). И проблема таки всплыла 29 февраля!

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

  1. обычно в договорах чётко указывается - 360/365 дней, т.е. вопрос в високосности года не стоит.
    формулировка как "1 год" используется для клиента, чтоб ему было понятнее.

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