Метод функциональных диаграмм
Метод функциональных диаграмм или диаграмм причинно-следственных связей помогает систематически выбирать высокорезультативные тесты. Кроме этого, метод функциональных диаграмм дает полезный побочный эффект, так как позволяет обнаруживать неполноту и неоднозначность исходных спецификаций.
Функциональная диаграмма – это формальный язык, на который транслируется спецификация, написанная на естественном языке.
Методика использования функциональных диаграмм:
1. Спецификация разбивается на “рабочие” участки, так как для больших спецификаций функциональные диаграммы становятся слишком громоздкими. Например, при тестировании компилятора в качестве рабочего участка можно рассматривать каждый отдельный оператор языка программирования.
2. В спецификации определяются причины и следствия. Причина – это отдельное входное условие или класс эквивалентных входных условий. Следствие – это выходное условие (результат выполнения программы). Например, если при выполнении программы обновляется содержимое некоторого файла, то изменение в нем является результатом выполнения программы, а подтверждающее сообщение – выходным условием.
51. Критерии тестирования стратегии "белого ящика".
Эта стратегия тестирования исходит из значения, прежде всего внутренней структуры программы. Исследуются, прежде всего, внутренние элементы программы и связи между ними.
Тестирование по стратегии "белого ящика" характеризуется степенью, в какой тесты покрывают логику программы (исходный текст её), все её различные пути.
Покрытие операторов.
Тестов должно быть столько, чтобы на них в совокупности выполнялся бы каждый оператор программы по крайней мере один раз.
2. Покрытие решений, условий и решений/условий.
Тесты должны быть выбираться таким образом, чтобы каждое решение (соответственно условие) на этих тестах принимало бы значение “истина” и “ложь” по крайней мере один раз.
решения и все условия должны принимать истина и ложь хотя бы один раз.
Покрытие путей
Этот критерий требует столько тестов, чтобы покрыть все пути в программе хотя бы один раз. Это очень сильный критерий, но в практике тестирования его обычно не применяют из-за большого числа различных путей в программе (особенно, если есть циклы).
На практике используют следующие 3 критерия покрытия путей:
3.1) критерий С1 (или минимальное покрытие). По этому критерию требуется столько тестов, чтобы покрыть все ветви программы хотя бы один раз (ветвь – дуга редуцированного УГП).
3.2) критерий С2 (или базовое линейно-независимое покрытие). По этому критерию требуется столько тестов, чтобы покрыть все линейно-независимые пути в программе хотя бы раз.
(Пути называются линейно-независимыми, если любой путь в программе можно получить их комбинацией.)
3.3) критерий С3 (или полное покрытие). Требуется покрыть все пути программы хотя бы раз, не учитывая количество повторений циклов, т.е. пути, которые отличаются только количеством прохождений по циклам, считаются одинаковыми.