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

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

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

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

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

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

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



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

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

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

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

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

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

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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Program3

{

public class Class1

{

public int a;

public int b;

public int c;

public Class1(int a, int b)

{

if ((a > -55) && (b <= 62)) // Условие С1

{ c = a + b; }

else

if (a > -55) // Условие С2

{ c = a - b; }

else

{ c = a * b; }

}

}

}

Строим ограничение для каждого условия. Для составного условия : . Для простого условия : .

Выявляем ограничения результата по каждому простому условию. Ограничения на результат простых условий: ; ; .

Строим ограничивающее множество для каждого условия. Построение выполняется путем подстановки в константную формулу выявленных ограничений результата. Константная формула выглядит следующим образом:

.

Следовательно:

.

.

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

Тестовые варианты для элементов множества :

Тестовый вариант ТВ1:

ИД (исходные данные): Пользователь ввел значения и . Например, и .

ОЖ.РЕЗ. (ожидаемые результаты): вычисляется как произведение и . В рассматриваемом примере .

Тестовый вариант ТВ2:

ИД: Пользователь ввел значения и . Например, .

ОЖ.РЕЗ.: вычисляется как произведение и . В рассматриваемом примере .

Тестовый вариант ТВ3:

ИД: Пользователь ввел значения и . Например, .

ОЖ.РЕЗ.: вычисляется как произведение и . В рассматриваемом примере .

Тестовый вариант ТВ4:

ИД: Пользователь ввел значения и .

ОЖ.РЕЗ.: вычисляется как произведение и . Т.е., .

Тестовый вариант ТВ5:

ИД: Пользователь ввел значения и . Например, и .

ОЖ.РЕЗ.: вычисляется как разность и . В рассматриваемом примере .

Тестовый вариант ТВ6:

ИД: Пользователь ввел значения и . Например, и .

ОЖ.РЕЗ.: вычисляется как сумма и . В рассматриваемом примере .

Тестовый вариант ТВ7:

ИД: Пользователь ввел значения и . Например, .

ОЖ.РЕЗ.: вычисляется как сумма и . В рассматриваемом примере .

Тестовые варианты для элементов множества :

Тестовый вариант ТВ8:

ИД: Пользователь ввел значение .

ОЖ.РЕЗ.: вычисляется как произведение и .

Примечание: Данный тестовый вариант поглощается ТВ3 при и ТВ4 при . Самостоятельное значение имеет при . Например, при будет получено значение .

Тестовый вариант ТВ9:

ИД: Пользователь ввел значение .

ОЖ.РЕЗ.: вычисляется как произведение и .

Примечание: Данный тестовый вариант поглощается ТВ1 при и ТВ2 при . Самостоятельное значение имеет при . Например, при и будет получено значение .

Тестовый вариант ТВ10:

ИД: Пользователь ввел значение .

ОЖ.РЕЗ.: вычисляется либо как сумма и (при ), либо как разность и (при ).

Примечание: Данный тестовый вариант поглощается ТВ5 при , ТВ6 при и ТВ7 при . Следовательно, для данного тестового варианта не требуется сравнивать реальные и ожидаемые результаты.

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

Фрагмент кода тестовых вариантов для рассматриваемой задачи с комментариями (пропущенные части кода отмечены многоточием):

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

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

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

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

{

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

public class UnitTest1

{

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

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

{

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

cl.c = cl.a * cl.b; // При данных числах на входе программа должна вычислить произведение этих чисел. Прописываем это действие, используя глобальные переменные, объявленные в классе основной программы

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

}

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

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

{

Class1 cl = new Class1(-70, 62);

cl.c = cl.a * cl.b;

Assert.AreEqual(cl.c, cl.c);

}

… // Методы, соответствующие ТВ3 и ТВ4

[TestMethod]

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

{

Class1 cl = new Class1(-50, 70);

cl.c = cl.a - cl.b;

Assert.AreEqual(cl.c, cl.c);

}

[TestMethod]

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

{

Class1 cl = new Class1(10, 20);

cl.c = cl.a + cl.b;

Assert.AreEqual(cl.c, cl.c);

}

… // Методы, соответствующие ТВ7, ТВ8 и ТВ9

}

}

Результатами данных тестов будет служить сообщение об успешном либо неуспешном выполнении теста. Для рассматриваемой задачи вывод результатов тестирования программы представлен на рис. 1.

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

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

Литература:

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


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

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

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

Тестовый вариант для пути 1 (ТВ1): ИД (исходные данные): Пользователь ввел значение a меньшее чем значение b. Например, пользователь ввел...

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

5) сравнить реальные результаты тестовых вариантов с ожидаемыми. Типовые варианты задач: Вариант № 1. Необходимо написать программу для выполнения расчета суммы получаемой студентом стипендии по результатам сдачи сессии.

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

Построение выполняется путем подстановки в константную формулу выявленных ограничений результата.

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

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

5) Реальные результаты каждого тестового варианта сравниваются с ожидаемыми результатами.

3) Строится ограничивающее множество для каждого условия (с применением константных формул).

Технология тестирования программных модулей

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

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

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

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

Исследование стратегий тестирования программного...

Тестирование программного обеспечения является процессом поиска ошибок в реализации программы.

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

Анализ и сравнение методов контроля при проведении...

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

работа с системой тестирования UniTest комфортна и понятна простому пользователю и не требует дополнительного обучения, так как имеет удобный и интуитивно понятный интерфейс

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

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

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

Тестовый вариант для пути 1 (ТВ1): ИД (исходные данные): Пользователь ввел значение a меньшее чем значение b. Например, пользователь ввел...

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

5) сравнить реальные результаты тестовых вариантов с ожидаемыми. Типовые варианты задач: Вариант № 1. Необходимо написать программу для выполнения расчета суммы получаемой студентом стипендии по результатам сдачи сессии.

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

Построение выполняется путем подстановки в константную формулу выявленных ограничений результата.

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

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

5) Реальные результаты каждого тестового варианта сравниваются с ожидаемыми результатами.

3) Строится ограничивающее множество для каждого условия (с применением константных формул).

Технология тестирования программных модулей

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

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

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

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

Исследование стратегий тестирования программного...

Тестирование программного обеспечения является процессом поиска ошибок в реализации программы.

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

Анализ и сравнение методов контроля при проведении...

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

работа с системой тестирования UniTest комфортна и понятна простому пользователю и не требует дополнительного обучения, так как имеет удобный и интуитивно понятный интерфейс

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