Метод дерева классификации
Метод дерева классификации – это метод проектирования тестов, [1] поскольку он используется в различных областях разработки программного обеспечения . [2] Он был разработан Гриммом и Грохтманном в 1993 году. [3] Деревья классификации с точки зрения метода дерева классификации не следует путать с деревьями решений .
Метод дерева классификации состоит из двух основных этапов: [4] [5]
- Идентификация важных для теста аспектов (так называемых классификаций ) и соответствующих им значений (называемых классами ), а также
- Объединение разных классов из всех классификаций в тестовые примеры .
Идентификация аспектов, имеющих отношение к тестированию, обычно следует (функциональной) спецификации (например, требованиям , вариантам использования …) тестируемой системы . Эти аспекты формируют пространство входных и выходных данных тестируемого объекта.
Второй этап проектирования тестов следует принципам комбинаторного проектирования тестов. [4]
Хотя этот метод можно применять с помощью ручки и бумаги, обычный способ предполагает использование редактора дерева классификации — программного инструмента, реализующего метод дерева классификации. [6]
Приложение
[ редактировать ]Предпосылкой применения метода дерева классификации (КТМ) является выбор (или определение) тестируемой системы .CTM — это метод тестирования «черного ящика» , который поддерживает любой тип тестируемой системы. Сюда входят (но не ограничиваются) аппаратные системы , интегрированные аппаратно-программные системы, простые программные системы , включая встроенное программное обеспечение , пользовательские интерфейсы , операционные системы , анализаторы и другие (или подсистемы упомянутых систем).
При выборе тестируемой системы первым шагом метода дерева классификации является идентификация аспектов, имеющих отношение к тестированию. [4] Любую тестируемую систему можно описать набором классификаций, содержащих как входные, так и выходные параметры. (Входные параметры также могут включать состояния среды , предварительные условия и другие, довольно необычные параметры). [2] Каждая классификация может иметь любое количество непересекающихся классов, описывающих появление параметра.Выбор классов обычно следует принципу разделения эквивалентности для абстрактных тестовых случаев и анализа граничных значений для конкретных тестовых примеров. [5] Вместе все классификации образуют дерево классификации. По семантической цели классификации могут быть сгруппированы в композиции .
Максимальное количество тестовых случаев представляет собой декартово произведение всех классов всех классификаций в дереве, что быстро приводит к большому количеству реалистичных тестовых задач.Минимальное количество тестовых примеров — это количество классов в классификации с наибольшим количеством содержащихся классов.
На втором этапе тестовые примеры составляются путем выбора ровно одного класса из каждой классификации дерева классификации. Выбор тест-кейсов изначально [3] Это была ручная задача, которую должен был выполнить инженер-испытатель .
Пример
[ редактировать ]Для системы базы данных необходимо выполнить проектирование тестирования. Применяя метод дерева классификации, идентификация аспектов, имеющих отношение к тестированию, дает классификации: привилегии пользователя , операция и метод доступа .Для привилегий пользователя можно выделить два класса: обычный пользователь и пользователь-администратор .Существует три операции : Add , Edit и Delete .Для метода доступа снова идентифицируются три класса: Native Tool , Web Browser , 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 позволяет моделировать иерархические уточнения в дереве классификации, также называемые неявными зависимостями .
- Поддержка инструментов : инструмент, представленный Острандом и Бальцером, поддерживал только создание тестовых примеров, но не само разбиение.
- Грохтманн и Вегенер представили свой инструмент — редактор дерева классификации (CTE), который поддерживает как секционирование, так и создание тестовых примеров. [6]
Метод дерева классификации для встраиваемых систем
[ редактировать ]Метод дерева классификации изначально предназначался для разработки и спецификации абстрактных тестовых примеров. С помощью метода дерева классификации для встроенных систем [8] Также может быть выполнена тестовая реализация. В метод интегрировано несколько дополнительных функций:
- Помимо атомарных тестовых случаев, можно указать тестовые последовательности, содержащие несколько этапов тестирования.
- Конкретное время (например, в секундах, минутах...) может быть указано для каждого этапа тестирования.
- переходы сигналов (например, линейные , сплайновые , синусоидальные ...) между выбранными классами различных этапов испытаний. Можно указать
- Различие между событием и состоянием можно смоделировать, представляя различные визуальные метки в тесте.
модульного и модульного тестирования Инструмент Tessy использует это расширение.
Правила зависимостей и автоматическая генерация тестовых примеров
[ редактировать ]Одним из способов моделирования ограничений является использование механизма уточнения в методе дерева классификации. Однако это не позволяет моделировать ограничения между классами разных классификаций. Леманн и Вегенер представили правила зависимостей, основанные на логических выражениях , в их воплощении CTE. [9] Дополнительные функции включают автоматическое создание наборов тестов с использованием комбинаторного проектирования тестов (например, тестирование всех пар ).
Генерация приоритетных тестовых примеров
[ редактировать ]Недавние усовершенствования метода дерева классификации включают создание приоритетных тестовых примеров : элементам дерева классификации можно присвоить веса с точки зрения возникновения и вероятности ошибки или риска. Эти веса затем используются во время создания тестовых примеров для определения приоритета тестовых примеров. [10] [11] статистические испытания Также доступны (например, испытания на износ и усталость ) путем интерпретации весов элементов как дискретного распределения вероятностей .
Генерация тестовой последовательности
[ редактировать ]При добавлении допустимых переходов между отдельными классами классификации классификации можно интерпретировать как конечный автомат , а, следовательно, и все дерево классификации как диаграмму состояний . Это определяет разрешенный порядок использования классов на этапах тестирования и позволяет автоматически создавать тестовые последовательности. [12] Доступны различные уровни покрытия, такие как покрытие состояний , покрытие переходов и покрытие пар состояний и пар переходов.
Числовые ограничения
[ редактировать ]В дополнение к логическим правилам зависимостей, относящимся к классам дерева классификации, числовые ограничения позволяют указывать формулы с классификациями в качестве переменных, которые будут оценивать выбранный класс в тестовом примере. [13]
Редактор дерева классификации
[ редактировать ]Редактор дерева классификации (CTE) — это программный инструмент для разработки тестов, реализующий метод дерева классификации. [14] [15] [16] [17]
Со временем появилось несколько редакций инструмента CTE, написанных на нескольких (к тому времени популярных) языках программирования и разработанных несколькими компаниями.
КТР 1
[ редактировать ]Оригинальная версия CTE была разработана в компании Daimler-Benz Industrial Research. [6] [16] объекты в Берлине. Он появился в 1993 году и был написан на языке Паскаля . Он был доступен только в Unix системах .
КТР 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 году. Обратите внимание на таблицу версий ниже.
КТР 4
[ редактировать ]CTE 4 был реализован в TESSY 4.1.7 как плагин Eclipse в 2018 году. Последняя версия CTE 4 все еще разрабатывается как часть TESSY 4.3 в 2021 году.
КТЕ 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 Профессиональный
[ редактировать ]Начиная с 2010 года CTE XL Professional разрабатывается компанией Berner&Mattner. [10] Была выполнена полная повторная реализация, снова с использованием Java , но на этот раз на основе Eclipse . CTE XL Professional был доступен в системах Win32 и Win64 .
Новые разработки включали:
- Генерация приоритетных тестовых примеров: элементам дерева классификации можно присвоить веса с точки зрения возникновения и вероятности ошибки или риска. Эти веса затем используются во время создания тестовых примеров для определения приоритета тестовых примеров. [10] [20] на основе рисков и статистическое тестирование. Также доступно тестирование
- Генерация тестовой последовательности [12] с использованием мультиагентных систем
- Числовые ограничения [13]
ТЕСТОНА
[ редактировать ]В 2014 году Berner&Mattner начала выпуск своего редактора дерева классификации под торговой маркой TESTONA .
Бесплатная версия TESTONA по-прежнему доступна для бесплатного скачивания, однако с ограниченной функциональностью.
Версии
[ редактировать ]Версия | Дата | Комментарий | Написано в | ТЫ |
---|---|---|---|---|
КТР 1.0 | 1993 | Оригинальная версия, [6] [16] ограничено 1000 тестовых случаев (исправление!) | Паскаль | Юникс |
КТР 2.0 | 1998 | Версия для Windows, [15] неограниченное количество тестовых случаев | С ++ | Win32 |
КТР 2.1 | 2003 | Встроенная системная версия Razorcats, входящая в состав инструмента TESSY . | С++ | Win32 |
КТЕ XL 1.0 | 2000 | Правила зависимостей, создание тестовых примеров [9] [14] [17] | Ява | Win32 |
КТЕ XL 1,6 | 2006 | Последняя версия от Daimler-Benz [18] | Ява | Win32 |
КТР XL 1,8 | 2008 | Разработка Berner&Mattner | Ява | Win32 |
КТР XL 1,9 | 2009 | Последняя версия только для Java | Ява | Win32 |
CTE XL Профессионал 2.1 | 2011-02-21 | Первая версия на основе Eclipse , генерация приоритетных тестовых примеров, [10] Генерация детерминированных тестовых примеров, отслеживание требований с помощью DOORS | Ява 6 , Затмение 3.5 | Win32 |
CTE XL Профессионал 2.3 | 2011-08-02 | Интеграция QualityCenter , анализ покрытия требований и матрица прослеживаемости , API | Ява 6, Затмение 3.6 | Win32 |
CTE XL Профессионал 2.5 | 2011-11-11 | Аннотация результатов теста, MindMap импорт | Ява 6, Затмение 3.6 | вин32, вин64 |
CTE XL Профессионал 2.7 | 2012-01-30 | Выпуск с исправлением ошибок | Ява 6, Затмение 3.6 | вин32, вин64 |
CTE XL Профессионал 2.9 | 2012-06-08 | Режим неявной маркировки, классы по умолчанию, интерфейс командной строки | Ява 6, Затмение 3.7 | вин32, вин64 |
CTE XL Профессионал 3.1 | 2012-10-19 | Последующая оценка тестирования (например, для анализа первопричин ), создание последовательности тестирования, [12] Числовые ограничения [13] | Ява 6, Затмение 3.7 | вин32, вин64 |
CTE XL Профессионал 3.3 | 2013-05-28 | Анализ тестового покрытия, управление вариантами (например, как часть разработки семейства продуктов ), тестирование классов эквивалентности | Ява 6, Затмение 3.7 | вин32, вин64 |
CTE XL Профессионал 3.5 | 2013-12-18 | Мастер анализа граничных значений, импорт AUTOSAR и MATLAB моделей | Ява 7 , Затмение 3.8 | вин32, вин64 |
ТЕСТОНА 4.1 | 2014-09-22 | Выпуск с исправлением ошибок | Ява 7, Затмение 3.8 | вин32, вин64 |
ТЕСТОНА 4.3 | 2015-07-08 | Генерация исполняемых тестовых сценариев ( генерация кода ), импорт результатов тестов [21] | Ява 7, Затмение 3.8 | вин32, вин64 |
ТЕСТОНА 4.5 | 2016-01-21 | Расширенные возможности экспорта, графического интерфейса улучшения | Ява 7, Затмение 3.8 | вин32, вин64 |
ТЕСТОНА 5.1 | 2016-07-19 | Выпуск с исправлением ошибок, переход на Java 8 , Eclipse 4.5 | Ява 8 , Затмение 4.5 | вин32, вин64 |
КТЕ 4.0 | 2018-08-01 | Новая реализация Razorcat в виде плагина для инструмента TESSY 4.1 на базе Eclipse . Поддержка в создании тестовых случаев (на основе моделей). | Ява | Win32 Win64 |
Преимущества
[ редактировать ]- Графическое представление важных аспектов тестирования [2]
- Метод как для идентификации соответствующих аспектов тестирования, так и для их объединения в тестовые примеры. [4]
Ограничения
[ редактировать ]- Если разработка теста с использованием метода дерева классификации выполняется без надлежащей декомпозиции теста, деревья классификации могут стать большими и громоздкими.
- Новые пользователи склонны включать слишком много (особенно нерелевантных) аспектов тестирования, что приводит к слишком большому количеству тестовых примеров.
- Не существует алгоритма или строгих указаний по выбору важных аспектов теста. [22]
Ссылки
[ редактировать ]- ^ Бат, Грэм; Маккей, Джуди (2008). Справочник инженера по тестированию программного обеспечения: учебное пособие для получения сертификатов аналитика-тестировщика ISTQB и аналитика технического тестирования продвинутого уровня (1-е изд.). Санта-Барбара, Калифорния: Рокки Нук. ISBN 9781933952246 .
- ^ Перейти обратно: а б с д Хасс, Энн Метте Йонассен (2008). Руководство по расширенному тестированию программного обеспечения . Бостон: Артех Хаус. стр. 179–186. ISBN 978-1596932869 .
- ^ Перейти обратно: а б Грохтманн, Матиас; Гримм, Клаус (1993). «Деревья классификации для тестирования разделов». Тестирование, проверка и надежность программного обеспечения . 3 (2): 63–82. дои : 10.1002/stvr.4370030203 . S2CID 33987358 .
- ^ Перейти обратно: а б с д Кун, Д. Ричард; Какер, Рагху Н.; Лей, Ю (2013). Введение в комбинаторное тестирование . Crc Pr Inc. стр. 76–81. ISBN 978-1466552296 .
- ^ Перейти обратно: а б Генри, Пьер (2008). Сеть тестирования представляет собой комплексный подход к тестированию в крупных проектах разработки программного обеспечения . Берлин: Шпрингер. п. 87. ИСБН 978-3-540-78504-0 .
- ^ Перейти обратно: а б с д Грохтманн, Матиас; Вегенер, Иоахим (1995). «Разработка тестового примера с использованием деревьев классификации и редактора дерева классификации CTE» (PDF) . Материалы 8-й Международной недели качества программного обеспечения (QW '95), Сан-Франциско, США . Архивировано из оригинала (PDF) 24 сентября 2015 г. Проверено 12 августа 2013 г.
- ^ Остранд, Ти Джей; Бальсер, MJ (1988). «Метод категорийно-разделения для задания и генерации функциональных тестов» . Коммуникации АКМ . 31 (6): 676–686. дои : 10.1145/62959.62964 . S2CID 207647895 .
- ^ Перейти обратно: а б Конрад, Мирко; Крупп, Александр (1 октября 2006 г.). «Расширение метода дерева классификации для встраиваемых систем описания событий» . Электронные заметки по теоретической информатике . 164 (4): 3–11. дои : 10.1016/j.entcs.2006.09.002 .
- ^ Перейти обратно: а б с Леманн, Экард; Вегенер, Иоахим (2000). «Разработка тестового примера с помощью CTE XL» (PDF) . Материалы 8-й Европейской международной конференции по тестированию, анализу и обзору программного обеспечения (EuroSTAR 2000) . Архивировано из оригинала (PDF) 4 марта 2016 г. Проверено 12 августа 2013 г.
- ^ Перейти обратно: а б с д Крузе, Питер М.; Луниак, Магдалена (декабрь 2010 г.). «Автоматическая генерация тестовых примеров с использованием деревьев классификации». Профессионал качества программного обеспечения . 13 (1): 4–12.
- ^ Франке М., Герке Д., Ганс К. и другие. Генерация тестовых примеров на основе методов для функциональной проверки системы. Труды АТОС. Делфт. 2012. С.36-44.
- ^ Перейти обратно: а б с Крузе, Питер М.; Вегенер, Иоахим (апрель 2012 г.). «Генерация тестовых последовательностей из деревьев классификации». 2012 Пятая международная конференция IEEE по тестированию, верификации и валидации программного обеспечения . стр. 539–548. дои : 10.1109/ICST.2012.139 . ISBN 978-0-7695-4670-4 . S2CID 581740 .
- ^ Перейти обратно: а б с Крузе, Питер М.; Бауэр, Юрген; Вегенер, Иоахим (апрель 2012 г.). «Численные ограничения для тестирования комбинаторных взаимодействий». 2012 Пятая международная конференция IEEE по тестированию, верификации и валидации программного обеспечения . стр. 758–763. дои : 10.1109/ICST.2012.170 . ISBN 978-0-7695-4670-4 . S2CID 16683773 .
- ^ Перейти обратно: а б с Международный, SAE (2004). От автомобильной электроники к цифровой мобильности: следующее поколение конвергенции; материалы Международного конгресса по транспортной электронике 2004 г., Convergence 2004, [Центр Кобо, Детройт, Мичиган, США, 18–20 октября 2004 г.] . Уоррендейл, Пенсильвания: Общество инженеров автомобильной промышленности. стр. 305–306. ISBN 978-0768015430 .
- ^ Перейти обратно: а б с [под редакцией] Гомес, Луис; Фернандес, Жоао М. (2010). Поведенческое моделирование встроенных систем и технологий для проектирования и внедрения . Херши, Пенсильвания: Справочник по информатике. п. 386. ИСБН 978-1605667515 .
{{cite book}}
:|last=
имеет общее имя ( справка ) - ^ Перейти обратно: а б с [под редакцией] Зандер, Юстина; Шифердекер, Ина; Мостерман, Питер Дж. (15 сентября 2011 г.). Модельно-ориентированное тестирование встраиваемых систем . Бока-Ратон: CRC Press. п. 10. ISBN 978-1439818459 .
{{cite book}}
:|last=
имеет общее имя ( справка ) - ^ Перейти обратно: а б с [под редакцией] Рех, Йорг; Бунсе, Кристиан (2009). Разработка программного обеспечения на основе моделей с интеграцией обеспечения качества . Херши: Справочник по информатике. п. 101. ИСБН 978-1605660073 .
{{cite book}}
:|last=
имеет общее имя ( справка ) - ^ Перейти обратно: а б Олейничак, Роберт (2008). Систематизация функционального тестирования встроенного программного обеспечения (PDF) . Докторская диссертация: Технический университет Мюнхена. стр. 61–63. Архивировано из оригинала (PDF) 6 марта 2016 года . Проверено 10 октября 2013 г.
- ^ Каин, Эндрю; Чен, Цонг Юэ; Грант, Дуг; Пун, Пак-Лок; Тан, Сау-Фун; Це, TH (2004). «Система автоматической генерации тестовых данных на основе методологии интегрированного дерева классификации» . Исследования и приложения в области программной инженерии . Конспекты лекций по информатике. Том. 3026. С. 225–238 . дои : 10.1007/978-3-540-24675-6_18 . hdl : 10722/43692 . ISBN 978-3-540-21975-0 . Проверено 10 октября 2013 г.
- ^ Франке, М.; Герке, Д.; Ганс, К; и другие: «Генерация тестовых примеров на основе методов для проверки функциональной системы, симпозиум по воздушному транспорту и эксплуатации, 2012 г.»; стр.354-365. Труды АТОС. Делфт 2012.
- ^ Бернер и Маттнер. «Пресс-релиз: реализация тестового примера с помощью TESTONA 4.3» .
- ^ Чен, Тайвань; Пун, П.-Л. (1996). «Таблица классификационной иерархии: методология построения дерева классификации». Материалы Австралийской конференции по разработке программного обеспечения 1996 года . стр. 93–104. дои : 10.1109/ASWEC.1996.534127 . ISBN 978-0-8186-7635-2 . S2CID 6789744 .