Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Тестирование на основе диаграмм состояний сущности

Лекция



Привет, Вы узнаете о том , что такое тестирование на основе диаграмм состояний сущности, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое тестирование на основе диаграмм состояний сущности , настоятельно рекомендую прочитать все из категории Качество и тестирование программного обеспечения. Quality Assurance..

Имея некоторый опыт в тестировании, обнаружила, что аналитики и программисты часто не уделяют внимание некорректным переходам между состояниями сущностей. Что это значит на практике? Например, вы можете удалить то, что уже было удалено, отредактировать уже отправленное и т.д. Такого рода действия могут привести к необработанным исключениям, в том числе ошибкам на уровне БД. Почему надо обрабатывать такие ошибки? Как минимум, плохо показывать пользователю информацию о логической структуре БД. Такие ошибки чаще всего свойственны многопользовательским системам, где несколько пользователей могут редактировать один и тот же объект. В этой статье я расскажу, как проектировать тесты для проверки переходов между состояниями объекта и как быстро оценивать затраты на такое тестирование.

Требования к состояниям сущности


В большинстве случаев требований к состояниям сущности в явном виде нет, и тестировщику приходится формулировать их самому, выделяя нужную информацию из сценариев использования / user stories. Если же требования все-таки есть, они выглядят как-то так:
Тестирование на основе диаграмм состояний сущности

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

Пример: составление диаграммы состояний по требованиям


Требование 1: сразу после получения сообщений с почтового сервера они помечены как непрочитанные.
Требование 2: когда пользователь кликает на сообщение, чтобы открылось его содержание, сообщение становится прочитанным.
Требование 3: пользователь может пометить ранее прочитанные сообщения как непрочитанные.
Требование 4: пользователь может удалить сообщения (как прочитанные, так и непрочитанные), вернуть сообщения после удаления нельзя.

По этим требованиям можно получить такую диаграмму для сообщений:
Тестирование на основе диаграмм состояний сущности

Как проектировать тесты по диаграммам состояний


Простые позитивные тесты по диаграммам состояний представляют собой проверку валидных переходов между состояниями, т.е. возможность выполнить действия, обозначенные стрелками. Об этом говорит сайт https://intellect.icu . Негативные тесты – проверка невозможности выполнения никаких других действий. Таким образом, легко посчитать количество необходимых позитивных тестов – количество стрелок на диаграмме. Количество негативных тестов тоже несложно подсчитать: 
T- = N2-T+,
где T- – количество негативных тестов, N – количество состояний, T+ – количество позитивных тестов.

Формулу выше легко получить из матричного представления диаграммы состояний. Такое представление строится следующим образом:
  • матрица квадратная, количество строк и столбцов равно количеству состояний на диаграмме;
  • строки будут обозначать исходящие стрелки, столбцы – входящие;
  • если стрелка выходит из состояния 1 и входит в состояние 2, на пересечении строки 1 и столбца 2 следует поставить +.

Таким образом, количество плюсов в матрице соответствует позитивным тестам, а пустых ячекк – негативным. Их количество расчитывается по формуле выше.

Самое сложное при тестировании состояний – не подсчитать количество тестов или ничего не забыть (все тесты легко учитываются с помощью матрицы), а спроектировать реальные сценарии, соответствующие негативным тестам.

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

Пример: тесты для диаграммы состояний сообщения


Спроектируем матричное представление для следующей диаграммы состояний:
Тестирование на основе диаграмм состояний сущности
Тестирование на основе диаграмм состояний сущности

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

— Не прочитано – Не прочитано:
  1. Открыть список сообщений на двух вкладках браузера.
  2. Найти прочитанное сообщение и пометить его непрочитанным на первой вкладке.
  3. Не обновляя вторую вкладку, пометить непрочитанным сообщение, выбранное на Шаге 2.

Ожидаемый результат: сообщение на обоих вкладках помечено как непрочитанное, на Шаге 3 не возникает сообщения об ошибке.

— Удалено – Удалено:
  1. Открыть список сообщений на двух вкладках браузера.
  2. Найти произвольное сообщение и удалить его на первой вкладке.
  3. Не обновляя вторую вкладку, удалить сообщение, выбранное на Шаге 2.

Ожидаемый результат: сообщение на обоих вкладках удалено (пропало из списка сообщений), на Шаге 3 не возникает сообщения об ошибке.

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

Тестирование, очевидно, будет состоять из двух стадий: 
  • проверить, что можно корректно выполнить позитивные тесты (существующие переходы между состояниями);
  • убедиться, что нет никаких других переходов (негативные тесты).

Сложные тесты по диаграмме состояний


Простые позитивные тесты представляют собой, как описано выше, проверку одного корректного перехода между двумя состояниями. Таким образом, можно сформулировать простейший критерий покрытия диаграммы тестами: протестированы все существующие переходы между состояниями, и объект побывал в каждом состоянии хотя бы один раз. Но можно проектировать и более сложные сценарные тесты, состоящие из более чем одного перехода. Такие тесты могут быть в дальнейшем использованы и для нагрузочного тестирования. Аналогично, можно задать более сильные критерии покрытия тестами: проверены все возможные пары переходов между состояниями, тройки и т.д. (до N-1, где N – количество состояний объекта). Такое покрытие называется покрытием переходом Чау или покрытием N-1 переходов. Соответственно, самое слабое покрытие будет покрытием 0 переходов.

Другие применения диаграмм состояний


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

Проектирование тестов может быть автоматизировано, если диаграмма состояний задана с помощью одного из формальных языков спецификаций (VDM, Z, B и др.). Существуют универсальные решения для формального подхода к составлению спецификаций и соответственно тестированию на основе такого рода моделей (uniTESK). Но даже если такие инструменты не применяются, необходимое проектирование тестов вполне можно сделать вручную, если диаграмма состояний не слишком большая.

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

Из статьи мы узнали кратко, но содержательно про тестирование на основе диаграмм состояний сущности
создано: 2017-01-22
обновлено: 2021-03-13
132409



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Качество и тестирование программного обеспечения. Quality Assurance.

Термины: Качество и тестирование программного обеспечения. Quality Assurance.