Особенности тестирования программы методом покрытия оператора
Автор: Панченко Н.В.
Журнал: Форум молодых ученых @forum-nauka
Статья в выпуске: 11-2 (27), 2018 года.
Бесплатный доступ
В статье рассматриваются особенности тестирования программ методом «белого ящика» и «черного ящика». Изучив технологии тестирования, была разработана программа в среде Lazarus, которая проводит тестирование по выбранной блок-схеме и анализирует результат тестирования.
Программа, отладка, тестирование, тестировщик, черный ящик, белый ящик
Короткий адрес: https://sciup.org/140280528
IDR: 140280528
Текст научной статьи Особенности тестирования программы методом покрытия оператора
После написания кода программы обязательным является тестирование программы с целью обнаружения ошибок и отладка программы, позволяющая определить строчку программы с ошибкой и её исправить.
В процессе разработки программы автор предоставляет входной набор тестовых данных и те результаты, которые должна выдать программа при её правильном выполнении. Тестировщик находит ошибки в программе и сообщает о них автору программы, который их исправляет и вновь отдает на тестирование.
В процессе разработки программы применяют следующие технологии тестирования: тестирование «белого ящика» и «черного ящика».
В случае тестирования методом «черного ящика» в программу вводят входные данные, не имея представления о структуре самой программы с целью получить нестандартные результаты и их проанализировать.
Интересны для тестировщика прежде всего те представители каждого класса входных данных, при которых с наибольшей вероятностью могут проявиться ошибки тестируемой программы1.
В случае тестирования методом «белого ящика» тестировщик (сам программист) разрабатывает тесты, зная исходный код программы. Это дает возможность тестировать программу по частям, отдельным модулям, что облегчает сам процесс тестирования. В результате можно подобрать условия для тестирования любого фрагмента программы. В программу можно включить отладочные команды, которые позволят получить информацию на каждом шаге программы.
Программист может и самостоятельно автоматизировать тестирование2.
В данной работе рассмотрено тестирование программы методом «белого ящика», а именно, метод покрытия оператора».
Термин «белый ящик» появился чисто формально как противовес «черному». При проектировании тестов начинать следует с критериев черного ящика. После подготовки текста программы тесты, разработанные исходя из критериев черного ящика, примеряются на структуру программы. Если их оказывается недостаточно, они дополняются тестами, разработанными исходя из критериев белого ящика3.
Рассмотрим пример тестирования программы с помощью критериев белого ящика (метод покрытия операторов) на примере программы, разработанной по заданным блок-схемам (рисунок 1).
Метод покрытия операторов заключается в выполнении каждого оператора программы хотя бы один раз. На рисунке 1а приведен алгоритм правильной работы программы и с заведомо допущенными ошибками (рисунок 1 б). Каждая ветвь алгоритма обозначена буквами и цифрами, что позволит отследить какие пути алгоритма надо проверить для выбранного метода тестирования.
Программа была разработана в среде Lazarus. В качестве объектов были выбраны следующие компоненты Button, Edit, Form, Label, StringGrid.

Рисунок 1. Пример алгоритма программы: а-правильный, б- с ошибкой.
В выбранной среде была создана таблица для хранения результатов тестирования, которая содержит помимо исходных данных и номера теста, три столбца: ожидаемый результат, фактический результат и результат тестирования. Пользователь вводит данные: A,B,X. Нажав кнопку «Выполнить» программа показывает результат тестирования в зависимости от введенных значений. Заведомо в блок-схеме сделана ошибка (рисунок 1 б), чтобы проверить правильность проводимых тестов. Если ожидаемый и фактический результат совпадают, значит, ошибка в самой структуре программы не обнаружена и тест признан неуспешным. В противном случае тест успешен, так как программа показывает допущенную ошибку.
На рисунке 2 показано окно программы, показывающее результаты тестирования при различных исходных данных.

Рисунок 2. Окно программы, показывающее тестирование методом белого ящика (метод покрытия операторов)
В среде программирования NetBeans 6.5 на языке Java была написана тест-программа, которая вычисляет квадратный корень от введенного числа.
run
номер теста |
1 X |
Ожидаемый результат |Фактический результат |
Результат тестирования |
1 |
| 10.0 |
0.0 1 3.1622776601683793 |
| Успешен |
2 |
| 0.0 |
0.0 | 0.0 |
| Не успешен | |
з |
I -10.0 |
NaN I 0.0 |
Успешен |
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: IO секунды)
Рисунок 3. Окно программы, показывающее тестирование методом белого ящика (метод покрытия операторов) для вычисления квадратного корня х.
Изучив технологии тестирования, была разработана программа в среде Lazarus, которая проводит тестирование по выбранной блок-схеме и анализирует результат тестирования. Полученный результат позволяет проверять работу программы на различных данных.
Таким образом, тестирование методом белого ящика выполняют программисты, сначала тестируя код после написания программы, и затем после объединения различных модулей в одну общую систему. Тестирование методом черного ящика позволяет судить о работе программы только по набору входных и полученных данных.
Каждая из технологий позволяет выявить ошибки, пропускаемые в случае использования другой4. Поэтому рассмотренные технологии одинаково эффективны.
Список литературы Особенности тестирования программы методом покрытия оператора
- Плаксин М. А. Тестирование и отладка программ для профессионалов будущих и настоящих [Электронный ресурс] / М. А. Плаксин. 2-е изд. (эл.). М.: БИНОМ. Лаборатория знаний, 2013. 167 с.
- Рудаков А.В. Технология разработки программных продуктов. Практикум: учебное пособие для студ.учреждений сред. проф. образования / А.В. Рудаков, Г.Н. Федорова.- 4-е изд., стер. М.: Издательский центр «Академия»;2014. 192с.