Фирма

«Инрэко ЛАН»

Все описанное ниже основывается на книге Рекса Блэка "Advanced Software Testing". В первой статье были рассмотрены принципы построения и использования таблиц альтернатив, какие типы дефектов находятся с помощью этой методики. Во второй статье рассмотрена связанная концепция диаграмм причинно-следственных связей.

Введение

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

 

Как только платежная информация поступает для валидации в компанию, осуществляющую обработку кредитной карты, то существует целый набор условий, определяющий процесс обработки:

 

  • Принадлежит ли введенная кредитная карта указанному лицу, и верна ли остальная информация?
  • Действует ли карта или истек срок действия?
  • Находится ли лицо в пределах лимита по карте или вне его?
  • Проходит ли транзакция из обычного места или подозрительного?

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

 

  • Нужно ли подтвердить транзакцию?
  • Нужно ли связаться с держателем карты (например, чтобы предупредить его о покупке из подозрительного места)?
  • Нужно ли связаться с эмитентом (например, чтобы попросить его конфисковать карту с истекшим сроком)?

 

Табл. 1. Пример таблицы альтернатив (полная)

 

 Таблица 2 отражает ту же самую таблицу альтернатив только свернутую для того, чтобы выявить ненужные столбцы.

 Табл. 2. Пример таблицы альтернатив (свернутая)

 

 Диаграммы причинно-следственных связей

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

 

Процесс создания диаграммы причинно-следственных связей из таблицы альтернатив или наоборот достаточно простой. Для создания диаграммы из таблицы для начала нужно выписать все условия слева. Затем справа перечислить все действия. Теперь для каждого действия нужно определить, какие комбинации условий приводят к действию. Одно или несколько условий связываются с действием, используя булевы операторы, которые показаны на рисунке 1. Затем необходимо повторить этот процесс для всех действий в таблице альтернатив. Важно всегда помнить, что любая таблица альтернатив может быть трансформирована в диаграмму причинно-следственных связей и наоборот. Поэтому, что использовать - на усмотрение тест-аналитика.

 

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

 Рис. 1. Пример диаграммы причинно-следственных связей

 

Если нужно построить таблицу альтернатив по диаграмме причинно-следственных связей, сначала нужно перечислить все условия в левой верхней части "чистой" таблицы. Затем перечислить все действия в левой нижней части таблицы, под условиями. Следуя приведенному выше шаблону, сгенерировать все возможные комбинации условий. Далее согласно диаграмме причинно-следственных связей, определить действия, которые должны быть выполнены и не выполнены для каждой комбинации условий. Когда все ячейки действий полностью заполнены, можно свернуть таблицу, если требуется.

 

На рисунке 1 показана диаграмма причинно-следственных связей, соответствующая приведенной таблице альтернатив. Может возникнуть вопрос: "Какой именно, полной или свернутой?" Обеим. Полная и свернутая логически эквивалентны, если только при сворачивании не было допущено ошибки.

Снизу на рисунке показана легенда, указывающая, как читать операции.


a.    Простая причинно-следственная связь: если А истина, то произойдет B, или, другими словами, А ведет к B.
b.    Отрицание: если А не истина, то произойдет B, или, другими словами, не А ведет к B.
c.    Операция ИЛИ: если А1 или А2 истина, то произойдет B, или, другими словами, А1 или А2 ведет к B.
d.    Операция И: если А1 и А2 одновременно истина, то произойдет B, или, другими словами, А1 и А2 ведут к B.

Рассмотрим связи между условиями и действиями. Сплошные линии с оператором И показывают, что все четыре условия должны быть удовлетворены, чтобы транзакция была подтверждена. Пунктирные линии с отрицанием и оператором ИЛИ показывают, что если счет недействительный или счет не активный, нужно связаться с эмитентом.

Штрихпунктирные линии немного сложнее. Для начала скомбинированы условия "внутри лимита" и "расположение ок" с помощью операторов отрицания и ИЛИ для того, чтобы создать промежуточное условие "лимит или расположение неверны". Затем это условие комбинируется с условием "действительный счет", чтобы сказать, что если лимит превышен или имеет место ситуация с подозрительным расположением, но счет действительный, то нужно связаться с держателем карты.

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

 

Андрей Конушин, ведущий инженер-тестировщик

Метки: тестирование

Добавить комментарий