Элементарное сравнительное тестирование
Элементарное сравнительное тестирование ( ECT ) — это методология «белого ящика» с потоком управления , и проектирования тестов используемая при разработке программного обеспечения . [1] [2] Цель ECT — обеспечить детальное тестирование сложного программного обеспечения. Программный код или псевдокод тестируются для оценки правильной обработки всех результатов решений. Как и в случае покрытия с множеством условий [3] и тестирование базового пути , [1] охват всех независимых и изолированных условий достигается посредством модифицированного покрытия условий/решений (MC/DC) . [4] Изолированные условия объединяются в связанные ситуации, создавая формальные тестовые примеры . Независимость условия демонстрируется изолированным изменением значения условия. Каждое соответствующее значение условия покрывается тестовыми примерами .
Тестовый пример
[ редактировать ]Тестовый пример представляет собой логический путь через одно или несколько решений от начала до конца процесса. Противоречивые ситуации выводятся из матрицы тестовых примеров и исключаются. Подход MC/DC изолирует каждое условие, игнорируя все возможные комбинации подпутей и покрытие пути. [1] где
- T — количество тестовых случаев на одно решение и
- n количество условий.
Решение состоит из совокупности элементарных условий
Функция перехода определяется как
Учитывая переход
изолированный тестовый путь состоит из
График тестового примера
[ редактировать ]Граф тестовых примеров иллюстрирует все необходимые независимые пути (тестовые примеры) для покрытия всех изолированных условий. Условия представлены узлами, а значения условий (ситуации) — ребрами. Edge учитывает все программные ситуации. Каждая ситуация связана с одним предшествующим и последующим состоянием. Тестовые случаи могут перекрываться из-за изолированных условий.
Индуктивное доказательство ряда путей условий
[ редактировать ]Элементарный метод сравнительного тестирования можно использовать для определения количества путей условий путем индуктивного доказательства.
Есть возможные комбинации значений условий
Когда каждое условие изолировано, количество необходимых тестовых случаев за решение составляет:
есть ребра от родительских узлов и ребра к дочерним узлам из .
Каждое отдельное состояние соединяется хотя бы с одним путем от максимально возможного подключение к изолирующий .
Все предшествующие условия и соответствующие пути изолированы. Таким образом, при добавлении одного узла (условия) общее количество путей и требуемых тестовых случаев от начала до конца увеличивается на: КЭД
Этапы разработки тестового примера
[ редактировать ]- Определить решения
- Определить тестовые ситуации для каждой точки принятия решения ( модифицированное условие/покрытие решений )
- Создайте логическую матрицу тестовых примеров
- Создайте матрицу физического тестового примера
Пример
[ редактировать ]В этом примере показано применение ETC к системе бронирования отпусков. Система скидок предлагает отдых по сниженным ценам. Предлагаемые скидки для участников или для дорогого отдыха, для умеренного отпуска с отъездами в рабочие дни, и в противном случае. В примере показано создание логических и физических тестовых примеров для всех изолированных условий.
Псевдокод
if days > 15 or price > 1000 or member then return −0.2 else if (days > 8 and days ≤ 15 or price ≥ 500 and price ≤ 1000) and workday then return −0.1 else return 0.0
Факторы
- Количество дней:
- Цена (евро):
- Членская карта: нет; серебро; золото; платина
- Дата выезда: рабочий день; выходные; праздничный день
возможные комбинации (тестовые случаи).
Пример на Python :
if days > 15 or price > 1000 or member:
return -0.2
elif (days > 8 and days <= 15 or price >= 500 and price <= 1000) and workday:
return -0.1
else:
return 0.0
Шаг 1: Решения
[ редактировать ]Исход | |||||||
---|---|---|---|---|---|---|---|
Решение D1 | 1 | 0 | |||||
Условия | с1 | с2 | с3 | с1 | с2 | с3 | |
с1 | 1 | 0 | 0 | 0 | 0 | 0 | |
с2 | 0 | 1 | 0 | ||||
с3 | 0 | 0 | 1 |
Шаг 2: Матрица MC/DC
[ редактировать ]Исход | |||||||
---|---|---|---|---|---|---|---|
Решение D2 | 1 | 0 | |||||
Условия | с4 | с5 | с6 | с4 | с5 | с6 | |
с4 | 1 | 0 | 1 | 0 | 0 | 1 | |
с5 | 0 | 1 | 1 | ||||
с6 | 1 | 0 | 0 |
Выделенные диагонали в матрице MC/DC описывают изолированные условия: все повторяющиеся ситуации считаются доказанными и устраненными.
Шаг 3: Логическая матрица тестовых примеров
[ редактировать ]Ситуация | |||||||
---|---|---|---|---|---|---|---|
х | |||||||
х | х | х | х | ||||
х | |||||||
х | |||||||
х | |||||||
х | |||||||
х | |||||||
х |
Тестовые случаи формируются путем отслеживания путей принятия решений. Для каждого решения последующий и предыдущий подпути ищутся до тех пор, пока у каждого подключенного пути не будет начала и конец :
Шаг 4: Физическая матрица тестовых примеров
[ редактировать ]Фактор\Тестовый пример | |||||||
---|---|---|---|---|---|---|---|
дни | 16 | 14 | 8 | 8 | 8 | ||
цена | 1100 | 600 | |||||
отправление | на | ||||||
член | серебро | ||||||
Результат | |||||||
0 | 0 | ||||||
-10 | 1 | 1 | 1 | ||||
-20 | 1 | 1 | 1 |
Физические тестовые примеры создаются на основе логических тестовых примеров путем заполнения представлений фактических значений и соответствующих им результатов.
График тестового примера
[ редактировать ]В примере графа тестовых случаев все тестовые случаи и их изолированные условия отмечены цветами, а остальные пути передаются неявно.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с Ли Коупленд (2004). Руководство для практикующих специалистов по проектированию тестов программного обеспечения , глава 10. Издательство Artech House, Норвуд. ISBN 0140289712 .
- ^ «Все об элементарном сравнительном тесте | Testlearning» . www.testlearning.net . Проверено 2 сентября 2022 г.
- ^ Гленфорд Дж. Майерс (2004). Искусство тестирования программного обеспечения, второе издание , с. 40., Джон Уайли и сыновья, Нью-Джерси. ISBN 0-471-46912-2 .
- ^ Тим Крум (2006). TMap Далее, о тестировании, ориентированном на результат , стр. 668. Издательство UTN, Роттердам. АСИН B01K3PXI5U .