четверг, 2 апреля 2015 г.

Тур, отмененный из-за дождя. The Rained-Out Tour

Входит в «Туры по отельным районам», Tours Through the Hotel District

Вольный перевод статьи Виттакера из книги Exploratory Software testing. Туры помогают искать баги, взглянув на систему по-новому. Тестировщик выбирает тур и следует его цели, не отвлекаясь ни на что другое. Словно турист в незнакомом городе, составил план и пошел!

В мае в Таиланде начинается сезон дождей — время внезапной отмены экскурсий. Местные смело продают билеты и уверяют, что бояться нечего — «Дожди еще небольшие, тур не отменится». А за день до начала звонят — «Простите, из-за дождей экскурсия переносится на три дня». А потом еще на три, и еще. И вот уже отпуск закончен, пора домой. А вы так и не съездили на экскурсию, потому что шел дождь и она отменилась…

1c3zbiDtrn0.jpg
Такие планы были, а из-за дождя остались дома....

Для туриста отмена — плохо.
Для тестировщика — хорошо, даже идеально! Тестировщик просто обязан использовать отмену всегда и везде, где только возможно.

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

Введите данные для поиска авиабилета, нажмите «Найти» и тут же отмените поиск. Отправьте документ на печать, подождите до середины процесса и отмените его.
Если программа делает что-то дольше пары секунд — отмените действие.
Если видите кнопку отмены — нажмите ее.

Способы отмены:
  • «Отмена» или «Назад» в приложении
  • «Esc» на клавиатуре
  • «Назад» в браузере
  • Shift + F4
  • «Х» — крест в правом верхнем углу браузера

Баги, найденные с помощью данного тура, обычно связаны с невозможностью приложения почистить за собой:

— Оставленные открытыми файлы.
— Старые данные, сохраненные во внутренних переменных.

Бывало ли у вас такое — винда не дает удалить файл, потому что «он уже открыт или используется какой-то программой», хотя вы уже все позакрывали? Вот это как раз проблема оставленного открытым файла.

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

Убедитесь и в том, что любую операцию можно повторить после отмены. Пользователь может передумать — это нормально.

Цель тура: найти функции, которые работают дольше пары секунд, запустить и отменить!

Начать операцию и отменить.
Начать операцию, потом начать ее снова без остановки первой.
Начать операцию, отменить и повторить.

Загрузка файла

Протестируем загрузку файлов в Дадату.
Отменить процесс можно на любом этапе:

— Выбор файла из проводника: кнопка «Отмена», «X» или Shift + F4.
1.PNG


— Страница структуры: «Назад» в Дадате, «Назад» в браузере, Shift + F4.
— Страница предвательных результатов: «Назад» в Дадате, «Назад» в браузере, Shift + F4.
2.PNG
— Обработка файла: «Назад» в браузере, Shift + F4.
— Результат обработки: «Назад» в браузере, Shift + F4.

Уделим особое внимание обработке большого файла — сколько денег спишется со счета, если мы прервем обработку на середине?

3.png

Повторение после отмены:
— Загрузка того же файла (случайно отменил).
— Загрузка другого файла (передумал, решил грузить другой).

Подсказки

Вводим символы — выдаются подсказки.

4.png
Как можно применить тур отмены:

— Ввести символ, стереть.
— Стереть и ввести тот же самый символ.
— Стереть и ввести другой символ.

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

Начнем ввод ФИО на медленном интернете, во время отрисовки подсказок:
— Переключаемся на другую вкладку подсказок («Адреса» или «Email»)
5.png
— Переключаемся на другую вкладку с помощью стрелок
6.png
— Переключаемся на другую вкладку в браузере, потом возвращаемся обратно.
— Нажимаем «Назад» в браузере.
— Закрываем окно по кнопке «Х» или Shift + F4.

Взлом системы
Этот тур может даже использовать в качестве тестирования безопасности! Вот вам выдержка из статьи «Мошенники вывели через сервис переводов Mastercard 9 млн рублей из-за ошибки в настройках банкоматов»
Операции проводили с 15 по 19 мая 2018 года в банкоматах на железнодорожных вокзалах в Москве. Участники схемы выбирали опцию перевода денег с карт «Сбербанка» на карты «Тинькофф банка», но в последний момент отменяли операцию. Мошенники выбирали опцию перевода, после чего направлялись запросы в банк отправителя и банк получателя для разрешения на списание и зачисление средств, объясняет эксперт по информационной безопасности банков Николай Пятиизбянцев, изучивший решение суда. Затем на экране банкомата появлялась информация о комиссии и предложение подтвердить перевод.
Ошибка в настройках заключалась в том, что банк — владелец банкомата считал, что операцию все ещё можно отменить, а банк получателя — что перевод уже отозвать нельзя. Мошенники отменяли операцию: сумма восстанавливалась на карте отправителя и одновременно проходил перевод. По правилам Mastercard для операций MoneySend банк получателя может не согласиться с отменой операции.


Примеры багов, найденных по туру:

— После отмены заказа приходит письмо о скидке 30% (самой скидки при этом нету)

<< Тур шотландского паба

Это мой любимый тур, поэтому перевела его «вне очереди». Тур отмены находит баги там, где их не видят остальные!

PS: Статья написана в помощь студентам моих курсов по тестированию и уже доступна на Testbase, чтобы не потерялась ссылка.

10 комментариев:

  1. только не в "Тайланде" - в "Таиланде")

    ОтветитьУдалить
  2. Спасибо Ольга, за цикл статей по Турам в исследовательском тестировании, очень здорово помогли при освоении этой темы :)

    ОтветитьУдалить
    Ответы
    1. И вам спасибо за обратную связь! Рада, что туры помогли :-)

      Удалить
  3. "Закрываем окно по кнопке «Х» или Shift + F4". А у меня окно закрывается только Alt + F4. :(

    ОтветитьУдалить
  4. Ольга, подскажите, пожалуйста, принципиально пробовать именно все разные варианты закрытия? просто у меня на маке нет F4. Просто непонятно, они по-разному отменяют или одинаково?

    ОтветитьУдалить
    Ответы
    1. Если нет ф4, значит без него) Я не знаю, как работает в коде, но "назад" и "закрыть браузер" работают по разному точно)

      Удалить