Метод дерева классификации - это метод проектирования тестов [1], поскольку он используется в различных областях разработки программного обеспечения . [2] Он был разработан Гриммом и Грохтманном в 1993 году. [3] Деревья классификации в терминах метода дерева классификации не следует путать с деревьями решений .
Метод дерева классификации состоит из двух основных этапов: [4] [5]
- Идентификация соответствующих аспектов тестирования (так называемые классификации ) и их соответствующих значений (называемых классами ), а также
- Объединение разных классов из всех классификаций в тестовые примеры .
Идентификация релевантных для тестирования аспектов обычно следует (функциональной) спецификации (например, требованиям , вариантам использования …) тестируемой системы . Эти аспекты формируют пространство входных и выходных данных тестового объекта.
Затем второй шаг проектирования тестов следует принципам комбинаторного дизайна тестов. [4]
Хотя этот метод можно применить с помощью ручки и бумаги, обычный способ включает использование редактора дерева классификации , программного инструмента, реализующего метод дерева классификации. [6]
Заявление
Предпосылкой для применения метода дерева классификации (CTM) является выбор (или определение) тестируемой системы . CTM - это метод тестирования «черного ящика», который поддерживает любой тип тестируемой системы. Это включает (но не ограничивается) аппаратные системы , интегрированные программно-аппаратные системы, простые программные системы , включая встроенное программное обеспечение , пользовательские интерфейсы , операционные системы , синтаксические анализаторы и другие (или подсистемы упомянутых систем).
Для выбранной тестируемой системы первым шагом метода дерева классификации является идентификация аспектов, относящихся к тестированию. [4] Любую тестируемую систему можно описать набором классификаций, содержащих как входные, так и выходные параметры. (Входные параметры также могут включать в себя состояния среды , предварительные условия и другие, довольно необычные параметры). [2] Каждая классификация может иметь любое количество непересекающихся классов, описывающих появление параметра. Выбор классов обычно следует принципу разделения эквивалентности для абстрактных тестовых примеров и анализа граничных значений для конкретных тестовых примеров. [5] Вместе все классификации образуют классификационное дерево. Для смысловой цели классификации могут быть сгруппированы в композиции .
Максимальное количество тестовых примеров - это декартово произведение всех классов всех классификаций в дереве, что быстро приводит к большим числам для реалистичных тестовых задач. Минимальное количество тестовых примеров - это количество классов в классификации с наиболее содержащимися классами.
На втором этапе тестовые примеры составляются путем выбора ровно одного класса из каждой классификации дерева классификации. Первоначально выбор тестовых примеров [3] выполнялся инженером-испытателем вручную .
Пример
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/f/f7/Classification_Tree_for_Database_System.png/220px-Classification_Tree_for_Database_System.png)
Для системы базы данных необходимо выполнить дизайн теста. Применяя метод дерева классификации, идентификации испытаний соответствующих аспектов дают классификацию: Privilege пользователя , Эксплуатация и методы доступа . Для прав пользователя можно выделить два класса: обычный пользователь и пользователь-администратор . Есть три операции : Добавить , Редактировать и Удалить . Для метода доступа снова определены три класса: собственный инструмент , веб-браузер , API . Класс Web Browser дополнительно доработан с помощью тестового аспекта Brand , сюда включены три возможных класса: Internet Explorer , Mozilla Firefox и Apple Safari .
На этом первый шаг метода дерева классификации завершен. Конечно, есть и другие возможные аспекты тестирования, которые могут включать в себя, например, скорость доступа к соединению, количество записей базы данных, присутствующих в базе данных и т. Д. Используя графическое представление в виде дерева, выбранные аспекты и их соответствующие значения могут быть быстро рассмотрено.
Для статистики всего существует 30 возможных тестовых случаев (2 привилегии * 3 операции * 5 методов доступа). Для минимального покрытия достаточно 5 тестовых примеров, так как существует 5 методов доступа (а метод доступа - это классификация с наибольшим количеством непересекающихся классов).
На втором этапе вручную были выбраны три тестовых случая:
- Обычный пользователь добавляет новый набор данных в базу данных с помощью собственного инструмента.
- Пользователь-администратор редактирует существующий набор данных с помощью браузера Firefox.
- Обычный пользователь удаляет набор данных из базы данных с помощью API.
Улучшения
Задний план
CTM представил следующие преимущества [2] по сравнению с методом разделения категорий [7] (CPM) Остранда и Бальцера:
- Нотация : CPM имеет только текстовую нотацию, тогда как CTM использует графическое представление в виде дерева.
- Уточнения Выбор одного представителя может повлиять на появление других представителей.
- CPM предлагает только ограничения для обработки этого сценария.
- CTM позволяет моделировать иерархические уточнения в дереве классификации, также называемые неявными зависимостями .
- Поддержка инструментов : инструмент, представленный Ostrand и Balcer, поддерживал только создание тестовых примеров, но не само разбиение на разделы.
- Грохтманн и Вегенер представили свой инструмент - Редактор дерева классификации (CTE), который поддерживает как разделение, так и создание тестовых примеров. [6]
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/4/42/Classification_Tree_for_Embedded_System.png/220px-Classification_Tree_for_Embedded_System.png)
Метод дерева классификации для встроенных систем
Сначала метод дерева классификации был предназначен для разработки и спецификации абстрактных тестовых примеров. С помощью метода дерева классификации для встроенных систем [8] также можно выполнить тестовую реализацию. В метод интегрированы несколько дополнительных функций:
- В дополнение к атомарным тестовым примерам можно указать тестовые последовательности, содержащие несколько тестовых шагов.
- Для каждого шага теста можно указать конкретное время (например, в секундах, минутах ...).
- Могут быть указаны переходы сигналов (например, линейные , сплайновые , синусоидальные ...) между выбранными классами различных шагов тестирования.
- Различие между событием и состоянием можно смоделировать, представив различные визуальные отметки в тесте.
Модуль и блок тестирования инструмент Tessy опирается на это расширение.
Правила зависимостей и автоматическое создание тестовых примеров
Одним из способов моделирования ограничений является использование механизма уточнения в методе дерева классификации. Однако это не позволяет моделировать ограничения между классами разных классификаций. Леманн и Вегенер ввели правила зависимости, основанные на логических выражениях, с их воплощением CTE. [9] Дополнительные функции включают автоматическое создание наборов тестов с использованием комбинаторного дизайна тестов (например, тестирование всех пар ).
Генерация приоритетных тестовых случаев
Недавние усовершенствования метода дерева классификации включают создание приоритетных тестовых примеров : можно назначать веса элементам дерева классификации с точки зрения возникновения и вероятности ошибки или риска. Эти веса затем используются во время генерации тестовых примеров для определения приоритетов тестовых примеров. [10] [11] Также доступно статистическое тестирование (например, для испытаний на износ и усталость ) путем интерпретации веса элементов как дискретного распределения вероятностей .
Генерация тестовой последовательности
С добавлением допустимых переходов между отдельными классами классификации классификации можно интерпретировать как конечный автомат , а, следовательно, все дерево классификации как диаграмму состояний . Это определяет допустимый порядок использования классов на этапах тестирования и позволяет автоматически создавать тестовые последовательности. [12] Доступны различные уровни покрытия, такие как покрытие состояний, покрытие переходов и покрытие пар состояний и пар переходов.
Числовые ограничения
В дополнение к логическим правилам зависимости, относящимся к классам дерева классификации, числовые ограничения позволяют указывать формулы с классификациями в качестве переменных, которые будут оценивать выбранный класс в тестовом примере. [13]
Редактор дерева классификации
Классификация дерева Редактор (КТР) представляет собой программный инструмент для разработки тестов , который реализует метод деревьев классификации. [14] [15] [16] [17]
Со временем появилось несколько редакций инструмента CTE, написанных на нескольких (популярных к тому времени) языках программирования и разработанных несколькими компаниями.
CTE 1
Первоначальная версия CTE была разработана на предприятиях Daimler-Benz Industrial Research [6] [16] в Берлине. Он появился в 1993 году и был написан на Паскале . Он был доступен только в системах Unix .
CTE 2
В 1997 году была проведена серьезная повторная реализация, которая привела к CTE 2. Разработка снова велась в Daimler-Benz Industrial Research. Он был написан на C и доступен для систем win32 .
CTE 2 был лицензирован для Razorcat в 1997 году и является частью инструмента модульного тестирования TESSY . Редактор дерева классификации для встроенных систем [8] [15] также основан на этой редакции.
Razorcat разрабатывает CTE с 2001 года, а CTE зарегистрировала торговую марку в 2003 году.
Последняя версия CTE 3.2 была опубликована с помощью инструмента TESSY 4.0 в 2016 году. Обратите внимание на таблицу версий ниже.
CTE 4
CTE 4 был реализован в TESSY 4.1.7 в качестве подключаемого модуля Eclipse в 2018 году. Последняя версия CTE 4 все еще разрабатывается как часть TESSY 4.3 в 2021 году.
CTE XL
В 2000 году Леманн и Вегенер представили правила зависимостей с их воплощением CTE, CTE XL (расширенная логика). [9] [14] [17] [18] Дополнительные функции включают автоматическое создание наборов тестов с использованием комбинаторного дизайна тестов (например, тестирование всех пар ). [19]
Разработкой занималась компания DaimlerChrysler . CTE XL был написан на Java и поддерживался в системах win32. CTE XL можно было скачать бесплатно.
В 2008 году Berner & Mattner приобрела все права на CTE XL и продолжила разработку до CTE XL 1.9.4.
CTE XL Professional
Начиная с 2010 года CTE XL Professional был разработан Berner & Mattner. [10] Была проведена полная повторная реализация, снова с использованием Java, но на этот раз на основе Eclipse . CTE XL Professional был доступен в системах win32 и win64 .
Новые разработки включали:
- Генерация приоритетных тестовых примеров: можно присвоить веса элементам дерева классификации с точки зрения возникновения и вероятности ошибки или риска. Эти веса затем используются во время генерации тестовых примеров для определения приоритетов тестовых примеров. [10] [20] Также доступно тестирование на основе рисков и статистическое тестирование.
- Генерация тестовой последовательности [12] с использованием многоагентных систем
- Числовые ограничения [13]
ТЕСТОНА
В 2014 году компания Berner & Mattner начала выпуск своего редактора дерева классификации под торговой маркой TESTONA .
Свободное издание TESTONA по - прежнему доступно для скачивания бесплатно, однако, с ограниченной функциональностью.
Версии
Версия | Дата | Комментарий | Написано в | Операционные системы |
---|---|---|---|---|
CTE 1.0 | 1993 г. | Исходная версия, [6] [16] ограничена 1000 тестами (исправлено!) | Паскаль | Unix |
CTE 2.0 | 1998 г. | Версия Windows, [15] неограниченное количество тестовых случаев | C ++ | win32 |
CTE 2.1 | 2003 г. | Встроенная системная версия Razorcats, являющаяся частью инструмента TESSY . | C ++ | win32 |
CTE XL 1.0 | 2000 г. | Правила зависимостей, создание тестовых примеров [9] [14] [17] | Ява | win32 |
CTE XL 1,6 | 2006 г. | Последняя версия Daimler-Benz [18] | Ява | win32 |
CTE XL 1,8 | 2008 г. | Разработка Berner & Mattner | Ява | win32 |
CTE XL 1.9 | 2009 г. | Последняя версия только для Java | Ява | win32 |
CTE XL Professional 2.1 | 2011-02-21 | Первая версия на основе Eclipse, создание приоритетных тестовых примеров, [10] Детерминированное создание тестовых примеров, отслеживание требований с помощью DOORS | Java 6 , Eclipse 3.5 | win32 |
CTE XL Professional 2.3 | 2011-08-02 | Интеграция с QualityCenter , анализ покрытия требований и матрица прослеживаемости , API | Java 6, Eclipse 3.6 | win32 |
CTE XL Professional 2.5 | 2011-11-11 | Аннотация результатов теста, импорт MindMap | Java 6, Eclipse 3.6 | win32, win64 |
CTE XL Professional 2.7 | 2012-01-30 | Выпуск исправления ошибки | Java 6, Eclipse 3.6 | win32, win64 |
CTE XL Professional 2.9 | 2012-06-08 | Режим неявной пометки, классы по умолчанию, интерфейс командной строки | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.1 | 2012-10-19 | Пост-оценка теста (например, для анализа первопричин ), создание тестовой последовательности, [12] Числовые ограничения [13] | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.3 | 2013-05-28 | Анализ покрытия тестами, управление вариантами (например, как часть разработки семейства продуктов ), тестирование класса эквивалентности | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.5 | 2013-12-18 | Мастер Краевая анализ, Импорт AUTOSAR и MATLAB моделей | Java 7 , Eclipse 3.8 | win32, win64 |
ТЕСТОНА 4.1 | 2014-09-22 | Выпуск исправления ошибки | Java 7, Eclipse 3.8 | win32, win64 |
ТЕСТОНА 4.3 | 2015-07-08 | Генерация исполняемых тестовых скриптов ( генерация кода ), импорт результатов тестирования [21] | Java 7, Eclipse 3.8 | win32, win64 |
ТЕСТОНА 4.5 | 2016-01-21 | Расширенные возможности экспорта, улучшения графического интерфейса | Java 7, Eclipse 3.8 | win32, win64 |
ТЕСТОНА 5.1 | 2016-07-19 | Выпуск с исправлением ошибок, переход на Java 8 , Eclipse 4.5 | Java 8 , Eclipse 4.5 | win32, win64 |
CTE 4.0 | 2018-08-01 | Новая реализация Razorcat в качестве подключаемого модуля для инструмента TESSY 4.1 на основе Eclipse . Поддержка в создании (на основе модели) тестовых случаев. | Ява | win32 win64 |
Преимущества
- Графическое представление соответствующих аспектов теста [2]
- Метод как для идентификации соответствующих аспектов тестирования, так и для их объединения в тестовые примеры [4]
Ограничения
- Когда проектирование теста с использованием метода дерева классификации выполняется без надлежащей декомпозиции теста, деревья классификации могут стать большими и громоздкими.
- Новые пользователи, как правило, включают слишком много (особенно нерелевантных) аспектов тестирования, что приводит к слишком большому количеству тестовых примеров.
- Не существует алгоритма или строгого руководства для выбора соответствующих аспектов теста. [22]
Рекомендации
- ^ Бат, Грэм; Маккей, Джуди (2008). Справочник инженера по тестированию программного обеспечения: учебное пособие для специалиста по тестированию ISTQB и сертификатов продвинутого уровня технического аналитика (1-е изд.). Санта-Барбара, Калифорния: Rocky Nook. ISBN 9781933952246.
- ^ а б в г Хасс, Энн Метте Йонассен (2008). Руководство по расширенному тестированию программного обеспечения . Бостон: Artech House. С. 179–186. ISBN 978-1596932869.
- ^ а б Грохтманн, Матиас; Гримм, Клаус (1993). «Деревья классификации для тестирования разделов». Тестирование, проверка и надежность программного обеспечения . 3 (2): 63–82. DOI : 10.1002 / stvr.4370030203 .
- ^ а б в г Кун, Д. Ричард; Kacker, Raghu N .; Лей, Ю (2013). Введение в комбинаторное тестирование . Crc Pr Inc., стр. 76–81. ISBN 978-1466552296.
- ^ а б Генри, Пьер (2008). Сеть тестирования - это комплексный подход к тестовой деятельности в крупных программных проектах . Берлин: Springer. п. 87. ISBN 978-3-540-78504-0.
- ^ а б в г Грохтманн, Матиас; Вегенер, Иоахим (1995). «Разработка тестовых примеров с использованием деревьев классификации и CTE редактора дерева классификации» (PDF) . Материалы 8-й Международной недели качества программного обеспечения (QW '95), Сан-Франциско, США . Архивировано из оригинального (PDF) 24 сентября 2015 года . Проверено 12 августа 2013 .
- ^ Остранд, TJ; Бальцер, MJ (1988). «Метод категориального разбиения для определения и генерации функциональных тестов». Коммуникации ACM . 31 (6): 676–686. DOI : 10.1145 / 62959.62964 .
- ^ а б Конрад, Мирко; Крупп, Александр (1 октября 2006 г.). «Расширение метода дерева классификации для встроенных систем для описания событий» . Электронные заметки по теоретической информатике . 164 (4): 3–11. DOI : 10.1016 / j.entcs.2006.09.002 .
- ^ а б в Леманн, Эккард; Вегенер, Иоахим (2000). «Разработка тестовых примеров с помощью CTE XL» (PDF) . Материалы 8-й Европейской международной конференции по тестированию, анализу и обзору программного обеспечения (EuroSTAR 2000) . Архивировано из оригинального (PDF) 04 марта 2016 года . Проверено 12 августа 2013 .
- ^ а б в г Круз, Питер М .; Луняк, Магдалена (декабрь 2010 г.). «Автоматизированная генерация тестовых примеров с использованием деревьев классификации». Профессиональное качество программного обеспечения . 13 (1): 4–12.
- ^ Franke M, Gerke D, Hans C. und andere. Создание тестовых примеров на основе методов для проверки функциональной системы. Труды АТОС. Делфт. 2012. С.36-44.
- ^ а б в Круз, Питер М .; Вегенер, Иоахим (апрель 2012 г.). Генерация тестовой последовательности из деревьев классификации . Тестирование программного обеспечения, проверка и проверки (ИККТ), 2012 IEEE Пятой Международной конференции по . С. 539–548. DOI : 10.1109 / ICST.2012.139 . ISBN 978-0-7695-4670-4.
- ^ а б в Круз, Питер М .; Бауэр, Юрген; Вегенер, Иоахим (апрель 2012 г.). Численные ограничения для тестирования комбинаторного взаимодействия . Тестирование программного обеспечения, проверка и проверки (ИККТ), 2012 IEEE Пятой Международной конференции по . С. 758–763. DOI : 10.1109 / ICST.2012.170 . ISBN 978-0-7695-4670-4.
- ^ а б в Международный, SAE (2004). От автомобильной электроники к цифровой мобильности: конвергенция следующего поколения; материалы Международного конгресса по транспортной электронике 2004 г., Конвергенция 2004 г., [Центр Кобо, Детройт, Мичиган, США, 18–20 октября 2004 г.] . Варрендейл, Пенсильвания: Общество автомобильных инженеров. С. 305–306. ISBN 978-0768015430.
- ^ а б в [отредактировал] Гомеш, Луис; Фернандес, Жоао М. (2010). Поведенческое моделирование для встраиваемых систем и технологий, приложений для проектирования и внедрения . Херши, Пенсильвания: Справочник по информационным наукам. п. 386. ISBN. 978-1605667515.CS1 maint: дополнительный текст: список авторов ( ссылка )
- ^ а б в [под редакцией] Зандер, Юстина; Шифердекер, Ина; Мостерман, Питер Дж. (15 сентября 2011 г.). Тестирование встраиваемых систем на основе моделей . Бока-Ратон: CRC Press. п. 10. ISBN 978-1439818459.CS1 maint: дополнительный текст: список авторов ( ссылка )
- ^ а б в [отредактировал] Rech, Jörg; Бунс, Кристиан (2009). Разработка программного обеспечения на основе моделей с обеспечением качества . Херши: Справочник по информатике. п. 101. ISBN 978-1605660073.CS1 maint: дополнительный текст: список авторов ( ссылка )
- ^ а б Олейничак, Роберт (2008). Систематизация функций Тестирование электронного программного обеспечения (PDF) . Докторская диссертация: Мюнхенский технический университет. С. 61–63. Архивировано из оригинального (PDF) 6 марта 2016 года . Проверено 10 октября 2013 года .
- ^ Каин, Андрей; Чен, Цун Юэ; Грант, Дуг; Пун, Пак-Лок; Тан, Сау-Фун; Це, TH (2004). Система автоматической генерации тестовых данных на основе методологии интегрированного дерева классификации . Первая международная конференция, SERA 2003, Сан-Франциско, Калифорния, США, 25–27 июня 2003 г., Избранные исправленные статьи . Конспект лекций по информатике. 3026 . С. 225–238 . DOI : 10.1007 / 978-3-540-24675-6_18 . ЛВП : 10722/43692 . ISBN 978-3-540-21975-0. Проверено 10 октября 2013 года .
- ^ Franke, M .; Герке, Д .; Hans, C; и другие: Создание контрольных примеров на основе методов для проверки функциональных систем, Симпозиум по воздушному транспорту и эксплуатации 2012 г .; с.354-365. Труды АТОС. Делфт 2012.
- ^ Бернер и Маттнер. «Пресс-релиз: реализация тестового примера с помощью TESTONA 4.3» .
- ^ Chen, TY; Пун, П.-Л. (1996). Таблица классификации-иерархии: методика построения дерева классификации . Australian Engineering Conference Software, 1996. Труды 1996 . С. 93–104. DOI : 10,1109 / ASWEC.1996.534127 . ISBN 978-0-8186-7635-2.
Внешние ссылки
- Систематическое тестирование