Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемЯрослав Осьминкин
1 Методы тестирования 6 августа 2011 года
2 Пример для тестирования Программа читает три числа с экранной формы. Эти числа соответствуют длинам сторон треугольника. После этого программа отображает сообщение, которое сообщает о том, был ли треугольник неравносторонний, равнобедренный или равносторонний. Необходимо составить набор тестов, проверяющий правильность работы это программы.
3 Критерии оценки Допустимый неравносторонний (2,5,10 – но не 1,2,3!) Допустимый равносторонний Допустимый равнобедренный (не 2,2,4!) Три варианта равнобедренного (перебор всех пар) Одна сторона равна 0 (перебор всех сторон) Одна сторона меньше 0 (перебор всех сторон) Сумма двух сторон равна третьей (перебор всех пар) Все стороны равны 0 Стороны нецелые числа Указаны не все стороны (например, только две) Указаны ли для всех тестов ожидаемые результаты?
4 Подходы к тестированию Black box Equivalence partitioning Boundary-value analysis Cause-effect graphing Error guessing White box Statement coverage Decision coverage Condition coverage Decision-condition coverage Multiple-condition coverage
5 Equivalence partitioning Входные значения (стороны ) Valid partition Все стороны равны и больше 0 Invalid partition Первая сторона меньше 0 Partition – набор входных значений, выполнение или невыполнение теста для одного из которых означает аналогичное выполнение или невыполнение теста для всех остальных значений из этого набора. … 2,2,2 -3,2,2 Для каждого partition пишется один тест.
6 Boundary-value analysis Тесты пишутся таким образом, чтобы покрыть каждую границу классов входных и выходных значений сверху и снизу. Входные значенияВыходные значения Все стороны больше 0 и сумма каждой из двух больше третьей , 0.1, , 0,1, , -0,1, , 0,1, , 1, 2.1 1, 1, 1.9 Равностор онний. Равнобедр енный.... 2, 2, 2 2, 2, 2.1 2, 2, 1 2, 2.1, 1
7 Error guessing Проводится мысленное проектирование тестируемого кода, после чего пишутся тесты, проверяющие набор типичных ошибок, которые могли быть допущены. Error guessing s, 1, 2 – проверка, не забыл ли программист, что в поля могут быть переданы не только числа
8 Statement coverage if (a > 1 && b == 0) x = x / a; if (a == 2 || x > 1) x = x + 1; Выполнение тестов должно приводить к выполнению каждого оператора. a = 2, b = 0, x = 3 – выполняются все операторы
9 Decision coverage Выполнение тестов должно приводить к тому, что условное выражение каждого оператора if примет хотя бы раз значение true и false. if (a > 1 && b == 0) – первое условие x = x / a; if (a == 2 || x > 1) – второе условие x = x + 1; a = 3, b = 0, x = 3 – первое условие = true, второе = false a = 2, b = 1, x = 1 – первое условие = false, второе = true
10 Condition coverage Выполнение тестов должно приводить к тому, что каждое условие в условном выражении каждого оператора if примет хотя бы раз значение true и false. if ((1) a > 1 && (2) b == 0) x = x / a; if ((3) a == 2 || (4) x > 1) x = x + 1; a = 2, b = 0, x = 4 – (1) = true, (2) = true, (3) = true, (4) = true a = 1, b = 1, x = 1 – (1) = false, (2) = false, (3) = false, (4) = false
11 Decision-condition coverage Удовлетворение требований condition coverage не всегда приводит к удовлетворению decision coverage (как в предыдущем примере). if ((1) a > 1 && (2) b == 0) – первое условие x = x / a; if ((3) a == 2 || (4) x > 1) – второе условие x = x + 1; a = 1, b = 0, x = 3 – (1) = false, (2) = true, (3) = false, (4) = true первое условие = false, второе = true a = 2, b = 1, x = 1 – (1) = true, (2) = false, (3) = true, (4) = false первое условие = false, второе = false Decision-condition coverage – требует условие как Decision coverage, так и Condition coverage.
12 Multiple-condition coverage if (a > 1 && b == 0) x = x / a; if (a == 2 || x > 1) x = x + 1; a > 1b = 0 x = x / a (1) Да a > 2 x > 1 (2) Да (4) Нет(3) Нет (5) Нет x = x + 1 (6) Да (7) Да (8) Нет a = 2, b = 0, x = 4 – (1) + (2) + (5) + (7) a = 1, b = 1, x = 1 – (3) + (5) + (8) Выполнение тестов должно приводить к тому, что каждое примитивное условие в коде примет хотя бы раз значение true и false. Тесты, удовлетворяющие Decision-condition coverage не проходят по условию (4) и (6)
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.