Top Banner
ПРИКЛЮЧЕНИЯ БЕЛОГО ЯЩИКА В СТРАНЕ ПОКРЫТИЙ ПРИКЛЮЧЕНИЯ БЕЛОГО ЯЩИКА В СТРАНЕ ПОКРЫТИЙ
65

SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

Jul 15, 2015

Download

Engineering

Andrey Ladutko
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПРИКЛЮЧЕНИЯ БЕЛОГО ЯЩИКА В СТРАНЕ

ПОКРЫТИЙПРИКЛЮЧЕНИЯ БЕЛОГО ЯЩИКА

В СТРАНЕ ПОКРЫТИЙ

Page 2: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

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_andrey

sof_minsk

Blog:

http://qastugama.blogspot.com

Page 3: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

CONFIDENTIAL

СОДЕРЖАНИЕ

- Белый VS черный ящик, достоинства и недостатки

каждого

- Покрытия метода БЯ

- Выводы

- Вопросы

3

Page 4: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БЕЛЫЙ ЯЩИК И ЧЕРНЫЙ: ЧТО ЛУЧШЕ?

Разработка тестов методом черного ящика Процедура создания и/или выбора тестовых сценариев, основанная на

анализе функциональной или нефункциональной спецификации

компонента или системы без знания внутренней структуры.

Разработка тестов методом белого ящика Процедура разработки или выбора тестовых сценариев на основании

анализа внутренней структуры компонента или системы.

ISTQB Глоссарий, версия 2.3.

Page 5: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

КАКОЕ ОТНОШЕНИЕ

ЯЩИКОВ ПРАВИЛЬНОЕ?

Page 6: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ ЧЕРНЫЙ ЯЩИК НЕ НАХОДИТ

Michael Bolton “Critical Thinking” training (2014, SPb)

Page 7: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ ЧЕРНЫЙ ЯЩИК НЕ НАХОДИТ

http://lurkmore.to/Обсуждение:Индусский_код

Page 8: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ ЧЕРНЫЙ ЯЩИК НЕ НАХОДИТ

http://www.xkcd.com/221/

Page 9: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ

Мы написали идеальную программу, ВСЕ

тесты на покрытие кода выдают PASS

Page 10: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ

Мы написали идеальную программу, ВСЕ

тесты на покрытие кода выдают PASS

НО

Программа не делает, то что было

задумано в спецификации заказчиком

Page 11: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ

Page 12: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ

Page 13: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БАГИ, КОТОРЫЕ БЕЛЫЙ ЯЩИК НЕ НАХОДИТ

Александр Ильин «Метрики покрытия. Прагматичный подход»

SQA Days-12 http://sqadays.com/ru/talk/7655

Page 14: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

Полное покрытие кода всевозможными техниками не

гарантирует отсутствие багов….

НО

Любая техника дает нам полезные тесты, которые мы

можем использовать для поиска наиболее

(не)очевидных

МНОГО ЛИ МЫ ЗНАЕМ О БЕЛОМ ЯЩИКЕ?

Page 15: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

Эквивалентные классы

Граничные значения

Таблицы решений

• Елена Сташенко, 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

А ЧТО МЫ ЗНАЕМ О БЕЛОМ ЯЩИКЕ?

Какие-то там покрытия, слышал или читал где-то

Надо лезть в код и смотреть, что происходит…

Посмотрю веб-страницу FireBug ‘ом, а вдруг что-то увижу

У нас собираются какие-то метрики тулой. А, вспомнил, Sonar

называется

У нас программисты пишут юнит-тесты, а я проверяю по спеке

Я же не программист, зачем мне это?

Интересно, а что сегодня будет на обед?

Я все это хорошо знаю, пойду послушаю доклад в другой

секции

…..

Page 17: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПРОВЕРИМ УРОВЕНЬ

{A, B, C, D} = True | False

A & B - Логическое И, равно True, если все условия в нем

равны True

A | B – Логическое ИЛИ, равно True, если хотя бы одно

условие в нем равно True

Page 18: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПРОВЕРИМ УРОВЕНЬ

{A, B, C, D} = True | False

Сколько тестов необходимо, чтобы проверить выражение:

D = А & (B | C) ?

1. 2

2. 3

3. 4

4. 8

Page 19: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

БЕЛЫЙ ЯЩИК. ПОКРЫТИЯ – ЭТО ПРОСТО!

ПП

МПУР

ПУР

ПУ

Page 20: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

3 ЧЕЛОВЕКА ИЗ ЗАЛА

Page 21: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗАДАЧА:

Показываем тесты для выражения

A & B = C

{A,B,C} = True || False

A, B – условия, С - результат

True – поднимаем руку

False – продолжаем сидеть

ЗАДАЧА

Page 22: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗАДАЧА:

Проверим?

A & B = C

A = False B = True

C = ?

ЗАДАЧА

Page 23: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗАДАЧА:

Проверим?

A & B = C

A = False B = True

C = False

ЗАДАЧА

Page 24: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОКРЫТИЕ УСЛОВИЙ (ПУ) –

CONDITION COVERAGE (CC)

ПП

МПУР

ПУР

ПУ

Определение:

Каждое условие принимает

значение True и False

Page 25: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

ВЕРНЕМСЯ К ЗАДАЧЕ

У нас есть один тест.

Какие еще тесты нужно добавить для ПУ?

• Каждое условие принимает значение True и

False

Page 26: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

ВЕРНЕМСЯ К ЗАДАЧЕ

Что нужно и что проверено:

A = True, A = False. Проверено: A = False

B = True, B = False. Проверено: B = True

Page 27: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False ?

ВЕРНЕМСЯ К ЗАДАЧЕ

Добавляем второй тест:

A = True, B = False

C = ?

Page 28: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False False

ВЕРНЕМСЯ К ЗАДАЧЕ

Добавляем второй тест:

A = True, B = False

C = False

Page 29: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False False

ВЕРНЕМСЯ К ЗАДАЧЕ

Теперь все тесты?

Каждое условие принимает значение

True и False

Page 30: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False False

ВЕРНЕМСЯ К ЗАДАЧЕ

Теперь все тесты?

Каждое условие принимает значение

True и False

Итого 2 теста

Page 31: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОКРЫТИЕ УСЛОВИЙ – ВЫВОДЫ

ПП

МПУР

ПУР

ПУ

Не исследуем результат (в обоих

тестах С = False)

Вывод:

В теории интересно, на практике –

не применимо

НО: нужно для понимания более

сложных покрытий

№ A B C = A & B

1 False True False

2 True False False

Page 32: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЙ (ПУР) –

CONDITION DECISION COVERAGE (CDC)

ПП

МПУР

ПУР

ПУ

Определение:

Каждое условие принимает

значение True и False

Результат принимает

значение True и False

Page 33: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

У нас есть два теста на ПУ.

Что еще нужно проверить для ПУР?

№ A B C = A & B

1 False True False

2 True False False

Page 34: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

У нас есть два теста на ПУ.

Что еще нужно проверить для ПУР?

• Результат принимает значение True и False

№ A B C = A & B

1 False True False

2 True False False

Page 35: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Что нужно и что проверено:

A = True, A = False. Проверено: A = False, A = True

B = True, B = False. Проверено: B = True, B = False

Осталось:

C = True, C = False. Проверено: С = False

№ A B C = A & B

1 False True False

2 True False False

Page 36: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False False

3 True True True

ВЕРНЕМСЯ К ЗАДАЧЕ

Теперь все тесты?

Каждое условие принимает значение True и False

Результат принимает значение True и False

Page 37: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False False

3 True True True

ВЕРНЕМСЯ К ЗАДАЧЕ

Теперь все тесты?

Каждое условие принимает значение True и False

Результат принимает значение True и False

Итого 3 теста

Page 38: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False True False

2 True False False

3 True True True

ВЕРНЕМСЯ К ЗАДАЧЕ

Оптимально? Нет.

Page 39: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

№ A B C = A & B

1 False False False

2 True True True

ВЕРНЕМСЯ К ЗАДАЧЕ

Теперь все тесты?

Каждое условие принимает значение True и False

Результат принимает значение True и False

Оптимально? Да.

Итого 2 теста

Page 41: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОКРЫТИЕ УСЛОВИЙ И РЕШЕНИЙ – ВЫВОДЫ

Исследуем и условия, и

результат

Проверили только самое важное

Вывод:

Проверяет важное, но не

критичное. Нужны более сильные

покрытия

ПП

МПУР

ПУР

ПУ

№ A B C = A & B

1 False False False

2 True True True

Page 42: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗОВЕМ 4-ГО ЧЕЛОВЕКА ИЗ ЗАЛА

Page 43: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗАДАЧА:

Показываем тесты для выражения

A & (B | C) = D

{A,B,C,D} = True | False

A, B, C – условия, D - результат

True – поднимаем руку

False – продолжаем сидеть

ЗАДАЧА

Page 44: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗАДАЧА:

Проверим?

A & (B | C) = D

A = True

B = False

C = True

D = ?

ЗАДАЧА

Page 45: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ЗАДАЧА:

Отлично!

A & (B | C) = D

A = True

B = False

C = True

D = True

ЗАДАЧА

Page 46: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

МОДИФИЦИРОВАННОЕ ПОКРЫТИЕ УСЛОВИЙ

И РЕШЕНИЙ (МПУР) – MODIFIED CONDITION

DECISION COVERAGE (MCDC)

ПП

МПУР

ПУР

ПУ

Определение:

Каждое условие И результат

принимают значения True и False

1. Минимум 1 тест, в котором результат

меняется, если атомарное условие Х = True

2. Минимум 1 тест, в котором результат

меняется, если атомарное условие Х = False

3. Каждое условие содержит тесты для п. 1 и 2

Page 47: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

МОДИФИЦИРОВАННОЕ ПОКРЫТИЕ УСЛОВИЙ

И РЕШЕНИЯ (МПУР) – MODIFIED CONDITION

DECISION COVERAGE (MCDC)

ПП

МПУР

ПУР

ПУ

Подсказка 1.

Для N условий – N+1 тестов.

Вопрос:

Сколько тестов получится для выражения

D = A & (B | C) ?

Page 48: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

У нас есть один тест. Рассмотрим его подробнее

№ A B С D = A & (B | C)

1 True False True True

Page 49: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Возьмем условие А.

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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Поменяем условие А с 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Аналогично для условий B и C.

№ A B С D = A & (B | C)

1 True False True True

2 False False True False

Page 52: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Выполним для С, снова посмотрим на 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Поменяем условие 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Выполним для 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Поменяем условие 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЕРНЕМСЯ К ЗАДАЧЕ

Определения 1 и 2 выполнены для все условий:

A – тесты 1 и 2

B – тесты 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

МОДИФИЦИРОВАННОЕ ПОКРЫТИЕ УСЛОВИЙ И

РЕШЕНИЙ – ВЫВОДЫ

ПП

МПУР

ПУР

ПУ

№ 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОЛНОЕ ПОКРЫТИЕ (ПП) – MULTIPLE

CONDITION COVERAGE (MCC)

ПП

МПУР

ПУР

ПУ

Определение:

Проверяем ВСЕ возможные

комбинации условий

Вопрос:

Сколько тестов получится для выражения

D = A & (B | C) ?

Page 59: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОЛНОЕ ПОКРЫТИЕ (ПП) – MULTIPLE

CONDITION COVERAGE (MCC)

ПП

МПУР

ПУР

ПУ

Ответ: 8 тестов.

В общем случае для N условий:

два в степени N тестов

Page 60: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОЛНОЕ ПОКРЫТИЕ (ПП) – 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: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПОЛНОЕ ПОКРЫТИЕ – ВЫВОДЫ

Проверяем ВСЕ возможные

случаи – для надежных систем,

рассчитанный на длительный срок

работы

Большое количество тестов для

ПП делает более применимым

предыдущее покрытие (МПУР).

Вместо 2^N -> N + 1 тестов

ПП

МПУР

ПУР

ПУ

Page 62: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПРИМЕР ИСПОЛЬЗОВАНИЯ ТЕХНИК.

Авиационный стандарт DO178-B,

5 типов ошибок:

• Катастрофичная (не работает критичный

функционал, необходимый для

безопасного полета или приземления)

• Опасная (негативное влияние на

безопасность или производительность)

• Важная (ошибка значительная, но менее

серьезная чем А или В)

• Не важная

• Не имеющая эффекта

ПП

МПУР

ПУР

ПУ

Page 63: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ПРИМЕР ИСПОЛЬЗОВАНИЯ ТЕХНИК.

Международный стандарт

программируемых электронных

устройств C-61508.

Автомобильная, станкостроительная,

железнодорожная, атомная

промышленность. Критичность

определяется по шкале от 1 до 4 (1 –

наименее критичная):

4 (наиболее критичная) – МПУР

крайне рекомендуется

ПП

МПУР

ПУР

ПУ

Page 64: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВЫВОДЫ

Page 65: SQA Days-16. White box adventures in the land of coverage (Приключения белого ящика в стране покрытий)

ВОПРОСЫ?

[email protected], [email protected]

ladutko_andrey

sof_minsk

Blog:

http://qastugama.blogspot.com