УДК 004
Шевчук В.И.
инженер по контролю качества программного обеспечения,
Международная компания-разработчик программного обеспечения
«Yucca Digital» (г. Витебск, Беларусь)
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОМОЩЬЮ ТАБЛИЦ ПРИНЯТИЯ РЕШЕНИЙ
Аннотация: целью данной статьи является рассмотреть проектирование тестов с помощью таблиц принятия решений - одного из методов проектирования тестовых примеров для программного обеспечения. Этот метод основан на предоставлении логических связей между входными и выходными данными программных компонентов в виде таблиц с последующей их конвертацией в тестовые примеры. В статье описывается процесс практического применения, а также делаются выводы о преимуществах и недостатках данного метода при проектировании тестов.
Ключевые слова: тестирование, программное обеспечение, проектирование тестов, таблица принятия решений, спецификация, тестовый пример.
Введение
Проектирование тестов (тест дизайн) - это процесс создания плана или стратегии тестирования программного приложения, включая его возможности и функционал [1]. Он включает в себя определение условий тестирования, тест кейсов, тестовых данных и методов тестирования, которые будут использоваться для проверки качества и функциональности программного обеспечения. Проектирование тестов помогает гарантировать, что тесты являются эффективными и результативными и соответствуют требованиям и целям проекта программного обеспечения.
При проектировании тестов используются различные методы, которые можно разделить на следующие группы: основанные на спецификации, структуре и опыте [2]. В данной статье рассмотрим метод тестирования с помощью таблицы принятия решений, основанный на спецификации.
Таблицы принятия решений Построение таблицы принятия решений - это метод, который использует таблицу для представления логических взаимосвязей между входными и выходными данными программного компонента [3, с. 146]. Таблица решений состоит из строк, называемых условиями (входные данные), и столбцов, называемых действиями (выходные данные). Каждая ячейка в таблице решений содержит «да», «нет» либо «неважно». Комбинация «да» и «нет» в строке формирует правило, которое определяет, когда должно быть выполнено то или иное действие.
Чтобы применить тестирование с помощью таблицы принятия решений, необходимо определить входные и выходные данные программного компонента, а также их возможные комбинации на основе логики или бизнес-правил. Создать таблицу решений с условиями в виде строк и действиями в виде столбцов. Заполнить каждую ячейку «да», «нет» или «неважно» на основе логики или бизнес-правил [3, с. 145]. Использовать каждое правило в качестве тестового примера, предоставляя значения для входных данных и проверяя выходные данные.
Таблица 1 - Комбинации на основе входных данных
№ Сумма покупок, рублей Статус участника Право на скидку
1. >=100 да да
2. >=100 нет нет
3. <100 да нет
4. <100 нет нет
Предположим, что мы хотим протестировать функцию, которая определяет, имеет ли клиент право на скидку в зависимости от суммы покупок и статуса участника. Входными данными являются сумма покупок и статус участника, а результатом является право на скидку. Существует четыре возможные комбинации (таблица 1).
Создадим таблицу решений с двумя условиями и одним действием и заполнить каждую ячейку «да» или «нет» [4, с. 87-90], основываясь на логике (таблица 2).
Таблица 2 - Таблица принятия решений
№ Условие 1: сумма покупок >= 100 рублей Условие 2: статус участника Действие: право на скидку
1. да да да
2. да нет нет
3. нет да нет
4. нет нет нет
Используем каждое правило в качестве тест кейса, предоставляя значения для входных данных и проверяя выходные данные:
1) сумма покупок = 105 рублей; статус участника = да; скидка = да;
2) сумма покупок = 110 рублей; статус участника = нет; скидка = нет;
3) сумма покупок = 70 рублей; статус участника = да; скидка = нет;
4) сумма покупок = 50 рублей; статус участника = нет; скидка = нет.
В следующем примере рассмотрим двухфакторную аутентификацию на сайте. Входными данными в данном случае являются логин, пароль и код подтверждения, а результатом вход в личный кабинет. Таким образом получим восемь вариантов комбинаций (таблица 3).
Таблица 3 - Таблица принятия решений
№ Логин Пароль Проверочный код Вход
1. верный верный верный успешный
2. верный неверный верный запрещен
3. верный верный неверный запрещен
4. верный неверный неверный запрещен
5. неверный верный верный запрещен
6. неверный неверный верный запрещен
7. неверный верный неверный запрещен
8. неверный неверный неверный запрещен
Далее предоставляя значения для входных данных и проверяя выходные данные, используем каждое правило для написания тест кейсов:
1) логин = true@email.com, пароль = true, код = true, вход = успешный;
2) логин = true@email.com, пароль = "-", код = true, вход = запрещен;
3) логин = true@email.com, пароль = true, код = 1234, вход = запрещен;
4) логин = true@email.com, пароль = 56789, код = "-", вход = запрещен;
5) логин = false@email.com, пароль = true, код = true, вход = запрещен;
6) логин = false, пароль = 12f3R4, код = true, вход = запрещен;
7) логин = false@email, пароль = true, код = 3w5s, вход = запрещен;
8) логин = false, пароль = 9&8N$, код = wP#12, вход = запрещен.
Заключение
В данной статье была рассмотрена методика применения таблиц принятия решений и разобрано ее практическое применение. Преимущество тестирования с помощью таблиц решений заключается в том, что оно обеспечивает четкий и сжатый способ представления сложной логики и бизнес -правил. Недостатком является то, что таблицы могут стать слишком большими или сложными для некоторых сценариев.
СПИСОК ЛИТЕРАТУРЫ:
1. qaevolution.ru "Тест дизайн" [Электронный ресурс]. - Режим доступа: URL: https://qaevolution.ru/testovaya-dokumentaciya/test-dizajn/ (24.06.2023).
2. shresthanischal.com.np "Difference Between Specification-based Testing, Structure-based Testing and Experience-based Testing Techniques" [Электронный ресурс]. - Режим доступа: URL: https://www.shresthanischaLcom.np/2021/02/difference-between-specification-based.html (24.06.2023).
3. Йоргенсен П. Тестирование программного обеспечения: Подход ремесленника: Пер. с англ. / П. Йоргенсен. - 3-е изд., испр. и доп. - М.: Издательский дом "Вильямс", 2010. С. 145-164.
4. Майерс Г. Искусство тестирования программного обеспечения: Пер. с англ. / Г. Майерс, К. Сэндлер, Т. Баджетт. - 3-е изд., испр. и доп. - М.: Издательский дом "Вильямс", 2012. С. 87-90.
Shauchuk V.I.
software quality assurance engineer, International software company «Yucca Digital», (Vitebsk, Belarus)
DECISION TABLE SOFTWARE TESTING
Abstract: the purpose of this article is to review the design of tests using decision tables -one of the methods of software test cases design. This method is based on providing logical connections between the input and output data of software components in the form of tables with their subsequent conversion into test cases. The article describes the process of practical application, and also draws conclusions about the advantages and disadvantages of this method during the test design.
Keywords: testing, software, test design, decision table, specification, test case.