Основные техники тест дизайна
Техники «белого ящика»
 Техники «черного ящика»
 Техники «белого ящика»
 Техники, основанные на опыте
тестировщика
 Основаны на анализе внутренней структуры
 Направлены непосредственно на код
 Легко поддаются измерению тестового
покрытия
А > 2
Yes
No
 Тестирование утверждений
 Тестирование решений
 Тестирование условий
Чаще всего используются при компонентном
тестировании
Однако могут использовать и на других
уровнях тестирования:
 интеграционное тестирование (иерархия)
 тестирование системы (меню, процессы, навигация
WEB-страницы)
Легко и точно определяется покрытие (охват)
выполненного теста!
 Тестирование утверждений
 Тестирование ветвлений (решений)
READ A
IF A > 5 THEN
IF A =21 THEN
PRINT “Key”
ENDIF
ENDIF
Тестирование утверждений- техника тест-
дизайна, основанная на создании тест-кейсов
для покрытия утверждений, использованных в
коде
Покрытие утверждений– соотношение
количества утверждений, покрытых тестом, к
общему количеству утверждений в коде
Для достижения 100% покрытия утверждений
необходимо выполнение минимум одного
сценария для каждого утверждения
Тестирование решений- техника тест-дизайна,
основанная на создании тест-кейсов для покрытия
решений (веток) кода
Покрытие решений– соотношение количества
решений, покрытых тестом, общему количеству
решений (веток) кода
Для достижения 100% покрытия решений
необходимо выполнение минимум одного сценария
для каждого решения (ветки) кода
100% покрытие решений гарантирует 100% покрытие
утверждений!
Определите минимально необходимое
количество тест-кейсов для обеспечения:
 100% покрытия при тестировании
утверждений;
 100% покрытия при тестировании решений
 Укажите значение переменных
Для удобства код можно переводить в схему
(см.слайд №43)
READ A
READ B
IF A < 0 THEN
PRINT “A negative”
ELSE
PRINT “A positive or zero”
ENDIF
IF B < 0 THEN
PRINT “B negative”
ELSE
PRINT “B positive or zero”
ENDIF
Для 100% покрытия утверждений и
решений достаточно 2 тест-кейсов
READ A
READ B
IF A > B THEN
A = A + 1
ELSE
B = B + 1
ENDIF
WHILE A > B
B = A * B
A = A + 1
ENDWHILE
Для 100% покрытия утверждений и
решений достаточно 2 тест-кейсов
READ A
READ B
WHILE B > A
PRINT “hello”
WHILE B > 10
B = B – 1
ENDWHILE
ENDWHILE
Для 100% покрытия утверждений и
решений достаточно 1 тест-кейса
READ A
READ B
IF B < A THEN
WHILE A < 2
A = A +2
PRINT “a”
ENDWHILE
ELSE
IF A = B THEN
B = 2B
ELSE
A = 2A
ENDIF
ENDIF
Для 100% покрытия утверждений и
решений достаточно 3 тест-кейсов
 Тестирование условий
READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
Тестирование условий – техника тест-
дизайна, основанная на создании тест-
кейсов для покрытия каждой отдельной
части «сложного» условия
Части условия (atomic or partial conditions)
связаны между собой логическими
операторами AND, OR, NOT
READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
A=6 (T), B=8 (F), A>3 OR B<5 (T)
A=2 (F), B=3 (T), A>3 OR B<5 (T)
Минимальное требование к покрытию условий -
тестирования сценариев, приводящих к обеим
возможным результатам TRUE / FALSE для
каждой части условия
READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
A=6 (T), B=3 (Т), A>3 OR B<5 (T)
A=6 (T), B=8 (F), A>3 OR B<5 (T)
A=2 (F), B=3 (T), A>3 OR B<5 (T)
A=2 (F), B=8 (F), A>3 OR B<5 (F)
Множественное тестирование условий
предполагает покрытие всех возможных
TRUE/FALSE комбинаций для частичных условий
READ A
READ B
IF A > 3 OR B < 5 THEN
PRINT “Key”
ENDIF
A=6 (T), B=3 (Т), A>3 OR B<5 (T)
A=6 (T), B=8 (F), A>3 OR B<5 (T)
A=2 (F), B=3 (T), A>3 OR B<5 (T)
A=2 (F), B=8 (F), A>3 OR B<5 (F)
При выборе сценария тестирования важно
определить тот, который является чувствительным к
ошибкам (позволяет их выявить). Сценарии, в
которых ошибки «маскируются», выполнять не
обязательно.
Определите сценарии тестирования условий,
обеспечивающие минимально необходимое
покрытие, множественное тестирование, а также
выберите сценарии, чувствительные к ошибкам.
READ A
READ B
IF A < 18 OR B > 55 THEN
PRINT “OK”
ENDIF
A=10, B=27: A<18 (T), B>55 (F), A<18 OR B>55 (T)
A=27, B=72: A<18 (F), B>55 (T), A<18 OR B>55 (T)
A=31, B=31: A<18 (F), B>55 (F), A<18 OR B>55 (F)
A=5, B=75: A<18 (T), B>55 (T), A<18 OR B>55 (T)
Определите сценарии тестирования условий,
обеспечивающие минимально необходимое
покрытие, множественное тестирование, а также
выберите сценарии, чувствительные к ошибкам.
READ A
IF A > 3 AND A < 5 THEN
PRINT “Key”
ENDIF
A=8: A>3 (T), A<5 (F), A>3 AND A<5 (F)
A=1: A>3 (F), A<5 (T), A>3 AND A<5 (F)
A=4: A>3 (T), A<5 (T), A>3 AND A<5 (T)
A=?: A>3 (F), A<5 (F), A>3 AND A<5 (F)
 Направленность тестирования
 Полный охват кода
 Управление потоком
 Отслеживание целостности данных
 Тестирование, определяемое внутренним
алгоритмом (сортировка, преобразование
матрицы)
Не позволяет обнаружить не разработанные
требования!
Via SlideShare
http://www.slideshare.net/nataliazhoglo
Via LinkedIn
http://www.linkedin.com/pub/natalia-
zhoglo/29/219/a99
Via e-mail:
natalia.zhoglo@gmail.com

White box techniques

  • 1.
    Основные техники тестдизайна Техники «белого ящика»
  • 2.
     Техники «черногоящика»  Техники «белого ящика»  Техники, основанные на опыте тестировщика
  • 3.
     Основаны наанализе внутренней структуры  Направлены непосредственно на код  Легко поддаются измерению тестового покрытия А > 2 Yes No
  • 4.
     Тестирование утверждений Тестирование решений  Тестирование условий
  • 5.
    Чаще всего используютсяпри компонентном тестировании Однако могут использовать и на других уровнях тестирования:  интеграционное тестирование (иерархия)  тестирование системы (меню, процессы, навигация WEB-страницы) Легко и точно определяется покрытие (охват) выполненного теста!
  • 6.
     Тестирование утверждений Тестирование ветвлений (решений) READ A IF A > 5 THEN IF A =21 THEN PRINT “Key” ENDIF ENDIF
  • 7.
    Тестирование утверждений- техникатест- дизайна, основанная на создании тест-кейсов для покрытия утверждений, использованных в коде Покрытие утверждений– соотношение количества утверждений, покрытых тестом, к общему количеству утверждений в коде Для достижения 100% покрытия утверждений необходимо выполнение минимум одного сценария для каждого утверждения
  • 8.
    Тестирование решений- техникатест-дизайна, основанная на создании тест-кейсов для покрытия решений (веток) кода Покрытие решений– соотношение количества решений, покрытых тестом, общему количеству решений (веток) кода Для достижения 100% покрытия решений необходимо выполнение минимум одного сценария для каждого решения (ветки) кода 100% покрытие решений гарантирует 100% покрытие утверждений!
  • 9.
    Определите минимально необходимое количествотест-кейсов для обеспечения:  100% покрытия при тестировании утверждений;  100% покрытия при тестировании решений  Укажите значение переменных Для удобства код можно переводить в схему (см.слайд №43)
  • 10.
    READ A READ B IFA < 0 THEN PRINT “A negative” ELSE PRINT “A positive or zero” ENDIF IF B < 0 THEN PRINT “B negative” ELSE PRINT “B positive or zero” ENDIF Для 100% покрытия утверждений и решений достаточно 2 тест-кейсов
  • 11.
    READ A READ B IFA > B THEN A = A + 1 ELSE B = B + 1 ENDIF WHILE A > B B = A * B A = A + 1 ENDWHILE Для 100% покрытия утверждений и решений достаточно 2 тест-кейсов
  • 12.
    READ A READ B WHILEB > A PRINT “hello” WHILE B > 10 B = B – 1 ENDWHILE ENDWHILE Для 100% покрытия утверждений и решений достаточно 1 тест-кейса
  • 13.
    READ A READ B IFB < A THEN WHILE A < 2 A = A +2 PRINT “a” ENDWHILE ELSE IF A = B THEN B = 2B ELSE A = 2A ENDIF ENDIF Для 100% покрытия утверждений и решений достаточно 3 тест-кейсов
  • 14.
     Тестирование условий READA READ B IF A > 3 OR B < 5 THEN PRINT “Key” ENDIF
  • 15.
    Тестирование условий –техника тест- дизайна, основанная на создании тест- кейсов для покрытия каждой отдельной части «сложного» условия Части условия (atomic or partial conditions) связаны между собой логическими операторами AND, OR, NOT
  • 16.
    READ A READ B IFA > 3 OR B < 5 THEN PRINT “Key” ENDIF A=6 (T), B=8 (F), A>3 OR B<5 (T) A=2 (F), B=3 (T), A>3 OR B<5 (T) Минимальное требование к покрытию условий - тестирования сценариев, приводящих к обеим возможным результатам TRUE / FALSE для каждой части условия
  • 17.
    READ A READ B IFA > 3 OR B < 5 THEN PRINT “Key” ENDIF A=6 (T), B=3 (Т), A>3 OR B<5 (T) A=6 (T), B=8 (F), A>3 OR B<5 (T) A=2 (F), B=3 (T), A>3 OR B<5 (T) A=2 (F), B=8 (F), A>3 OR B<5 (F) Множественное тестирование условий предполагает покрытие всех возможных TRUE/FALSE комбинаций для частичных условий
  • 18.
    READ A READ B IFA > 3 OR B < 5 THEN PRINT “Key” ENDIF A=6 (T), B=3 (Т), A>3 OR B<5 (T) A=6 (T), B=8 (F), A>3 OR B<5 (T) A=2 (F), B=3 (T), A>3 OR B<5 (T) A=2 (F), B=8 (F), A>3 OR B<5 (F) При выборе сценария тестирования важно определить тот, который является чувствительным к ошибкам (позволяет их выявить). Сценарии, в которых ошибки «маскируются», выполнять не обязательно.
  • 19.
    Определите сценарии тестированияусловий, обеспечивающие минимально необходимое покрытие, множественное тестирование, а также выберите сценарии, чувствительные к ошибкам. READ A READ B IF A < 18 OR B > 55 THEN PRINT “OK” ENDIF
  • 20.
    A=10, B=27: A<18(T), B>55 (F), A<18 OR B>55 (T) A=27, B=72: A<18 (F), B>55 (T), A<18 OR B>55 (T) A=31, B=31: A<18 (F), B>55 (F), A<18 OR B>55 (F) A=5, B=75: A<18 (T), B>55 (T), A<18 OR B>55 (T)
  • 21.
    Определите сценарии тестированияусловий, обеспечивающие минимально необходимое покрытие, множественное тестирование, а также выберите сценарии, чувствительные к ошибкам. READ A IF A > 3 AND A < 5 THEN PRINT “Key” ENDIF
  • 22.
    A=8: A>3 (T),A<5 (F), A>3 AND A<5 (F) A=1: A>3 (F), A<5 (T), A>3 AND A<5 (F) A=4: A>3 (T), A<5 (T), A>3 AND A<5 (T) A=?: A>3 (F), A<5 (F), A>3 AND A<5 (F)
  • 23.
     Направленность тестирования Полный охват кода  Управление потоком  Отслеживание целостности данных  Тестирование, определяемое внутренним алгоритмом (сортировка, преобразование матрицы) Не позволяет обнаружить не разработанные требования!
  • 24.