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

Полевщиков И. С. Типовые задания при изучении студентами тестирования программного обеспечения по принципу «белого ящика» // Молодой ученый. — 2016. — №3. — С. 52-54.

 

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

В ходе выполнения ряда лабораторных работ студент должен научиться производить тестирование программного обеспечения различными способами, основанными на принципе «белого ящика». Следует отметить, что при использовании «белого ящика» как одного из принципов тестирования, известна внутренняя структура программы, а исследуются внутренние элементы программы и связи между ними [1].

Приведем типовые задачи этих лабораторных работ, составленные на основе [1, 3].

В ходе выполнения лабораторной работы на тему «Тестирование базового пути» студент должен сначала написать два консольных приложения (по вариантам) на любом языке программирования (Pascal, Delphi, C++, C#, Java и т. п.) в соответствии с постановкой задач. Далее необходимо провести тестирование каждого консольного приложения способом тестирования базового пути согласно следующим шагам [1, 4]:

1)     На основе текста программы формируется потоковый граф.

2)     Определяется цикломатическая сложность потокового графа.

3)     Определяется базовое множество независимых линейных путей.

4)     Подготавливаются тестовые варианты, инициирующие выполнение каждого пути.

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

Примеры задач:

1)                 Даны две точки и . Определить, какая из них находится ближе к началу координат. Учесть случай, что точки могут находиться одинаково близко к началу координат.

2)                 Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным.

3)                 Даны действительные числа и . Меньшее из этих двух чисел заменить их полусуммой, а большее — их удвоенным произведением. В случае, если числа равны, то производить замену не требуется.

4)                 Определить, делителем каких из чисел , , является число .

5)                 Даны три числа , , . Проверить, будут ли они сторонами треугольника. Если да, то вычислить площадь этого треугольника.

6)                 Вычислить значение функции:

7)                 Дано действительное число и целое число . Вычислить (учесть случай деления на 0, а также случай, когда введено ):

8)        Составить программу вычисления значений функции на отрезке с шагом . Результат представить в виде таблицы, первый столбец которой — значения аргумента, второй — соответствующие значения функции. При вводе значения проверить, чтобы данное значение было положительным (иначе вычисления не производить и выдать соответствующее сообщение). Учесть случай деления на 0.

9)        Дана строка. Подсчитать в ней количество вхождений букв 'r', 'k' и 't'.

В ходе выполнения лабораторной работы на тему «Тестирование условий» студент должен сначала написать консольное приложение (в соответствии с вариантом) на любом языке программирования (Pascal, Delphi, C++, C#, Java и т. п.) согласно постановке задачи. Далее необходимо провести тестирование консольного приложения способом тестирования ветвей и операций отношений согласно следующим шагам [1, 5, 6]:

1)        Строится ограничение для каждого условия.

2)        Выявляются ограничения результата по каждому простому условию.

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

4)        Для каждого элемента ограничивающих множеств разрабатывается тестовый вариант.

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

Примеры задач:

1)     Пользователь вводит два числа, и . Необходимо вычислить и вывести на экран значение по следующему принципу:

а) Если одновременно и , тогда вычисляется как .

б) Иначе, если , то вычисляется как произведение и .

в) Иначе вычисляется как .

2)     Пользователь вводит два числа, и . Необходимо вычислить и вывести на экран значение по следующему принципу:

а) Если одновременно и , тогда вычисляется как среднее геометрическое модулей и .

б) Иначе, если , то вычисляется как сумма и .

в) Иначе вычисляется как .

В ходе выполнения лабораторной работы на тему «Тестирование циклов» требуется написать для каждой из двух задач консольное приложение (в соответствии с вариантом) на любом языке программирования (Pascal, Delphi, C++, C#, Java и т. п.) согласно постановке задачи. Далее необходимо провести тестирование каждого консольного приложения способом тестирования циклов [1]:

1)           Проанализировать конструкцию циклов и определиться с методикой тестирования.

2)           Разработать тестовые варианты.

3)           Реальные результаты каждого тестового варианта необходимо сравнить с ожидаемыми результатами.

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

1)     объявляется массив, состоящий из 5 элементов;

2)     пользователь вводит реальное количество элементов массива;

3)     дальнейшая работа с массивом ограничивается заданной пользователем размерностью (элементы массива генерируются случайным образом).

Примеры задач:

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

2)     Упорядочить по возрастанию элементы каждой строки прямоугольной матрицы. Измененную матрицу вывести на экран.

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

4)     Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами. Измененную матрицу вывести на экран.

5)     Дана прямоугольная матрица. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно. Измененную матрицу вывести на экран.

Решение студентом задач, аналогичных рассмотренным выше, помогает освоить алгоритмы тестирования программного обеспечения, основанные на принципе «белого ящика».

 

Литература:

 

  1.      Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения: Учебник для вузов. 4-е изд. Стандарт третьего поколения. СПб.: Питер, 2012. 608 с.
  2.      Темичев А. А., Файзрахманов Р. А. Аналитический обзор средств автоматизации тестирования производительности применительно к системам мониторинга // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. 2015. № 3 (15). С. 117–133.
  3.      Семакин И. Г., Шестаков А. П. Лекции по программированию: Учебное пособие. Изд. 2-е, доп. Пермь: Изд-во Перм. ун-та, 1998. 279 с.
  4.      Полевщиков И. С. Разработка методического пособия на тему «Тестирование базового пути» (для студентов бакалавриата направления «Программная инженерия») // Педагогика и современность. 2013. № 4. С. 83–85.
  5.      Полевщиков И. С., Байков В. С., Швецов М. Д. Разработка методического пособия на тему «Тестирование условий» (для студентов и магистрантов направления «Информатика и вычислительная техника») // Педагогика и современность. 2012. № 2. С. 84–90.
  6.      Селуков Д. А., Полевщиков И. С. Автоматизация процесса тестирования программного обеспечения при использовании тестирования условий // Молодой ученый. 2015. № 23(103). С. 63–67.

Обсуждение

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