Приключения белого ящика в стране покрытий
DESCRIPTION
Презентация Андрея Ладутько на SQA Days-16 14-15 ноября 2014, Санкт-Петербург, Россия www.sqadays.comTRANSCRIPT
![Page 1: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/1.jpg)
ПРИКЛЮЧЕНИЯ БЕЛОГО ЯЩИКА В СТРАНЕ ПОКРЫТИЙ
ПРИКЛЮЧЕНИЯ БЕЛОГО ЯЩИКА
В СТРАНЕ ПОКРЫТИЙ
![Page 2: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/2.jpg)
Andrey Ladutko Minsk, Belarus
Lead QA Engineer, QA SWAT in EPAM
6+ years experience
ISTQB Full Advanced Level
SQA Days-12,13,15 lectures : Minsk - Gamification in QA Kiev - Growth rules in QA Moscow – TM in QA
[email protected], [email protected] ladutko_andreysof_minskBlog:http://qastugama.blogspot.com
![Page 3: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/3.jpg)
CONFIDENTIAL
СОДЕРЖАНИЕ
-Белый VS черный ящик, достоинства и недостатки каждого-Покрытия метода БЯ-Выводы-Вопросы
3
![Page 4: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/4.jpg)
БЕЛЫЙ ЯЩИК И ЧЕРНЫЙ: ЧТО ЛУЧШЕ?
Разработка тестов методом черного ящика Процедура создания и/или выбора тестовых сценариев, основанная на анализе функциональной или нефункциональной спецификации компонента или системы без знания внутренней структуры.
Разработка тестов методом белого ящика Процедура разработки или выбора тестовых сценариев на основании анализа внутренней структуры компонента или системы.
ISTQB Глоссарий, версия 2.3.
![Page 5: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/5.jpg)
КАКОЕ ОТНОШЕНИЕ ЯЩИКОВ ПРАВИЛЬНОЕ?
![Page 6: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/6.jpg)
БАГИ, КОТОРЫЕ ЧЕРНЫЙ ЯЩИК НЕ НАХОДИТ
Michael Bolton “Critical Thinking” training (2014, SPb)
![Page 7: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/7.jpg)
БАГИ, КОТОРЫЕ ЧЕРНЫЙ ЯЩИК НЕ НАХОДИТ
http://lurkmore.to/Обсуждение:Индусский_код
![Page 9: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/9.jpg)
БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ
Мы написали идеальную программу, ВСЕ тесты на покрытие кода выдают PASS
![Page 10: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/10.jpg)
БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ
Мы написали идеальную программу, ВСЕ тесты на покрытие кода выдают PASS
НО
Программа не делает, то что было задумано в спецификации заказчиком
![Page 11: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/11.jpg)
БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ
![Page 12: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/12.jpg)
БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ
![Page 13: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/13.jpg)
БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ
Александр Ильин «Метрики покрытия. Прагматичный подход»
SQA Days-12 http://sqadays.com/ru/talk/7655
![Page 14: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/14.jpg)
Полное покрытие кода всевозможными техниками не гарантирует отсутствие багов….
НО
Любая техника дает нам полезные тесты, которые мы можем использовать для поиска наиболее (не)очевидных
МНОГО ЛИ МЫ ЗНАЕМ О БЕЛОМ ЯЩИКЕ?
![Page 15: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/15.jpg)
Эквивалентные классы
Граничные значения
Таблицы решений
• Елена Сташенко, SQA Days-14 http://sqadays.com/ru/talk/12503
Диаграммы переходов
• Наталья Руколь, ConfeT&QA http://www.youtube.com/watch?v=8H9HgjrwQHA
Метод попарных комбинаций
• Никита Постолакий, SQA Days-11 http://sqadays.com/ru/talk/9084
Тестирование пользовательских историй
…..
О ЧЕРНОМ ЯЩИКЕ МЫ ЗНАЕМ ОЧЕНЬ МНОГО
![Page 16: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/16.jpg)
А ЧТО МЫ ЗНАЕМ О БЕЛОМ ЯЩИКЕ?
Какие-то там покрытия, слышал или читал где-то
Надо лезть в код и смотреть, что происходит…
Посмотрю веб-страницу FireBug ‘ом, а вдруг что-то увижу
У нас собираются какие-то метрики тулой. А, вспомнил, Sonar
называется
У нас программисты пишут юнит-тесты, а я проверяю по
спеке
Я же не программист, зачем мне это?
Интересно, а что сегодня будет на обед?
Я все это хорошо знаю, пойду послушаю доклад в другой
секции
…..
![Page 17: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/17.jpg)
ПРОВЕРИМ УРОВЕНЬ
{A, B, C, D} = True | False
A & B - Логическое И, равно True, если все условия в нем
равны True
A | B – Логическое ИЛИ, равно True, если хотя бы одно
условие в нем равно True
![Page 18: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/18.jpg)
ПРОВЕРИМ УРОВЕНЬ
{A, B, C, D} = True | False
Сколько тестов необходимо, чтобы проверить выражение:
D = А & (B | C) ?1. 2
2. 3
3. 4
4. 8
![Page 19: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/19.jpg)
БЕЛЫЙ ЯЩИК. ПОКРЫТИЯ – ЭТО ПРОСТО!
ПП
ПУ
![Page 20: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/20.jpg)
3 ЧЕЛОВЕКА ИЗ ЗАЛА
![Page 21: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/21.jpg)
ЗАДАЧА:
Показываем тесты для выражения
A & B = C
{A,B,C} = True || FalseA, B – условия, С - результат
True – поднимаем рукуFalse – продолжаем сидеть
ЗАДАЧА
![Page 22: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/22.jpg)
ЗАДАЧА:
Проверим?
A & B = C
A = False B = TrueC = ?
ЗАДАЧА
![Page 23: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/23.jpg)
ЗАДАЧА:
Проверим?
A & B = C
A = False B = TrueC = False
ЗАДАЧА
![Page 24: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/24.jpg)
ПОКРЫТИЕ УСЛОВИЙ (ПУ) – CONDITION COVERAGE (CC)
ПП
ПУ
Определение:
Каждое условие принимает
значение True и False
![Page 25: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/25.jpg)
№ A B C = A & B
1 False True False
ВЕРНЕМСЯ К ЗАДАЧЕ
У нас есть один тест.
Какие еще тесты нужно добавить для ПУ?
• Каждое условие принимает значение True и False
![Page 26: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/26.jpg)
№ A B C = A & B
1 False True False
ВЕРНЕМСЯ К ЗАДАЧЕ
Что нужно и что проверено:A = True, A = False. Проверено: A = FalseB = True, B = False. Проверено: B = True
![Page 27: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/27.jpg)
№ A B C = A & B
1 False True False
2 True False ?
ВЕРНЕМСЯ К ЗАДАЧЕ
Добавляем второй тест:
A = True, B = False
C = ?
![Page 28: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/28.jpg)
№ A B C = A & B
1 False True False
2 True False False
ВЕРНЕМСЯ К ЗАДАЧЕ
Добавляем второй тест:
A = True, B = False
C = False
![Page 29: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/29.jpg)
№ A B C = A & B
1 False True False
2 True False False
ВЕРНЕМСЯ К ЗАДАЧЕ
Теперь все тесты?
Каждое условие принимает значение True и False
![Page 30: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/30.jpg)
№ A B C = A & B
1 False True False
2 True False False
ВЕРНЕМСЯ К ЗАДАЧЕ
Теперь все тесты?
Каждое условие принимает значение True и False
Итого 2 теста
![Page 31: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/31.jpg)
ПОКРЫТИЕ УСЛОВИЙ – ВЫВОДЫ
ПП
МПУР
ПУР
ПУ
Не исследуем результат (в обоих
тестах С = False)
Вывод:
В теории интересно, на практике –
не применимо
НО: нужно для понимания более
сложных покрытий
№ A B C = A & B
1 False True False
2 True False False
![Page 32: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/32.jpg)
ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЙ (ПУР) – CONDITION DECISION COVERAGE (CDC)
ПП
ПУ
Определение:
Каждое условие принимает
значение True и False
Результат принимает
значение True и False
![Page 33: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/33.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
У нас есть два теста на ПУ.
Что еще нужно проверить для ПУР?
№ A B C = A & B
1 False True False
2 True False False
![Page 34: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/34.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
У нас есть два теста на ПУ.
Что еще нужно проверить для ПУР?
• Результат принимает значение True и False
№ A B C = A & B
1 False True False
2 True False False
![Page 35: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/35.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Что нужно и что проверено:A = True, A = False. Проверено: A = False, A = TrueB = True, B = False. Проверено: B = True, B = False
Осталось: C = True, C = False. Проверено: С = False
DELETE TEXT AND ADD BACKGROUND PHOTO
№ A B C = A & B
1 False True False
2 True False False
![Page 36: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/36.jpg)
№ A B C = A & B
1 False True False
2 True False False
3 True True True
ВЕРНЕМСЯ К ЗАДАЧЕ
Теперь все тесты?
Каждое условие принимает значение True и
False
Результат принимает значение True и False
![Page 37: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/37.jpg)
№ A B C = A & B
1 False True False
2 True False False
3 True True True
ВЕРНЕМСЯ К ЗАДАЧЕ
Теперь все тесты?
Каждое условие принимает значение True и
False
Результат принимает значение True и False
Итого 3 теста
![Page 38: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/38.jpg)
№ A B C = A & B
1 False True False
2 True False False
3 True True True
ВЕРНЕМСЯ К ЗАДАЧЕ
Оптимально? Нет.
![Page 39: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/39.jpg)
№ A B C = A & B
1 False True False
2 True False False
3 True True True
ВЕРНЕМСЯ К ЗАДАЧЕ
Упростим:
1. A = False, B = False, C = False
2. A = True, B = True, C = True
![Page 40: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/40.jpg)
№ A B C = A & B
1 False False False
2 True True True
ВЕРНЕМСЯ К ЗАДАЧЕ
Теперь все тесты?
Каждое условие принимает значение True и
False
Результат принимает значение True и False
Оптимально? Да.
Итого 2 теста
![Page 41: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/41.jpg)
ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЙ – ВЫВОДЫ
Исследуем и условия, и
результат
Проверили только самое важное
Вывод:
Проверяет важное, но не
критичное. Нужны более сильные
покрытия
ПП
МПУР
ПУР
ПУ
№ A B C = A & B
1 False False False
2 True True True
![Page 42: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/42.jpg)
ЗОВЕМ 4-ГО ЧЕЛОВЕКА ИЗ ЗАЛА
![Page 43: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/43.jpg)
ЗАДАЧА:
Показываем тесты для выражения
A & (B | C) = D
{A,B,C,D} = True | FalseA, B, C – условия, D - результат
True – поднимаем рукуFalse – продолжаем сидеть
ЗАДАЧА
![Page 44: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/44.jpg)
ЗАДАЧА:
Проверим?
A & (B | C) = D
A = TrueB = FalseC = True
D = ?
ЗАДАЧА
![Page 45: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/45.jpg)
ЗАДАЧА:
Отлично!
A & (B | C) = D
A = TrueB = FalseC = TrueD = True
ЗАДАЧА
![Page 46: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/46.jpg)
МОДИФИЦИРОВАННОЕ ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЙ (МПУР) – MODIFIED CONDITION DECISION COVERAGE (MCDC)
ПП
ПУ
Определение:
Каждое условие И результат
принимают значения True и False
1. Минимум 1 тест, в котором результат
меняется, если атомарное условие Х = True
2. Минимум 1 тест, в котором результат
меняется, если атомарное условие Х = False
3. Каждое условие содержит тесты для п. 1 и 2
![Page 47: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/47.jpg)
МОДИФИЦИРОВАННОЕ ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЯ (МПУР) – MODIFIED CONDITION DECISION COVERAGE (MCDC)
ПП
ПУ
Подсказка 1.
Для N условий – N+1 тестов.
Вопрос:
Сколько тестов получится для выражения
D = A & (B | C) ?
![Page 48: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/48.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
У нас есть один тест. Рассмотрим его подробнее
№ A B С D = A & (B | C)
1 True False True True
![Page 49: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/49.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Возьмем условие А.
A = True, B = False, C = True. D = TrueМинимум 1 тест, в котором результат меняется, если атомарное условие А = True – DONE.
Нужно:Минимум 1 тест, в котором результат меняется, если атомарное условие А = False
№ A B С D = A & (B || C)
1 True False True True
![Page 50: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/50.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Поменяем условие А с True на False
A = False, B = False, C = True. D = FalseМинимум 1 тест, в котором результат меняется, если атомарное условие А = False – DONE
Определения 1 и 2 для условия А выполнены.
Что осталось?
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
![Page 51: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/51.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Аналогично для условий B и C.
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
![Page 52: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/52.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Выполним для С, снова посмотрим на 1 тест
A = True, B = False, C = True. D = TrueМинимум 1 тест, в котором результат меняется, если атомарное условие С = True – DONE.
Нужно:Минимум 1 тест, в котором результат меняется, если атомарное условие С = False
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
![Page 53: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/53.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Поменяем условие C с True на False
A = True, B = False, C = False. D = FalseМинимум 1 тест, в котором результат меняется, если атомарное условие C = False – DONE
Определения 1 и 2 для условия C выполнены.
Что осталось?
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
3 True False False False
![Page 54: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/54.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Выполним для B, посмотрим на 3 тест
A = True, B = False, C = False. D = FalseМинимум 1 тест, в котором результат меняется, если атомарное условие B = False – DONE.
Нужно:Минимум 1 тест, в котором результат меняется, если атомарное условие B = True
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
3 True False False False
![Page 55: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/55.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Поменяем условие B с False на True
A = True, B = True, C = False. D = TrueМинимум 1 тест, в котором результат меняется, если атомарное условие B = True – DONE
Определения 1 и 2 для условия B выполнены.
Все?
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
3 True False False False
4 True True False True
![Page 56: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/56.jpg)
ВЕРНЕМСЯ К ЗАДАЧЕ
Определения 1 и 2 выполнены для все условий:
A – тесты 1 и 2B – тесты 3 и 4С – тесты 1 и 3
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
3 True False False False
4 True True False True
![Page 57: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/57.jpg)
МОДИФИЦИРОВАННОЕ ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЙ – ВЫВОДЫ
ПП
МПУР
ПУР
ПУ
№ A B С D = A & (B | C)
1 True False True True
2 False False True False
3 True False False False
4 True True False True
Исследуем влияние КАЖДОГО
условия на результат
Возможны сложности с
составлением тестов для покрытия
Некоторые ЯП выдают заранее
известный результат, обработав
ЧАСТЬ выражения
![Page 58: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/58.jpg)
ПОЛНОЕ ПОКРЫТИЕ (ПП) – MULTIPLE CONDITION COVERAGE (MCC)
ПП
ПУ
Определение:
Проверяем ВСЕ возможные
комбинации условий
Вопрос:
Сколько тестов получится для выражения
D = A & (B | C) ?
![Page 59: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/59.jpg)
ПОЛНОЕ ПОКРЫТИЕ (ПП) – MULTIPLE CONDITION COVERAGE (MCC)
ПП
ПУ
Ответ: 8 тестов.
В общем случае для N условий:
два в степени N тестов
![Page 60: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/60.jpg)
ПОЛНОЕ ПОКРЫТИЕ (ПП) – MULTIPLE CONDITION COVERAGE (MCC)
№ A B С D = A & (B | C)
1 False False False False
2 False False True False
3 False True False False
4 False True True False
5 True False False False
6 True False True True
7 True True False True
8 True True True True
ПП
ПУ
![Page 61: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/61.jpg)
ПОЛНОЕ ПОКРЫТИЕ – ВЫВОДЫ
Проверяем ВСЕ возможные
случаи – для надежных систем,
рассчитанный на длительный срок
работы
Большое количество тестов для
ПП делает более применимым
предыдущее покрытие (МПУР).
Вместо 2^N -> N + 1 тестов
ПП
ПУ
![Page 62: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/62.jpg)
ПРИМЕР ИСПОЛЬЗОВАНИЯ ТЕХНИК.
Авиационный стандарт DO178-B,
5 типов ошибок:
• Катастрофичная (не работает критичный
функционал, необходимый для
безопасного полета или приземления)
• Опасная (негативное влияние на
безопасность или производительность)
• Важная (ошибка значительная, но менее
серьезная чем А или В)
• Не важная
• Не имеющая эффекта
ПП
ПУР
ПУ
![Page 63: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/63.jpg)
ПРИМЕР ИСПОЛЬЗОВАНИЯ ТЕХНИК.
Международный стандарт
программируемых электронных
устройств C-61508.
Автомобильная, станкостроительная,
железнодорожная, атомная
промышленность. Критичность
определяется по шкале от 1 до 4 (1 –
наименее критичная):
4 (наиболее критичная) – МПУР
крайне рекомендуется
ПП
ПУР
ПУ
![Page 64: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/64.jpg)
ВЫВОДЫ
![Page 65: Приключения белого ящика в стране покрытий](https://reader036.vdocuments.mx/reader036/viewer/2022062300/558b3d5fd8b42a29058b4671/html5/thumbnails/65.jpg)
ВОПРОСЫ?
[email protected], [email protected] ladutko_andreysof_minskBlog:http://qastugama.blogspot.com