Русский
Русский
English
Статистика
Реклама

Визуализация ТЗ диаграммы, схемы, картинки

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

Как же сделать ТЗ понятнее? Можно улучшить текст вместо скупого текста составить вариант использования. А можно использовать визуализацию. То есть добавить в требования картинки, диаграммы, таблицы...

Причем сделать это может не только аналитик, но и любой член команды. Тестировщикам особенно полезно визуализировать ТЗ, потому что это помогает сразу увидеть проблемные места и уточнить их ещё до реализации. Раннее тестирование и всё такое =)

А ещё техники, помогающие лучше понять требования, относятся к техникам тест-дизайна. Значит, о них стоит знать! В одну статью всё запихивать не стала и сделала отдельные:

  1. Вариант использования

  2. Decision Table (таблицы решений)

  3. State & Transition Diagram (схема состояний и переходов)

Но значит ли это, что таблица или S&T единственный способ визуализации? Разумеется, нет! Можно рисовать вообще всё, что вам вздумается. Главное чтобы картинка помогала лучше понять требование или тест (да, при описании тестов визуализация тоже помогает!).

И сегодня я покажу разные примеры визуализации из своей практики, или работ моих студентов. Может, что-то из этого приглянётся и вам! =)

  1. Как рисовать картинку

  2. Примеры

  3. Плюсы подхода

  4. Минусы подхода

  5. Инструменты для рисования

  6. Итого


Как рисовать картинку

Берем требование и представляем в графическом виде. Всё!

Главное отличие от S&T в том, что нам необязательно рисовать именно объект. Мы рисуем всё, что захотим. Всё, что поможет сделать ТЗ более читабельным, да хоть интерфейс в виде карты! Или блок-схема, или что-то ещё.


Примеры

.

Карта сценариев

Функционал взаимодействия с конкретной книгой (взято из работ моих студентов):

Это карта сценариев, а не S&T, но он этого она не менее полезная!

.

Загрузка инкремента

Блок-схема про то, как это работает под капотом. На одном из проектов мы сделали довольно хитрую схему импорта данных из буферной таблицы. Для пользователей написан вариант использования, и там всё просто:

  • Исходная система выгрузила данные в буферные таблицы.

  • В таблице increment добавила номер выгруженного инкремента это будет флаг для нашей системы начинать забор данных.

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

  1. Подготовка данных

  2. Загрузка

  3. Очистка буфера

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

Это было продуктивное общение! Пока он объяснял, я рисовала на бумажке схему и задавала по ней вопросы. После нескольких вопросов раработчик признал, что я молодец, он про вот это и то не думал. Не зря рисовала! Без рисунка я бы просто не удержала всё в голове, и не обнаружила проблемные зоны.

По итогам обсуждения я создала в вики раздел Техническая сторона сценариев, алгоритмы и переписала туда все со своего листочка, полученный алгоритм и рисунок (в visio накидала):

  1. null => 1. Выбираем все записи из таблицы INCREMENTS, где import_status is null и устанавливаем им значение import_status = 1.

  2. Удаляем неактуальные записи из буферных таблиц (физ лица и телефонов).

  3. Грузим физиков по условию in (id_increment, для которого import_status in 1).

  4. Грузим телефоны по условию in (import_status in 1).

  5. Создаем связи телефон - физик или телефон - юрик (тип контрагента смотрим по таблице staging).

  6. Удаляем физиков из буфера, если не было ошибок на этапе загрузки.

  7. Удаляем те телефоны, у которых есть связи (проверяем наличие record_id физика/юрика в staging).

  8. 1 => 2. Выбираем все записи из таблицы INCREMENTS, где import_status = 1 и устанавливаем им значение import_status = 2.

Согласитесь, при наличии такой картинки тесты на каждый раздел писать намного проще! Я четко вижу, что задача подготовки выполняет три действия. Значит, тестируем каждое!

null => 1. Выбираем все записи из таблицы INCREMENTS, где import_status is null и устанавливаем им значение import_status = 1.

Добавляем запись с пустым import_status проверяем, что статус изменился на 1.

А если исходно был статус 1?

А если исходно другой статус?

Так, дальше идет вызов oracle-процедуры. На схеме записано, как она называется ищем по названию в коде, изучаем, что она делает. И готовим тестовые данные, как позитивные, так и негативные.

Что у нас дальше? ...

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

Так что я продолжила традицию. Если есть какой-то сложный алгоритм думала, как его можно зарисовать (блок-схема, диаграмма, кружочки и стрелочки, что угодно!), а потом заносила в раздел с техническими подробностями.

.

Тесты в PowerPoint!

Метод рисунка работает не только с ТЗ, но и с тестами!

Тестировала оракловые вьюшки (view). Фактически это просто табличка с нужными мне колонками. Как любой отчет в интерфейсе. Cтроится отчет по определенному диапазону времени. Если сущность менялась в этом диапазоне она попадет во view. Если нет то увы.

На входе у меня есть текущее состояние базы когда объект был создан, а когда закрыт. И параметры диапазона:

  • from_date начальная дата

  • to_date конечная дата

Я набросала все интересные мне тесты в блокноте это быстрее всего. Допустим, объект создали 5 числа, а удалили 10. Какие интервалы между ними мне надо посмотреть?

Рисунки помогают мне быстро охватить картину покрытия тестами. Так, вот только создание попадает в диапазон есть. А оба события сразу есть. А между ними? Есть. А... И так далее. Накидаешь идей за пару минут мозгового штурма, и можно с ними работать. Переносить в код и описывать на вики.

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

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

Обычно я рисую в yEd. Но черточки и текст отдельно там сделать проблематично. Тут не подходит. Хм... Paint? Открыла его, нарисовала кривую "прямую" :) Тоже неудобно, хочется, чтобы симпатичненько смотрелось, а мышкой я прямые линии буду полчаса рисовать. Visio покупать надо... О, PowerPoint!

Открыла, попробовала. Поставила исходные засечки "создан 5, закрыт 10". Добавила прямоугольник на задний план идеально! Просто перетаскиваешь прямоугольник, то сужая, то расширяя его, и делаешь скриншоты. А как наглядно получается:

Вот диапазон захватывает обе засечки. Два события внутриВот диапазон захватывает обе засечки. Два события внутриА вот внутри диапазона только создание объектаА вот внутри диапазона только создание объекта

Добавим картинки в описание тестов на конфлюенсе (вики):

Красота!

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

Есть картинки и посложнее. Когда событий будет поболее, чем просто "создали один объект и его же закрыли". Тут мне было удобнее рисовать время по вертикальной оси:

Усложняем логику тестовУсложняем логику тестов

Вот тут то меня PowerPoint и выручил! Если делать зарисовки от руки, то на каждый тест надо повторять основу, а потом обводить кружочком нужный диапазон. Получится долго. А без визуализации "что я уже сделала" мне тяжело. А в программе вжух-вжух поперемещал желтый прямоугольничек, заскринил каждую вариацию и готово! Даже круче блокнотика и ручки :)

А как вам это? Слабо от руки 10 тестов разрисовать?))А как вам это? Слабо от руки 10 тестов разрисовать?))

Плюсы подхода

Визуализация!

  1. Позволяет увидеть, что мы упустили

  2. Помогает там, где много входных условий

Двойной профит визуализации: пока вы рисуете, то видите все слабые зоны ТЗ. А ещё делаете его более наглядным. Теперь каждый, кто будет читать ТЗ после вас, сразу всё поймет!


Минусы подхода

Картинку должен кто-то поддерживать, и это кто-то явно вы =)

Но всегда можно нарисовать ее одноразово!


Инструменты для рисования

  1. Бумага и ручка!!

  2. Маркер и доска

  3. Xmind (freemind, etc)

  4. Microsoft Visio

  5. PowerPoint

  6. YeD

  7. ...

Если задача простая используйте бумагу и ручку. Будет быстрее.

Если задача сложнее возьмите инструмент. Любой, хоть paint. Ведь фишка не в инструменте он лишь помогает вам сформировать мысль. Чем проще инструмент, тем лучше. Чем проще рисунок, тем круче. Вы ведь не Мону Лизу рисуете, а только набросок, который помогает понять тест.


Итого

Рисунок мощнейший инструмент визуализации. Если вам сложно что-то понять, зарисуйте это! Это может быть сложный участок ТЗ или чек-лист тестов. Пробуйте, экспериментируйте это время обязательно окупится. Причем сразу же, ведь, пока рисуешь, приходит вдохновение "проверить еще вот тут"!

PS больше полезных статей ищитев моем блоге по метке полезное. А полезные видео намоем youtube-канале

Источник: habr.com
К списку статей
Опубликовано: 03.04.2021 12:11:54
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Тестирование it-систем

Подготовка технической документации

Тестирование

Тестирование по

Требования

Требование

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru