воскресенье, 16 декабря 2018 г.

Тур антисоциального типа. The Antisocial Tour

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

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

Антисоциальный человек делает все «назло», особенно если его насильно помещают в противный социум.


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

Если они едут вместе на экскурсию, жена продолжает вести себя «всем назло». Как бы в оппозицию с общим поведением. Все любуются на пейзаж? Она сразу найдет милую белочку и демонстративно рассматривает ее. Все пошли в розариум? Она стоит на входе, тяжко вздыхая.
Она все делает не как все. И под конец ее мужу визитку дает адвокат по разводам. Ну, достала она всех! Лучше бы совсем не ездила…

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

Антисоциальный тур требует вводить наименее хорошие входные данные и / или заведомо плохие. Если реальный пользователь должен делать Х, тестировщик в антисоциальном туре никогда не должен делать Х, и вместо этого найти наименее значимые входные данные.

Есть 3 специфичных пути достичь антисоциального поведения, которые автор организовал в 3 подтура:


1. Opposite tour (тур оппозиции) выполняется посредством ввода наименее хороших входных данных везде, где только возможно.Выбирайте входные данные, которые выходят из контекста, явно глупые или полностью бессмысленные.

— Как много предметов ты хочешь купить в магазине? 14,963.
— Как много страниц напечатать? -12.

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


2. illegal inputs (нелегальный ввод), с которым мы сталкивались в туре плохого района. Идея здесь в том, чтобы вводить значения, которые не должны быть введены.

Нельзя представить туриста, который стянул пинту в туре по пабам. Но в криминальном районе это нормальное поведение. Антисоциальный тип делает незаконные вещи, которые не должен, только потому, что он антисоциален.

Нарушение закона туристом посадит его в тюрьму или приведет к неприятностям. Нарушение закона тестировщиком приведет к многим сообщениям об ошибке.

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

Думай в терминах “какие ограничения связаны с этими входными данными” и потом нарушайте эти ограничения. Если приложение просит положительное число, дайте ему отрицательное. Если оно хочет integer (число), дайте ему character (символ).


3. Другой аспект антисоциального поведения заключается в wrong turn tour, во время которого тестировщик выполняет действия в неправильном порядке. Возьмите группу правильных действий и перемешайте их так, чтобы последовательность оказалась неверной.

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



Цель тура

opposite tour — вводить наименее хорошие входные данные везде, где только возможно — данные, которые выходят из контекста, явно глупые или полностью бессмысленные.

illegal inputs — вводить значения, которые не должны быть введены. Входные данные неверного типа, неверного формата, слишком длинные, слишком короткие итд. Аналогично туру по плохим районам.

wrong turn tour — выполнять действия в неправильном порядке. Возьмите группу правильных действий и перемешайте их так, чтобы последовательность оказалась неверной.


Примеры у нас, как всегда, будут про Дадату.

Регистрация



Имя

Opposite tour:
    • Кукушка
    • Идиот
    • (тут был мат)
    • Яйцо
illegal inputs:
    • ВБАтющ35ш щ8п48пд8ш5ц
    • Ё!”№;%:?*()_+{}”:<>?|)(*&^%$#@!~
    • (пустота)
    •  (пробел)
    • (строка на 10 млн символов)

Электронная почта

Opposite tour:

    • Пролетарская, 15
    • Мега Белая Дача
illegal inputs:
    • aa@aa@mail.com
    • aa@mailru
    • aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@mail.com (сгенерить 1 млн символов)

То есть отличие в том, что в одном туре данные плохие (неверный формат, длинная строка итд), а во втором — совсем бессмысленные.


Обработка данных

Система умеет обрабатывать данные разных типов:


Возьмем дату рождения. Тут, кстати, туры очень похожи. Например, «31 февраля» — это вроде про illegal inputs, но ведь это абсолютно бессмысленно с точки зрения ДР, верно?

Opposite tour:

    • Дата
    • 00.00.0000
    • 01.01.2099 (дата в будущем, книга писалась в 2018 году)
    • 31.02.1989 (в феврале столько дней не бывает, явная бессмыслица)

illegal inputs:

    • 00.00.0000
    • 99.99.9999
    • 01.01.1900
    • 555
    • 5/30/2006
    • 5*30*2006

          См также:
          Классы эквивалентности для строки, которая обозначает дату



Аналогично рассматриваем все остальные типы данных. Потом переходим в личный кабинет, подсказки. Тур предполагает, что мы протыкаем каждое поле. Конечно, 20 минут будет мало, все пройтись не успеем. Но можно увеличить время и сделать несколько подходов.

Если времени мало, пробуйте именно Opposite tour, он проще — видим поле и сразу придумываем полную бессмыслицу: “такого имени не существует!” (или даты рождения, телефона, банка и т.д.)




Wrong turn tour

Какие есть группы действий?
    1. Зарегистрироваться
    2. Положить денег на счет / выставить счет для ЮЛ
Что, если попробовать кинуть денег на счет по прямой ссылке? Или сначала запросить счет.

Что еще?
    1. Авторизоваться
    2. Загрузить файл
    3. Установить типы данных в структуре
    4. Запустить обработку
А файл нельзя загрузить по прямой ссылке, без авторизации? А если дернуть ссылку обработки? А если установить типы данных, а потом снова попробовать загрузить файл (через кнопку назад, например)?

Хм, как-то сложновато Дадату запутать…


См также:
Antisocial tour для Paint — видео (не мое)




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

2 комментария:

  1. "...вводить наименее хорошие входных данных..." -> вводить наименее хорошие входнЫЕ даннЫЕ

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