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

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 24.05.2016
Размер файла 224,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

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

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

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

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

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

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

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

Дисциплина

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

Вариант 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. Тест Т1(А=3, В=0, Y=3) -- для пути P1= (acd)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. P1= (acd)

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

Диаграмма состояний теста:

U1(1)>D1(1)>U2(0): R1(A=3;B=0;Y=1)

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

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

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

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

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

Диаграмма состояний теста:

U1(1)>D1(1)>U2(0)

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

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

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

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

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

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

4. P2= (abe)

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

Диаграмма состояний теста:

U1(0)>U2(1)>D2(2) B)

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

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

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

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

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

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

5. P2= (ace)

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

Диаграмма состояний теста:

U1(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

Успешно

ВЫВОДЫ

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

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

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

Размещено на Allbest.ru


Подобные документы

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Исследование особенностей разработки линейных алгоритмов и их реализации в среде Delphi. Составление тестов для проверки программы. Характеристика основных элементов интерфейса, компонентов, значения их свойств. Построение графической схемы алгоритма.

    лабораторная работа [316,6 K], добавлен 08.11.2012

  • Описание формальной модели алгоритма на основе рекурсивных функций. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова.

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Понятие, виды и функции тестов, компьютерное тестирование. Государственные стандарты создания компьютерных тестов и практическая реализация комплекса генерации тестов: СУБД и язык программирования, пользовательский интерфейс, экономическая эффективность.

    дипломная работа [2,1 M], добавлен 29.06.2012

  • Автоматизация регрессионного тестирования. Классификация по способу сопровождения. Построение потового графа. Набор модульных тестов. Покрытие тестами классов эквивалентности. Тестирование методом "черного ящика". Тесты регрессии на "закрытых" багах.

    курсовая работа [1,8 M], добавлен 16.01.2017

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

    курсовая работа [1,1 M], добавлен 11.01.2015

  • Алгоритм сортировки Шейкер: математическое описание задачи и описание алгоритма. Алгоритм покрытия: построение одного кратчайшего покрытия. Описание схемы и работы алгоритма на графах: нахождение кратчайшего пути. Контрольные примеры работы алгоритмов.

    курсовая работа [43,8 K], добавлен 19.10.2010

  • Разработка программного обеспечения, предназначенного для предоставления трех способов прохождения тестов для студентов. Построение модели потоков данных, физической базы данных. Выбор языка программирования. Условия эксплуатации, требования к надежности.

    дипломная работа [2,7 M], добавлен 18.04.2014

  • Обзор технологий проектирования компьютерных тестов и анализ существующих систем тестирования. Создание системы автоматизированного тестирования студентов с динамической генерацией тестовых заданий при участии преподавателя, с функцией оценивания.

    дипломная работа [3,6 M], добавлен 18.07.2012

  • Анализ алгоритмов, оценка параметров алгоритма (эффективности, сложности, правильности). Комплексный анализ эффективности алгоритма на основе комплексной оценки ресурсов формальной системы. Верификация при коллективной разработке программных систем.

    презентация [234,9 K], добавлен 22.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.