Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения..pdf
Скачиваний:
118
Добавлен:
05.02.2023
Размер:
4.21 Mб
Скачать

58

 

 

Т1

Т2

Т3

Т4

Т5

Т6

Т7

Т8

 

 

 

 

 

 

 

 

 

 

Условия

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Усл2

Согласована

NO

NO

YES

YES

NO

NO

YES

YES

цель?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Усл3

Достигнута

NO

NO

NO

NO

YES

YES

YES

YES

цель?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Действие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выплата

NO

NO

NO

NO

NO

NO

YES

NO

 

бонуса?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Какие тесты могут быть удалены, т. к. не смогут происходить в реальной жизни?

1.Т1 и Т2.

2.Т3 и Т4.

3.Т5 и Т6.

4.Т7 и Т8.

Т5 и Т6 могут быть удалены, так как цель не может быть достигнута как несогласованная.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Каковы преимущества тестирования таблицы решений?

Каждая вертикальная колонка («правило») является схематическим изображением тест-кейса, где «условие» определяет параметры входных данных, а «действие» – ожидаемый результат.

С помощью таблицы решений можно установить одно и больше действий для каждого правила.

Специалист может объединять принципы тестирования таблицы решений и тестирования граничных значений.

Даже если система выполняет сложный комплекс действий, данный тип проверки все равно можно использовать.

3.На основе структуры (стратегия белого ящика)

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Метод белого ящика (white box testing, open box testing, clear box testing, glass box testing) – тестирование, при котором у тестировщика есть доступ к внутренней структуре и коду приложения;

59

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

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Техники белого ящика:

тестирование операторов (statement testing) – это тестирование, направленное на то, чтобы тестовой сценарий прошел через каждый оператор кода программы;

тестирование альтернатив (decision testing) – это тестирование, направленное на то, чтобы тестовой сценарий прошел через каждую альтер-

нативу кода программы.

Оценить качество тестирования на основе структуры можно посредством подсчета покрытия кода.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Покрытие (coverage) – уровень, выражаемый в процентах, на

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

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Покрытие альтернатив (decision coverage) – процент результатов альтернативы, который был проверен набором тестов. Стопроцентное покрытие решений подразумевает стопроцентное покрытие ветвей и операторов.

Покрытие операторов (statement coverage) – процентное отношение операторов, исполняемых набором тестов, к их общему количеству.

Покрытие альтернатив, связанное с тестированием ветвей, – это доля результатов альтернатив (например, вариантов «Истина» и «Ложь» для оператора «Если»), проверенных набором сценариев тестирования. В методе тестирования альтернатив тестовые сценарии создаются для выполнения определенных результатов альтернатив. Ветви исходят из точек альтернатив в программном коде и показывают передачу управления различным участкам кода. Покрытие альтернатив определяется отношением числа всех результатов альтернатив, покрытых разработанными или выполненными тестовыми сценариями, к числу всех возможных результатов альтернатив в тестируемом коде. Покрытие альтернатив более строгое, чем покрытие операторов: 100%-ное покрытие альтернатив обеспечивает 100%-ное покрытие операторов, но не наоборот.

60

· · · · · · · · · · · · · · · · · · · · · · · · · ·

 

Пример · · · · · · · · · · · · · · · · · · · · · · · · · ·

 

 

 

Граф потока управления представлен на рисунке 3.12. Следующие 3 теста были выполнены следующим образом:

1.Тест A покрывает путь: A, B, D, E, G.

2.Тест B покрывает путь: A, B, D, E, F, G.

3.Тест C покрывает путь: A, C, F, C, F, C, F, G.

А

B

 

C

 

 

 

D

E F

G

Рис. 3.12 – Граф потока управления

На диаграмме есть 4 условия: A, D, E, F. Тест A покрывает А B , D E и E G . Тест B покрывает А B , D E , E F и F G . Тест C покрывает A C , F C и F G . Поэтому условие A покрыто ( A B и A C ), условие E покрыто ( E G и E F ), условие F покрыто ( F C и F G ). Условие D не покрыто, покрыто только D E , а D F не покрыто. Как видим, условие D не было протестировано полностью.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Для подсчета покрытия кода существуют различные программные средства, многие интегрированные системы имеют встроенные анализаторы покрытия кода тестами, например:

1)Java:

Jcov;

EclEmma – Java Code Coverage for Eclipse;