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

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

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

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

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

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

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

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

Итоги урока

Интеллектуальные информационные системы

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

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

Тестирование программ методами “белого ящика

Просмотр содержимого документа
«Интеллектуальные информационные системы»


«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)




Институт инженерных технологий и естественных наук




Кафедра прикладной информатики и информационных технологий






Отчет по лабораторной работе №2

« Тестирование программ методами “белого ящика“»






студентки очного отделения

3 курса 07001504 группы

Марко С. Тангуила


Проверил:

старший преподаватель

Пусная Ольга Петровна












БЕЛГОРОД, 2018

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

Ход работы

  1. Программы, реализующие заданные алгоритмы обработки данных.

Метод покрытия операторов

#include "stdafx.h"

#include

using namespace std;

int main()

{

double a, b, x;

cout "A = "; cin a;

cout "B = "; cin b;

cout "X = "; cin x;


if ((a 1) && (b == 0))


{

x = x / a;

cout "X = " x endl;

if ((a == 2) || (x 1))

{

x = x + 1;

cout "X = " x endl;


}

}


else

if ((a == 2) || (x 1))

{

x = x + 1;

cout "X = " x endl;


}


else

{

cout "X = " x endl;

}


system("pause");

return 0;

}

Рисунок 1 – Тест 1. Метод покрытия операторов









Метод покрытия решений (покрытия переходов)

#include "stdafx.h"

#include

using namespace std;

int main()

{

double a, b, x;

cout "A = "; cin a;

cout "B = "; cin b;

cout "X = "; cin x;


if ((a 1) || (b == 0))


{

x = x / a;

cout "X = " x endl;

if ((a == 2) || (x

{

x = x + 1;

cout "X = " x endl;


}

}


else


if ((a == 2) || (x

{

x = x + 1;

cout "X = " x endl;


}


else

{

cout "X = " x endl;

}


system("pause");

return 0;

}


Рисунок 2 – Тест 1. Метод покрытия решений

Рисунок 3 – Тест 2. Метод покрытия решений






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

#include "stdafx.h"

#include

using namespace std;

int main()

{

double a, b, x;

cout "A = "; cin a;

cout "B = "; cin b;

cout "X = "; cin x;


if (a 1)

{

if (b == 0)

{

x = x / a;

{

cout "X = " x endl;

}

if (a == 2)

x = x + 1;

{

cout "X = " x endl;

}

}

else if (a == 2)

{

x = x + 1;

{

cout "X = " x endl;

}

}

else if (a == 2)

{

x = x + 1;

{

cout "X = " x endl;

}

}

else if (x 1)

{


x = x + 1;

{

cout "X = " x endl;

}

}

else if (x 1)

{

cout "X = " x endl;

}


}

else

{

if (a == 2)

{

x = x + 1;

{

cout "X = " x endl;

}

}

else if (x 1)

{

x = x + 1;

{

cout "X = " x endl;

}

}

}


system("pause");

return 0;

}

Рисунок 4 – Тест 1. Метод комбинаторного покрытия условий

Рисунок 5 – Тест 2. Метод комбинаторного покрытия условий

Рисунок 6 – Тест 3. Метод комбинаторного покрытия условий

Рисунок 7 – Тест 4. Метод комбинаторного покрытия условий

  1. Индивидуальное задание.

Найти значение x, если x=x/a+b, при a0 и b!=1; если x=x*b, при b=1 и x1.

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

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

#include "stdafx.h"

#include

using namespace std;

int main()

{

double a, b, x;

cout "A = "; cin a;

cout "B = "; cin b;

cout "X = "; cin x;

if (a 0)

{

if (b == 1)

{

x = x/a+b;

{

cout "X = " x endl;

}

if (b == 1)

x = x*b;

{

cout "X = " x endl;

}

}

else if (b == 1)

{

x = x*b;

{

cout "X = " x endl;

}

}

else if (b == 1)

{

x = x*b;

{

cout "X = " x endl;

}

}

else if (x 1)

{


x = x*b;

{

cout "X = " x endl;

}

}

else if (x 1)

{

cout "X = " x endl;

}

}

else

{

if (b == 1)

{

x = x*b;

{

cout "X = " x endl;

}

}

else if (x 1)

{

x = x*b;

{

cout "X = " x endl;

}

}

}

system("pause");

return 0;

}

Таблица 1 - Результаты тестирования


Тест


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


Ожидаемый результат

Результат тестирования

A=1, B=0, X=2

X=0

успешно

A=0, B=1, X=5

X=5

неуспешно

A=2 B=2, X=3

X=6

успешно

A=2, B=3, X=20

X=60

успешно