Дисциплина «Тестирование программного обеспечения», изучаемая студентами бакалавриата по направлению «Программная инженерия», весьма актуальна, поскольку тестирование является важнейшей составляющей поддержки качества программного обеспечения [1–7].
В ходе одной из лабораторных работ в рамках этой дисциплины студент должен научиться производить тестирование программного обеспечения методом, основанным на построении диаграмм причин-следствий. Такие диаграммы используются для проектирования тестовых вариантов и обеспечивают формальную запись логических условий и соответствующих действий [1, 8].
Рассмотрим некоторые особенности разработанного методического пособия по данной теме. В разделе «Краткие теоретические сведения» методического пособия сначала представлена необходимая теория, посвященная данному способу тестирования.
Изначально разобраны основные шаги этого метода тестирования. Информация основана главным образом на работе [1], однако принципы подачи материала несколько усовершенствованы: изменена структура материала, а именно по каждому из шагов детально разобрана вся необходимая информация; использована единая система обозначений для записи базовых символов графов причин и следствий. Далее приведем этот фрагмент методического пособия.
Диаграммы причинно-следственных связей используются для проектирования тестовых вариантов и обеспечивают формальную запись логических условий и соответствующих действий [1]. Данный способ является разновидностью тестирования «черного ящика». Используется автоматный подход к решению задачи.
На первом шаге способа тестирования, основанного на построении диаграмм причинно-следственных связей, для тестируемой программы (или отдельного тестируемого модуля) перечисляются причины (условия ввода или классы эквивалентности условий ввода) и следствия (действия или условия вывода). Каждой причине и следствию присваивается свой идентификатор.
На втором шаге данного способа тестирования разрабатывается граф причинно-следственных связей.
Изобразим базовые символы для записи графов причин и следствий [1]. Причины будем обозначать символами , а следствия — символами . Каждый узел графа может находиться в состоянии 0 (состояние отсутствует) или 1 (состояние присутствует).
Функция «тождество» (рис. 1) устанавливает, что если значение есть 1, то и значение есть 1. В противном случае значение есть 0.
Рис. 1. Функция «тождество»
Функция «не» (рис. 2) устанавливает, что если значение есть 1, то значение есть 0. В противном случае значение есть 1.
Рис. 2. Функция «не»
Функция «или» (рис. 3) устанавливает, что если или есть 1, то есть 1. В противном случае есть 0.
Рис. 3. Функция «или»
Функция «и» (рис. 4) устанавливает, что если и , и есть 1, то есть 1. В противном случае есть 0.
Рис. 4. Функция «и»
Часто определенные комбинации причин невозможны из-за синтаксических или внешних ограничений. Используются перечисленные ниже обозначения ограничений.
Ограничение «исключает» («Exclusive»), показанное на рис. 5, устанавливает, что должно быть истинным, если причины нулевые, или только одна из причин — или — принимает значение 1 ( и не могут принимать значение 1 одновременно).
Рис. 5. Ограничение «исключает» («Exclusive»)
Ограничение «включает» («Inclusive»), показанное на рис. 6, устанавливает, что по крайней мере одна из величин , или всегда должна быть равной 1 (, и не могут принимать значение 0 одновременно).
Рис. 6. Ограничение «включает» («Inclusive»)
Ограничение «одно и только одно» («Only one»), показанное на рис. 7, устанавливает, что одна и только одна из величин или должна быть равна 1.
Рис. 7. Ограничение «одно и только одно» («Only one»)
Ограничение «требует» («Requires»), показанное рис. 8, устанавливает, что если принимает значение 1, то и должна принимать значение 1 (нельзя, чтобы было равно 1, и при этом было равно 0).
Рис. 8. Ограничение «требует» («Requires»)
Часто возникает необходимость в ограничениях для следствий.
Ограничение «скрывает» («Masks»), показанное рис. 9, устанавливает, что если следствие имеет значение 1, то следствие должно принять значение 0.
Рис. 9. Ограничение «скрывает» («Masks»)
На третьем шаге рассматриваемого способа тестирования граф преобразуется в таблицу решений.
Порядок генерации таблицы решений [1]:
1) Выбирается некоторое следствие, которое должно быть в состоянии «1».
2) Находятся все комбинации причин (с учетом ограничений), которые устанавливают это следствие в состояние «1». Для этого из следствия прокладывается обратная трасса через граф.
3) Для каждой комбинации причин, приводящих следствие в состояние «1», строится один столбец.
4) Для каждой комбинации причин доопределяются состояния всех других следствий. Они помещаются в тот же столбец таблицы решений.
5) Действия 1–4 повторяются для всех следствий графа.
На четвертом шаге данного способа тестирования столбцы таблицы решений преобразуются в тестовые варианты.
Далее, для иллюстрации способа тестирования, в «Кратких теоретических сведениях» рассмотрен пример программы, выполняющей расчет оплаты за Интернет.
Таким образом, в разработанном методическом пособии в компактном виде изложена теория, посвященная основным понятиям и шагам тестирования программного обеспечения методом, основанным на построении диаграмм причин-следствий, снабженная достаточным количеством примеров. Изучив «Краткие теоретические сведения» методического пособия, студенты приступают к самостоятельному решению подобных задач.
Литература:
- Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения: Учебник для вузов. 4-е изд. Стандарт третьего поколения. СПб.: Питер, 2012. 608 с.
- Файзрахманов Р. А., Мурзакаев Р. Т., Брюханова А. А. Командная разработка и непрерывная интеграция в системах автоматизированного проектирования фигурного раскроя // Научное обозрение. 2015. № 1. С. 95–101.
- Темичев А. А., Файзрахманов Р. А. Аналитический обзор средств автоматизации тестирования производительности применительно к системам мониторинга // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. 2015. № 3 (15). С. 117–133.
- Полевщиков И. С., Байков В. С., Швецов М. Д. Разработка методического пособия на тему «Тестирование условий» (для студентов и магистрантов направления «Информатика и вычислительная техника») // Педагогика и современность. 2012. № 2. С. 84–90.
5. Полевщиков И. С. Разработка методического пособия на тему «Тестирование базового пути» (для студентов бакалавриата направления «Программная инженерия») // Педагогика и современность. 2013. № 4. С. 83–85.
- Селуков Д. А., Полевщиков И. С. Автоматизация процесса тестирования программного обеспечения при использовании тестирования базового пути // Молодой ученый. 2015. № 23. С. 60–63.
- Селуков Д. А., Полевщиков И. С. Автоматизация процесса тестирования программного обеспечения при использовании тестирования условий // Молодой ученый. 2015. № 23. С. 63–67.
- Полевщиков И. С., Кондратович М. А., Селиванова О. И. Разработка методического пособия на тему «Способ диаграмм причин-следствий» (для студентов и магистрантов направления «Информатика и вычислительная техника») // Педагогика и современность. 2012. № 2. С. 79–84.