Тестирование программного обеспечения

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    136,18 Кб
  • Опубликовано:
    2016-05-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Тестирование программного обеспечения

Федеральное государственное образовательное бюджетное учреждение

высшего профессионального образования

«Финансовый университет при Правительстве Российской Федерации»

(Финуниверситет)

Брянский филиал Финуниверситета

Кафедра «Математика и информатика»






КОНТРОЛЬНАЯ РАБОТА

Дисциплина

«Программная инженерия»

Вариант 2


Выполнил(а)Болдырева М.С.

Студент(ка)3 курса

Направление Бизнес-информатика

Преподаватель Новиков С.П.



Брянск 2016

ВЕДЕНИЕ

Тестирование программного обеспечения включает в себя целый комплекс действий, аналогичных последовательности процессов разработки программного обеспечения.

В него входят:

• постановка задачи для теста;

• проектирование теста;

• написание тестов;

• тестирование тестов;

• выполнение тестов;

• изучение результатов тестирования.

Наиболее важным является проектирование тестов. Существуют разные подходы к проектированию тестов.

Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей, программа при этом рассматривается как «черный ящик». Смысл теста заключается в том, чтобы проверить, соответствует ли программа внешним спецификациям. При этом содержание модуля не имеет значения. Такой подход получил название - стратегия «черного ящика».

Второй подход - стратегия «белого ящика», основан на анализе логики программы. При таком подходе тестирование заключается в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается.

Ни один из этих подходов не является оптимальным. Реализация тестирования методом «черного ящика» сводится к проверке всех возможных комбинаций входных данных. Невозможно протестировать программу, подавая на вход бесконечное множество значений, поэтому ограничиваются определенным набором данных. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подготовки, выполнения и проверки результатов теста.

Тестирование методом «белого ящика» также не дает 100%-ной гарантии того, что модуль не содержит ошибок. Даже если предположить, что выполнены тесты для всех ветвей алгоритма, нельзя с полной уверенностью утверждать, что 4 программа соответствует ее спецификациям. Например, если требовалось написать программу для вычисления кубического корня, а программа фактически вычисляет корень квадратный, то реализация будет совершенно неправильной, даже если проверить все пути. Вторая проблема - отсутствующие пути. Если программа реализует спецификации не полностью (например, отсутствует такая специализированная функция, как проверка на отрицательное значение входных данных программы вычисления квадратного корня), никакое тестирование существующих путей не выявит такой ошибки. И наконец, проблема зависимости результатов тестирования от входных данных. Одни данные будут давать правильные результаты, а другие нет.

Если концентрировать внимание только на тестировании путей, нет гарантии, что эта ошибка будет выявлена.

Таким образом, полное тестирование программы невозможно, т. е. никакое тестирование не гарантирует полное отсутствие ошибок в программе. Поэтому необходимо проектировать тесты таким образом, чтобы увеличить вероятность обнаружения ошибки в программе.

ПОСТАНОВКА ЗАДАЧИ

U1

U2

D1

D2

*U1

*U2

(A>1) and (B=0)

(A=2) or (Y>1)

X=X/A

X=X+1

A>1 or B=2

A=2 or Y<3


а)                                                               б)

Рис.1 Пример алгоритма программы:

а) без ошибок; б) с ошибками

тест алгоритм покрытие решение

Решение:

Покрытие решений может быть выполнено двумя тестами, покрывающими пути. При этом существуют два варианта таких путей:

Первый вариант - (асе, abd);

Второй вариант - (acd, abe).

Рассмотрим тесты, применительно ко второму варианту. Для этого выберем следующие два теста, соответствующие этому варианту:

. Тест Т1(А=3, В=0, Y=3) - для пути P1= (acd)

. Тест Т2(А =2, В=1, Y=1) - для пути P2=(abe).

Проведем исследования тестами исходного алгоритма (рис.1a) и алгоритма с ошибками (рис. 1b). Исследование предполагает построение протокола теста и диаграммы состояний теста для исходного алгоритма и для алгоритма с ошибками в операторах проверки условий, например, с операторами вида: U1=(A>1) or (B=0), U2=(A=2) or (Y<1).

Для проведения исследования введем в рассмотрение следующие формальные обозначения для приведенных схем алгоритмов:

. Т1(А=3, В=0, Y=3) - тест 1;

. Т2(А=2, В=1, Y= 1) - тест 2;

. U1=(A>1) and (B=0) - оператор проверки условия, принимает значения 1, если условие выполняется и значение 0, если условие не выполняется;

. U2=(A=2) or (Y>1) - оператор проверки условия, принимает значения 1, если условие выполняется и значение 0, если условие не выполняется;

. D1=(X=X/A) - оператор действия, принимает значение X;

. D2=(X=X+1) - оператор действия, принимает значение X;

. R1(…), R2(…) - выходные результаты после тестирования.

Исследование тестом Т1(А=3, В=0, Y=3) ) Алгоритм без ошибок

Протокол теста Т1(А = 3; В=0; Y=3):

. U1=(3>1)and(0=0) = 1 and 1 = 1

. D1=(X=3/3 = 1) 8

. U2=(3=2)or(1>1) = 0 or 0 =0

. R1= (А = 3, В=0, Y=1)

Диаграмма состояний теста: (1)>D1(1)>U2(0): R1(A=3;B=0;Y=1)) Алгоритм с ошибками

Протокол теста Т1(А = 3; В=0; Y=3):

. U1=(3>1)or(0=0) = 1 or 1 = 1

. D1=(X=3/3 = 1)

. U2=(3=2)or(1D1(1)>U2(0)

Диаграмма состояний теста: (1)>D1(1)>U2(0)

Исследование тестом Т2(А=2, В=1, Y=1)

Алгоритм без ошибок

Протокол теста Т2(А=2, В=1, Y=1):

. U1=(2>1)and(1=0) = 1 and 0 = 0

. U2=(2=2)or(1>1) = 1 or 0 =1

. D2=(X=1+1=2)

. P2= (abe)

. R2= (А = 2, В=1, Y=2)

Диаграмма состояний теста: (0)>U2(1)>D2(2) B)

Алгоритм с ошибками

Протокол теста Т2(А=2, В=1, Y=1):

. U1=(2>1)or(1=0) = 1 or 0 = 1 9

. D1= (X=1/2=0.5)

. U2=(2=2)or(0.5D1(0.5)> U2(1)>D2(1.5)

. D2=(X=0.5+1=1.5)

. P2= (ace)

. R2= (А = 2, В=1, Y=1.5)

Диаграмма состояний теста: (1)>D1(0.5)> U2(1)>D2(1.5)

Результаты тестирования приведены в табл. 1.

Таблица 1. Результат тестирования методом покрытия решений

Тест

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

Фактический результат

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

А=3; В=0; Y=3

X=1

X=1

Неуспешно

А=2, В=1, Y=1

X=2

X=1,5

Успешно



ВЫВОДЫ

. Тест Т2 (А=2, В=1, Y=1) обнаружил ошибки, вызванные нарушением условий проверки, т.к. ожидаемый результат X=2 не подтвердился.

. Тест Т1 (А=3; В=0; Y=3) не обнаружил ошибки, вызванные нарушением условий проверки, т.к. ожидаемый результат X=1 не подтвердился.

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

Похожие работы на - Тестирование программного обеспечения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!