СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Тестирование ИС Практическая работа №10

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Тестирование ИС Практическая работа №10»

Практическое занятие № 10

Тема: «Метод комбинаторного покрытия условий»

Цель работы: применение методов тестирования логики программы, формализованного описания результатов тестирования и стандартов по составлению схем программ.

Краткие теоретические сведения

Метод комбинаторного покрытия условий

Недостатком метода решений/условий является то, что некоторые условия во всех тестированиях могут вообще не вычисляться. Например, для (xy)||(x0) компилятор языка C создаст такую программу, которая не станет вычислять (x0), если обнаружит, что (xy). Если программист хочет проверить все условия в решениях, он должен озаботиться подобными затруднениями. Для того, чтобы приготовить нудное множество тестов, нет нужды анализировать логическую структуру

решений. Если она не простая, да к тому же написана другим программистом, это может занять слишком много времени. Надо просто выписать все условия всех решений и создать тесты,

реализующие все возможные комбинации истинности условий в каждом решении.

Посмотрим теперь, какие условия и как будут вычисляться с помощью тестов п.4. При x=1, y=0

будут вычислены только:

(x y) ” = true , “(x2*y)” = false. При x = -3, y = -2 будут вычислены:

(x y) ” = false , “(x0)” = false, “(x2*y)” = true.

Таким образом вычисления “(x0)” с результатом true не будет ни разу. Эту неприятность можно устранить, если добавить еще один тест. Например, x = 1, y=2.

В данном случае больше тестов не нужно, но мы это видим, “заглянув” в логическую структуру высказывания (xy)||(x0). Если же этого не делать, то надо просто позаботиться о всех

комбинациях истинности для (xy) и для (x0). Иначе – заполнить таблицу


Тест

(xy)

(x0)

x=1, y=0

true

True

x = -3, y = -2

False

False

x=1, y=2

False

True


True

False

до конца, добавив, например, в пустую клетку тест x=0, y= -1.

Все выше сказанное создает впечатление, что если в модуле имеется n условий, то данный метод требует придумывания 2n тестов, что уже при n=10 совершенно не подъемно. Однако это не так. Реально 10 условий распределяются по решениям. Например так:

if(F1(A0,A1,A2)) …

if(F2(A2,A3,A4)) …

if(F3(A5,A6,A7,A8)) …

if(F4(A8,A9)) …

Видим, что условия разбиваются на два независимых класса:

{A0,A1,A2,A3,A4} и {A5,A6,A7,A8,A9}.

Теперь надо постараться так заполнить таблицы


A0

A1

A2

A3

A4











……







A5

A6

A7

A8

A9











……






значениями истинности, чтобы для каждого набора {A0,A1,A2},{A2,A3,A4},{A5,A6,A7,A8},{A8,A9} реализовались все возможности. Вот эти таблицы, где для краткости true=1, false=0.


A0

A1

A2

A3

A4

0

0

0

0

0

0

0

1

0

0

0

1

0

0

1

0

1

1

0

1

1

0

0

1

0

1

0

1

1

0

1

1

0

1

1

1

1

1

1

1

A5

A6

A7

A8

A9

0

0

0

0

1

0

0

0

1

0

0

0

1

0

1

0

0

1

1

0

0

1

0

0

1

0

1

0

1

0

0

1

1

0

1

0

1

1

1

0

1

0

0

0

1

1

0

0

1

0

1

0

1

0

1

1

0

1

1

0

1

1

0

0

1

1

1

0

1

0

1

1

1

0

1

1

1

1

1

0

Таким образом понадобится только 16 тестов.

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

Оборудование, материалы

Персональный компьютер с установленной ОС. Текстовый редактор.

Порядок выполнения задания
  1. Написать алгоритм решения задачи в виде схемы программы.

  2. Выписать условия, составить и заполнить для них таблицу истинности.

  3. Составить таблицу результатов тестирования (столбцы "Тест" и "Ожидаемый результат").

  4. Оформить отчет по лабораторной работе.

Задание

Составить программу нахождения вещественных корней квадратного уравнения ах2 + bх + с = 0.