Автоматизация процесса тестирования программного обеспечения при использовании тестирования базового пути | Статья в журнале «Молодой ученый»

Авторы: ,

Рубрика: Информатика

Опубликовано в Молодой учёный №23 (103) декабрь-1 2015 г.

Дата публикации: 04.12.2015

Статья просмотрена: 94 раза

Библиографическое описание:

Селуков Д. А., Полевщиков И. С. Автоматизация процесса тестирования программного обеспечения при использовании тестирования базового пути // Молодой ученый. — 2015. — №23. — С. 60-63. — URL https://moluch.ru/archive/103/24087/ (дата обращения: 21.09.2018).



Автоматизация процесса тестирования программного обеспечения при использовании тестирования базового пути

Селуков Дмитрий Александрович, студент;

Полевщиков Иван Сергеевич, аспирант, ассистент

Пермский национальный исследовательский политехнический университет

Известно, что тестирование представляет собой один из этапов жизненного цикла разработки программного обеспечения (ПО) и важнейшую составляющую обеспечения качества ПО [1, 2]. Актуальной задачей является поиск подходов к автоматизации процесса тестирования ПО с целью повышения производительности труда за счет снижения временных затрат на выполнение рутинных операций.

Одним из способов тестирования ПО является тестирование базового пути [1, 3-5]. Этот способ тестирования основан на принципе «белого ящика» и дает возможность получить оценку комплексной сложности программы, а затем использовать эту оценку для определения необходимого количества тестовых вариантов. Тестовые варианты разрабатываются для проверки базового множества путей в программе и гарантируют однократное выполнение каждого оператора программы при тестировании.

Рассмотрим пример программы, написанной на языке C#. Протестируем эту программу с использованием способа тестирования базового пути и приведем подход к автоматизации процесса тестирования. Листинг программы (номера операторов показаны в тексте программы с использованием комментариев):

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Program1

{

public class Class1

{

public int sumfora = 0; // 1

public int sumforb = 0; // 1

public int sumforc = 0; // 1

public Class1(int a, int b, int c)

{

while (a > b) // 2

{

a -= 3; // 3

if ((a > 0) /*4*/ && (a < 7) /*5*/)

c *= 3; // 6

else // 7

c -= 5; // 7

} // 8

sumfora = a; // 9

sumforb = b; // 9

sumforc = c; // 9

} // 10

}

}

Далее необходимо построить потоковый граф для данной программы (рис. 1).

Описание: unnamed0

Рис. 1. Потоковый граф для рассматриваемой задачи

Потоковый граф имеет 4 региона (, , , ), следовательно, цикломатическая сложность равна . Строим независимые пути для потокового графа:

Путь 1: 1-2-9-10.

Путь 2: 1-2-3-4-7-8-2-9-10.

Путь 3: 1-2-3-4-5-7-8-2-9-10.

Путь 4: 1-2-3-4-5-6-8-2-9-10.

Подготавливаем тестовые варианты, инициирующие выполнение каждого пути:

Тестовый вариант для пути 1 (ТВ1):

ИД (исходные данные): Пользователь ввел значение a меньшее чем значение b. Например, пользователь ввел значение a равное 10, b равное 11, с равное 6.

ОЖ.РЕЗ. (ожидаемые результаты): Результатом работы программы для рассматриваемого примера будут следующие значения переменных: а равно 10, b равно 11, с равно 6.

Тестовый вариант для пути 2 (ТВ2):

ИД: Пользователь ввел значение a большее чем значение b, причем a примет значение меньшее или равное 0 при проверке условия для if. Например, пользователь ввел значение a равное 0, b равное -3, с равное 7.

ОЖ.РЕЗ.: Результатом работы программы для рассматриваемого примера будут следующие значения переменных: а равно -3, b равно -3, с равно 2.

Тестовый вариант для пути 3 (ТВ3):

ИД: Пользователь ввел значение a большее чем значение b, причем a примет значение большее или равное 7 при проверке условия для if. Например, пользователь ввел значение a равное 12, b равное 11, с равное 8.

ОЖ.РЕЗ.: Результатом работы программы для рассматриваемого примера будут следующие значения переменных: а равно 9, b равно 11, с равно 3.

Тестовый вариант для пути 4 (ТВ4):

ИД: Пользователь ввел значение a большее чем значение b, причем a одновременно больше нуля и меньше 7. Например, пользователь ввел значение a равное 5, b равное 4, с равное 10.

ОЖ.РЕЗ.: Результатом работы программы для рассматриваемого примера будут следующие значения переменных: а равно 2, b равно 4, с равно 30.

Дальнейший шаг процесса тестирования, а именно сравнение реальных и ожидаемых результатов работы программы можно автоматизировать. Для этого были использованы возможности для написания тестовых вариантов на языке C#, предоставляемые средой программирования MS Visual Studio [6-9].

Код тестовых вариантов для рассматриваемой задачи с комментариями:

using System; // Подключается автоматически при создании тестового проекта

using Microsoft.VisualStudio.TestTools.UnitTesting; // Подключается автоматически при создании тестового проекта

using Program1; // Подключаем сами, для связки с программой, которую будем тестировать

namespace Testforprogram1 // Пространство имен проекта

{

[TestClass] // Главный тестовый класс

public class UnitTest1

{

[TestMethod] // Начало описания тестового метода

public void TestMethod1() // Метод, соответствующий ТВ1

{

Class1 cl = new Class1(10, 11, 6); // Создаем переменную типа Class1, который находится в тестируемой программе, и подаем на вход 3 числа

Assert.AreEqual(10, cl.sumfora); // Вызываем метод AreEqual и передаем в него 2 параметра: первый - это то число, которое должно получиться, а второй - это то, что записала программа в данную переменную. В результате число 10 сравнивается с cl.sumfora и если они совпадают, то возвращается true

Assert.AreEqual(11, cl.sumforb); // Аналогично вышеописанному

Assert.AreEqual(6, cl.sumforc); // Аналогично вышеописанному

}

[TestMethod] // Объявляем о создании следующего тестового метода

public void TestMethod2() // Метод, соответствующий ТВ2

{

Class1 cl = new Class1(0, -3, 7);

Assert.AreEqual(-3, cl.sumfora);

Assert.AreEqual(-3, cl.sumforb);

Assert.AreEqual(2, cl.sumforc);

}

[TestMethod]

public void TestMethod3() // Метод, соответствующий ТВ3

{

Class1 cl = new Class1(12, 11, 8);

Assert.AreEqual(9, cl.sumfora);

Assert.AreEqual(11, cl.sumforb);

Assert.AreEqual(3, cl.sumforc);

}

[TestMethod]

public void TestMethod4()// Метод, соответствующий ТВ4

{

Class1 cl = new Class1(5, 4, 10);

Assert.AreEqual(2, cl.sumfora);

Assert.AreEqual(4, cl.sumforb);

Assert.AreEqual(30, cl.sumforc);

}

}

}

Поскольку данные тестовые методы возвращают только true в случае успешного выполнения теста и false в случае неуспешного выполненного теста, с указанием соответствующей ошибки, то результатами данных тестов может служить соответствующее сообщение об этом. Для рассматриваемой задачи вывод результатов тестирования программы представлен на рис. 2.

Рис. 2. Результаты тестирования программы

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

Литература:

  1. Орлов С.А., Цилькер Б.Я. Технологии разработки программного обеспечения: Учебник для вузов. 4-е изд. Стандарт третьего поколения. СПб.: Питер, 2012. 608 с.
  2. Темичев А.А., Файзрахманов Р.А.. Подбор параметров нагрузочного тестирования систем мониторинга с использованием нечеткой логики // Инженерный вестник Дона. 2015. №3. URL: ivdon.ru/ru/magazine/archive/n3y2015/3153.
  3. Полевщиков И.С. Разработка методического пособия на тему «Тестирование базового пути» (для студентов бакалавриата направления «Программная инженерия») // Педагогика и современность. 2013. №4. С. 83-85.
  4. Полевщиков И.С. Особенности изучения способа тестирования базового пути студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения» (часть 1) // Молодой ученый. 2015. №18(98). С. 10-12.
  5. Полевщиков И.С. Особенности изучения способа тестирования базового пути студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения» (часть 2) // Молодой ученый. 2015. №18(98). С. 13-15.
  6. Unit тесты на практике. URL: habrahabr.ru/post/191986/ (Дата обращения: 24.11.2015).
  7. Юнит тестирование в C# на примере Visual Studio 2008. testerway.blogspot.ru/2009/07/c-visual-studio-2008-unit-test-in-c.html (Дата обращения: 24.11.2015).
  8. Модульное тестирование кода. URL: msdn.microsoft.com/ru-ru/library/dd264975.aspx (Дата обращения: 24.11.2015).
  9. Краткое руководство. Разработка через тестирование с использованием обозревателя тестов. URL: msdn.microsoft.com/ru-ru/library/hh212233.aspx (Дата обращения: 24.11.2015).
Основные термины (генерируются автоматически): значение переменных, базовый путь, потоковый граф, тестовый вариант, Результат работы программы, рассматриваемая задача, способ тестирования, автоматизация процесса тестирования, путь, пользователь.


Похожие статьи

Особенности изучения способа тестирования базового пути...

Тестирование базового пути — это способ тестирования, который основан на принципе «белого ящика».

Для представления программы при использовании данного способа тестирования используется потоковый граф.

Особенности изучения способа тестирования базового пути...

Основные термины (генерируются автоматически): тестовый вариант, потоковый граф, путь, число, цикломатическая сложность, результат работы программы, базовый путь, текст программы, Пользователь, разработанное методическое пособие.

Автоматизация процесса тестирования программного...

Основные термины (генерируются автоматически): тестовый вариант, автоматизация процесса тестирования, Пользователь, тестовый проект, тестовый метод, самостоятельное значение, простое условие, программное обеспечение, константная формула...

Типовые задания при изучении студентами тестирования...

Далее необходимо провести тестирование каждого консольного приложения способом тестирования базового пути согласно следующим шагам [1, 4]: 1) На основе текста программы формируется потоковый граф.

Особенности составления заданий для контроля знаний студентов...

1) Тестирование базового пути основано на принципе, при котором … А. известна внутренняя структура программы, а исследуются внутренние элементы программы и связи

2) Составное условие программы отображается … А. в несколько операторных узлов потокового графа.

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

На третьем шаге рассматриваемого способа тестирования граф преобразуется в таблицу решений.

На четвертом шаге данного способа тестирования столбцы таблицы решений преобразуются в тестовые варианты.

Типовые задачи по тестированию программного обеспечения...

В ходе одной из лабораторных работ студент должен научиться производить тестирование программного обеспечения методом, основанным на построении диаграмм

5) сравнить реальные результаты тестовых вариантов с ожидаемыми. Типовые варианты задач

1) Тестирование базового пути — это способ тестирования...

4) Независимым путем в потоковом графе, представленном на рис. 1, не является …

2) Если условие ввода задает булево значение , то недопустимым классом эквивалентности является …

Особенности изучения способа тестирования базового пути студентами бакалавриата в...

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Особенности изучения способа тестирования базового пути...

Тестирование базового пути — это способ тестирования, который основан на принципе «белого ящика».

Для представления программы при использовании данного способа тестирования используется потоковый граф.

Особенности изучения способа тестирования базового пути...

Основные термины (генерируются автоматически): тестовый вариант, потоковый граф, путь, число, цикломатическая сложность, результат работы программы, базовый путь, текст программы, Пользователь, разработанное методическое пособие.

Автоматизация процесса тестирования программного...

Основные термины (генерируются автоматически): тестовый вариант, автоматизация процесса тестирования, Пользователь, тестовый проект, тестовый метод, самостоятельное значение, простое условие, программное обеспечение, константная формула...

Типовые задания при изучении студентами тестирования...

Далее необходимо провести тестирование каждого консольного приложения способом тестирования базового пути согласно следующим шагам [1, 4]: 1) На основе текста программы формируется потоковый граф.

Особенности составления заданий для контроля знаний студентов...

1) Тестирование базового пути основано на принципе, при котором … А. известна внутренняя структура программы, а исследуются внутренние элементы программы и связи

2) Составное условие программы отображается … А. в несколько операторных узлов потокового графа.

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

На третьем шаге рассматриваемого способа тестирования граф преобразуется в таблицу решений.

На четвертом шаге данного способа тестирования столбцы таблицы решений преобразуются в тестовые варианты.

Типовые задачи по тестированию программного обеспечения...

В ходе одной из лабораторных работ студент должен научиться производить тестирование программного обеспечения методом, основанным на построении диаграмм

5) сравнить реальные результаты тестовых вариантов с ожидаемыми. Типовые варианты задач

1) Тестирование базового пути — это способ тестирования...

4) Независимым путем в потоковом графе, представленном на рис. 1, не является …

2) Если условие ввода задает булево значение , то недопустимым классом эквивалентности является …

Особенности изучения способа тестирования базового пути студентами бакалавриата в...

Задать вопрос