Тестирование инф.систем. Ответы на вопросы к лекциям Понятие тестирования программного обеспечения
Скачать 0.52 Mb.
|
Снизу на рисунке показана легенда, указывающая, как читать операции.Простая причинно-следственная связь: если А истина, то произойдет B, или, другими словами, А ведет к B. Отрицание: если А не истина, то произойдет B, или, другими словами, не А ведет к B. Операция ИЛИ: если А1 или А2 истина, то произойдет B, или, другими словами, А1 или А2 ведет к B. Операция И: если А1 и А2 одновременно истина, то произойдет B, или, другими словами, А1 и А2 ведут к B. Рассмотрим связи между условиями и действиями. Сплошные линии с оператором И показывают, что все четыре условия должны быть удовлетворены, чтобы транзакция была подтверждена. Пунктирные линии с отрицанием и оператором ИЛИ показывают, что если счет недействительный или счет не активный, нужно связаться с эмитентом. Штрихпунктирные линии немного сложнее. Для начала скомбинированы условия «внутри лимита» и «расположение ок» с помощью операторов отрицания и ИЛИ для того, чтобы создать промежуточное условие «лимит или расположение неверны». Затем это условие комбинируется с условием «действительный счет», чтобы сказать, что если лимит превышен или имеет место ситуация с подозрительным расположением, но счет действительный, то нужно связаться с держателем карты. Тестирование на основе состояний и диаграммы переходов состояний Рассмотрим тестирование на основе состояний. Такая методика идеально подходит в ситуациях, когда имеются последовательности происходящих событий и условий, которые соответствуют этим событиям, а соответствующая обработка конкретной ситуации зависит от событий или условий, которые произошли раньше. В некоторых случаях последовательность событий потенциально может быть бесконечной, что, естественно, выходит за рамки возможностей тестирования. Необходима такая методика разработки тестов, которая позволяла бы работать с произвольно длинными последовательностями событий. Моделью, лежащей в основе такой методики, является диаграмма или таблица переходов состояний. Диаграмма или таблица связывает начальные состояния, события и условия с конечными состояниями и действиями. Диаграмма состояний по существу является графом специального вида, который представляет некоторый автомат. Иными словами, существует некий статус-кво, и система находится в текущем состоянии. Затем происходит некоторое событие, которое система должна обработать. На обработку этого события может влиять одно или более условий. Комбинация событий и условий вызывают срабатывание перехода: или из текущего состояния в новое, или из текущего снова в текущее состояние. В случае перехода система предпринимает одно или более действий. Имея такую модель, можно генерировать тесты, которые проходят по состояниям и переходам. Входные данные вызывают события и создают условия, в то время как ожидаемыми результатами теста являются новые состояния и действия, предпринимаемые системой. В тестировании на основании состояний применяются различные критерии покрытия. Слабейший критерий требует, чтобы тесты прошли каждое состояние и проверили каждый переход. Такой критерий может применяться к диаграммам переходов состояний. Более жесткий критерий покрытия – когда каждая строка в таблице переходов состояний покрыта как минимум одним тестом. Еще один потенциально более жесткий критерий покрытия требует, чтобы каждая последовательность переходов длины N и меньше была покрыта как минимум одним тестом. N может быть равно 1, 2, 3, 4 и больше. Это называется «Покрытием переходов Чау» (“Chow’s switch coverage”), по имени профессора Чау, разработавшим методику, или «Покрытием N-1 переходов» - по достигнутому уровню покрытия. Если покрыть все переходы единичной длины, тогда «Покрытие N-1 переходов» означает «покрытие 0 переходов». Следует заметить, что это тоже нижний уровень покрытия, который рассматривался выше. Если покрыть все переходы длины 1 и 2, тогда «Покрытие N-1 переходов» означает «покрытие 1 перехода». Это, естественно, более высокий уровень покрытия по сравнению с нижним. Но «покрытие 1 перехода» необязательно выше уровнем, чем покрытие каждой строки. Это потому, что таблица переходов ведет к тестированию комбинаций событий/условий, чего не происходит в диаграмме переходов состояний. Так называемые «переходы» в «Покрытии N-1 переходов» получаются из диаграммы переходов, а не таблицы. Какова же гипотеза ошибки при тестировании на основе состояний? Нужно искать ситуации, в которых происходят неверные действия или переходы в неверные состояния в ответ на конкретное событие при заданном наборе условий, основанных на истории комбинаций событий/условий до текущего момента. Согласно глоссарию ISTQB, тестирование переходов состояний (state transition testing) – это разработка тестов методом черного ящика, в котором сценарии тестирования строятся на основе выполнения корректных и некорректных переходов состояний. На рисунке 8 изображена диаграмма переходов состояний для выбора и покупки товаров из приложения электронной коммерции. Она показывает взаимодействие системы с клиентом с точки зрения клиента. Пройдемся по ней и отметим ключевые элементы диаграмм переходов состояний в целом и особенности конкретно этой диаграммы. Рисунок 8 – Пример диаграммы переходов состояний Прежде всего, нужно заметить, что слева имеется небольшой элемент в виде кружка и стрелки с названием «начальное состояние». Такая нотация показывает, что с точки зрения клиента транзакция начинается с просмотра веб-сайта. Можно переходить по ссылкам и просматривать каталог товаров, оставаясь в состоянии просмотра. Стрелка в виде петли над состоянием просмотра отражает как раз такой процесс. Узлы в виде прямоугольников со скругленными углами представляют состояния. Стрелки отражают переходы. Далее видно, что можно войти в состояние «выбор» путем добавления товара в корзину. «Добавить в корзину» - событие. Затем система отображает «диалог выбора», в котором спрашивает пользователя о количестве товаров, которое он хочет приобрести, а также о любой другой информации, которая необходима для добавления товара в корзину. Как только это сделано, пользователь может сообщить системе, что он хочет продолжить покупку. В этом случае система снова отображает домашнюю страницу, и пользователь возвращается в состояние просмотра. С точки зрения нотации следует заметить, что действия, выполняемые системой, записаны после символа наклонной черты на стрелке перехода. Альтернативно, покупатель может выбрать оформление покупки. В этом случае он входит в состояние авторизации. Он вводит регистрационную информацию. К этой информации применимо условие: верна ли регистрационная информация. Если не верна, то система отображает ошибку, и пользователь остается в состоянии авторизации. Если верна, то система отображает первую страницу в диалоге оплаты. Заметим, что |