Ағаштарды жіктеу әдісі - Classification Tree Method

The Ағаштарды жіктеу әдісі - тестілеуді жобалау әдісі,[1] сияқты әр түрлі салаларда қолданылады бағдарламалық жасақтама жасау.[2]Оны Гримм мен Грочтманн 1993 жылы жасаған.[3]Ағаштарды жіктеу әдісі бойынша жіктеу ағаштарымен шатастыруға болмайды шешім ағаштары.

Жіктеу ағашы әдісі екі маңызды қадамнан тұрады:[4][5]

  1. Тесттің маңызды аспектілерін анықтау (осылай аталады) жіктемелер) және олардың сәйкес мәндері (деп аталады сыныптар) Сонымен қатар
  2. Барлық классификациядан әр түрлі сыныптардың тіркесімі сынақ жағдайлары.

Тестке қатысты аспектілерді анықтау әдетте (функционалды) жүреді сипаттама (мысалы, талаптар, істерді қолдану ...) сыналатын жүйе. Бұл аспектілер тест объектісінің мәліметтер енгізу және шығару кеңістігін құрайды.

Сынақтарды жобалаудың екінші сатысы комбинаторлық сынақтарды жобалау принциптерін басшылыққа алады.[4]

Әдісті қалам мен қағаздың көмегімен қолдануға болады, ал әдеттегі әдіс-тәсілін қолдануды білдіреді Ағаш жіктеу редакторы, жіктеу ағаш әдісін іске асыратын бағдарламалық құрал.[6]

Қолдану

Жіктеу ағаш әдісін (CTM) қолдану үшін алғышарттар а таңдау (немесе анықтау) болып табылады сыналатын жүйе.CTM а қара жәшікті тестілеу әдісі және кез-келген типтегі жүйені қолдайды. Бұған кіреді (бірақ онымен шектелмейді) аппараттық жүйелер, қарапайым аппараттық-бағдарламалық жүйелер бағдарламалық қамтамасыз ету жүйелері, оның ішінде енгізілген бағдарламалық жасақтама, пайдаланушы интерфейстері, операциялық жүйелер, талдаушылар, және басқалары (немесе ішкі жүйелер аталған жүйелер).

Сыналатын таңдалған жүйемен жіктеу ағашының әдісінің бірінші сатысы тесттің маңызды аспектілерін анықтау болып табылады.[4]Сыналатын кез-келген жүйені кіріс және шығыс параметрлеріне ие классификация жиынтығымен сипаттауға болады. (Кіріс параметрлері де қамтуы мүмкін қоршаған орта мемлекеттер, алдын-ала шарттар және басқа, сирек кездесетін параметрлер).[2] Әрбір жіктеуде параметрдің пайда болуын сипаттайтын, бөлінген сыныптардың кез-келген саны болуы мүмкін. эквиваленттік бөлу абстрактілі тест жағдайлары үшін және шекаралық-талдау нақты сынақ жағдайлары үшін.[5]Барлық жіктемелер бірге классификация ағашын құрайды. Семантикалық мақсат үшін классификацияларды топтастыруға болады шығармалар.

Сынақ жағдайларының максималды саны - бұл Декарттық өнім ағаштағы барлық классификациялардың барлық сыныптарының, тез арада шынайы тест тапсырмаларының көп мөлшерін тудырады.Сынақ жағдайларының минималды саны - құрамында ең көп құрамы бар классификациядағы сыныптардың саны.

Екінші қадамда тест жағдайлары жіктеу ағашының әр классификациясынан бір классты таңдау арқылы жасалады. Бастапқыда тестілік жағдайларды таңдау[3] орындау керек қолмен тапсырма болды инженер-сынақшы.

Мысал

Мәліметтер қоры жүйесіне арналған жіктеу ағашы

Үшін мәліметтер базасы жүйесі, сынақ дизайны орындалуы керек. Жіктеу ағашының әдісін қолдана отырып, тесттің маңызды аспектілерін анықтау жіктемелер береді: Пайдаланушының артықшылығы, Пайдалану және Кіру әдісі.Үшін Пайдаланушының артықшылығыs, екі классты анықтауға болады: Тұрақты қолданушы және Әкімші пайдаланушысы.Үшеу бар Пайдаланус: Қосу, Өңдеу және Жою.Үшін Кіру әдісі, тағы үш класс анықталды: Жергілікті құрал, Веб-шолғыш, API мәтіндері Веб-шолғыш сынып әрі қарай тест аспектісімен жетілдіріледі Бренд, үш мүмкін сынып осында қамтылған: Internet Explorer, Mozilla Firefox, және Apple Safari.

Ағаш классификациясының бірінші қадамы аяқталды. Әрине, тестілеудің келесі мүмкін аспектілері бар, мысалы. қосылыстың жылдамдығы, саны мәліметтер базасының жазбалары мәліметтер базасында және т.б. бар. Ағаш тұрғысынан графикалық көріністі қолдана отырып, таңдалған аспектілерді және оларға сәйкес мәндерді тез қарап шығуға болады.

Статистика үшін барлығы 30 сынақ жағдайы болуы мүмкін (2 артықшылық * 3 операция * 5 қол жеткізу әдісі). Минималды қамту үшін 5 тест жағдайы жеткілікті, өйткені 5 қол жеткізу әдісі бар (және қол жеткізу әдісі - бұл ең көп бөлінген сыныптардың жіктемесі).

Екінші кезеңде қолмен үш тестілік жағдай таңдалды:

  1. Кәдімгі пайдаланушы жергілікті құралдың көмегімен мәліметтер қорына жаңа мәліметтер жиынын қосады.
  2. Әкімші пайдаланушысы Firefox браузері арқылы бар деректер жиынтығын өңдейді.
  3. Кәдімгі пайдаланушы деректер жиынтығын API көмегімен дерекқордан жояды.

Жақсартулар

Фон

CTM келесі артықшылықтарды ұсынды[2] Санатты бөлу әдісі бойынша[7] (CPM) Ostrand and Balcer:

  • Ескерту: CPM тек мәтіндік жазбаға ие болды, ал CTM графикалық, ағаш тәрізді көріністі қолданады.
  • Нақтылау Бір өкілді таңдау басқа өкілдердің пайда болуына әсер етуі мүмкін.
CPM тек осы сценарийді өңдеу үшін шектеулер ұсынады.
CTM классификация ағашындағы иерархиялық нақтылауды модельдеуге мүмкіндік береді айқын емес тәуелділіктер.
  • Құралды қолдау: Ostrand және Balcer ұсынған құрал тек тестілеу жағдайларын құруды қолдады, бірақ бөлудің өзі емес.
Грочтманн мен Вегенер өзінің құралын ұсынды Ағаш жіктеу редакторы (CTE), бұл бөлуді де, сынақ жағдайын құруды да қолдайды.[6]
Кіріктірілген жүйеге арналған жіктеу ағашы, мысалы, нақты мәндер, нақты уақыт, (әр түрлі) ауысулар және мемлекеттер мен әрекеттерді ажыратады

Кіріктірілген жүйелерге арналған классификациялық ағаш әдісі

Ағаш классификациясы әдісі алдымен абстрактілі тестілік жағдайларды құрастыруға және нақтылауға арналған. Кіріктірілген жүйелерге арналған классификация ағашының әдісімен,[8] тестілеуді жүзеге асыруға болады. Бірнеше қосымша функциялар әдіспен біріктірілген:

  1. Атомдық сынаулардан басқа, бірнеше сынақ кезеңдерін қамтитын сынау кезектері көрсетілуі мүмкін.
  2. Әр сынақ қадамы үшін нақты уақытты (мысалы, секундтарда, минуттарда ...) көрсетуге болады.
  3. Сигналдық ауысулар (мысалы, сызықтық, сплайн, синус ...) әр түрлі тестілік қадамдардың таңдалған кластары арасында көрсетуге болады.
  4. Арасындағы айырмашылық іс-шара және мемлекет тестілеуде әртүрлі визуалды белгілермен бейнеленетін модельдеуге болады.

Модуль және блокты сынау құрал Тесси осы кеңейтуге сүйенеді.

Тәуелділік ережелері және автоматтандырылған сынақ жағдайын құру

Шектеулерді модельдеудің бір әдісі - классификация ағашы әдісінде нақтылау механизмін қолдану. Алайда бұл модельдеуге мүмкіндік бермейді шектеулер әр түрлі классификациядағы сыныптар арасында. Леманн мен Вегенер тәуелділік ережелерін негізге алды Логикалық өрнектер олардың CTE-ге енуімен.[9] Бұдан әрі функцияларға автоматтандырылған генерация кіреді люкс бөлмелер комбинациялық сынақ дизайнын қолдану (мысалы, барлық жұптық тестілеу ).

Басымдыққа ие сынақ ісін құру

Жіктеу ағашының әдісі жақында жақсартылған сынақ жағдайларын құруға басымдық берілген: Жіктеу ағашының элементтеріне пайда болу және қателік бойынша салмақ бөлуге болады ықтималдық немесе тәуекел. Содан кейін бұл салмақтар тестілік жағдайларды жасау кезінде тестілік жағдайларға басымдық беру үшін қолданылады.[10][11] Статистикалық тестілеу қол жетімді (мысалы: үшін кию және шаршау тесттер) элементтің салмағын а деп түсіндіру арқылы ықтималдықтың дискретті үлестірілуі.

Тест ретін құру

Жіктеудің жеке сыныптары арасындағы жарамды өтулерді қосқанда, жіктемелерді а деп түсіндіруге болады мемлекеттік машина, демек, а ретінде бүкіл классификация ағашы Статехарт. Бұл тестілеу кезеңдерінде сыныпты қолдануға рұқсат етілген тәртіпті анықтайды және тестілік тізбектерді автоматты түрде құруға мүмкіндік береді.[12] Сияқты әр түрлі қамту деңгейлері бар мемлекеттік қамту, күйлер мен өтпелі жұптарды қамту және өтпелі кезеңдер.

Сандық шектеулер

Жіктеу ағашының сыныптарына қатысты логикалық тәуелділік ережелерінен басқа, Сандық шектеулер анықтауға мүмкіндік береді формулалар тестілік жағдайда таңдалған сыныпқа баға беретін айнымалы ретінде жіктелулерімен.[13]

Ағаш жіктеу редакторы

The Ағаш жіктеу редакторы (CTE) - тестілеу дизайнына арналған бағдарламалық құрал, ол классификация ағашының әдісін жүзеге асырады.[14][15][16][17]

Уақыт өте келе CTE құралының бірнеше басылымдары пайда болды, олар бірнеше жазылған (сол кезге дейін танымал) бағдарламалау тілдері және бірнеше компаниялар әзірлеген.

CTE 1

CTE-дің түпнұсқасы әзірленген Daimler-Benz Өнеркәсіптік зерттеулер[6][16] Берлиндеги нысандар. Ол 1993 жылы пайда болды және жазылған Паскаль. Ол тек қол жетімді болды Unix жүйелер.

CTE 2

1997 жылы CTE 2-ге әкеліп соқтырған үлкен қайта құру жүргізілді, қайтадан Daimler-Benz Industrial Research компаниясында дамыды. Бұл жазылған C және қол жетімді win32 жүйелер.

Кейінірек CTE 2 Razorcat-ке модульге қосылуға және блокты сынау құрал Тесси.Кіріктірілген жүйелерге арналған классификациялық ағаш редакторы[8][15] осы басылымға негізделген.

CTE XL

2000 жылы Леманн мен Вегенер тәуелділік ережелерін өздерінің CTE, CTE XL (eXtended Logics) бейнелерімен енгізді.[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 бірақ бұл жолы Тұтылу - негізделген. CTE XL Professional win32 және win64 жүйелер.

Жаңа әзірлемелер кірді:

  • Сынақ жағдайын жасаудың басымдығы: жіктеу ағашының элементтеріне пайда болуы мен қателігі бойынша салмақ бөлуге болады ықтималдық немесе тәуекел. Содан кейін бұл салмақтар тестілік жағдайларды жасау кезінде тестілік жағдайларға басымдық беру үшін қолданылады.[10][20] Тәуекелге негізделген және статистикалық тестілеу де қол жетімді.
  • Тест ретін құру[12] қолдану Көп агенттік жүйелер
  • Сандық шектеулер[13]

ТЕСТОНА

2014 жылы Berner & Mattner өзінің классификациялық ағаш редакторын шығаруды бастады бренд аты ТЕСТОНА.

A TESTONA тегін шығарылымы жүктеу үшін әлі де қол жетімді, дегенмен функционалдығы төмендейді.

Нұсқалар

НұсқаКүніТүсініктемеЖазылғанОЖ
CTE 1.01993Түпнұсқа нұсқасы,[6][16] 1000 сынақ жағдайымен шектелген (түзетіңіз!)ПаскальUnix
CTE 2.01998Windows нұсқасы,[15] тестілік жағдайлардың шектеусіз саныCUnix, win32
CTE XL 1.02000Тәуелділік ережелері, сынақ жағдайын құру[9][14][17]Javawin32
CTE XL 1.62006Daimler-Benz соңғы нұсқасы[18]Javawin32
CTE XL 1.82008Бернер мен Маттнердің әзірлемесіJavawin32
CTE XL 1.92009Тек Java үшін соңғы нұсқаJavawin32
CTE XL Professional 2.12011-02-21Біріншіден Тұтылу негізделген нұсқа, басымдыққа ие сынақ ісін құру,[10] Детерминистік Сынақ ісін құру, Қойылатын талаптар бірге ЕСІКТЕРJava 6, Тұтылу 3.5win32
CTE XL Professional 2.32011-08-02QualityCenter интеграция, Талаптарды қамтуды талдау және Бақылауға болатын матрица, APIJava 6, Eclipse 3.6win32
CTE XL Professional 2.52011-11-11Тест нәтижесінің аннотациясы, Ақыл картасы импортJava 6, Eclipse 3.6win32, win64
CTE XL Professional 2.72012-01-30Қателерді түзетуJava 6, Eclipse 3.6win32, win64
CTE XL Professional 2.92012-06-08Белгісіз режим, стандартты сыныптар, Командалық интерфейсJava 6, Eclipse 3.7win32, win64
CTE XL Professional 3.12012-10-19Тесттен кейінгі бағалау (мысалы. Үшін) Түбірлік себептерді талдау ), Тест ретін құру,[12] Сандық шектеулер[13]Java 6, Eclipse 3.7win32, win64
CTE XL Professional 3.32013-05-28Сынақты қамтуды талдау, вариантты басқару (мысалы, бөлігі ретінде) Өнім отбасылық инженерия ), Эквиваленттік сыныпты тестілеуJava 6, Eclipse 3.7win32, win64
CTE XL Professional 3.52013-12-18Шектік құндылықтарды талдау шебері, импорты AUTOSAR және MATLAB модельдерJava 7, Eclipse 3.8win32, win64
TESTONA 4.12014-09-22Қателерді түзетуJava 7, Eclipse 3.8win32, win64
TESTONA 4.32015-07-08Орындалатын буын Тест сценарийлері (Кодты құру ), Тест нәтижелерінің импорты[21]Java 7, Eclipse 3.8win32, win64
TESTONA 4.52016-01-21Кеңейтілген экспорттық мүмкіндіктер, GUI ЖақсартуларJava 7, Eclipse 3.8win32, win64
TESTONA 5.12016-07-19Қателерді түзету, ауысу Java 8, Eclipse 4.5Java 8, Eclipse 4.5win32, win64

Артықшылықтары

  • Тесттің маңызды аспектілерін графикалық түрде көрсету[2]
  • Тесттің сәйкес аспектілерін анықтау әдісі және оларды тестілік жағдайларда біріктіру[4]

Шектеулер

  • Жіктеу ағашының әдісімен тестілеуді тиісті сыну ыдыратусыз жүргізгенде, жіктеу ағаштары үлкен және ауыр бола алады.
  • Жаңа қолданушылар тестілік аспектілерді тым көп енгізуге бейім (мысалы, маңызды емес), сондықтан тестілік жағдайлар тым көп.
  • Тестке қатысты аспектілерді таңдау үшін алгоритм немесе қатаң нұсқаулық жоқ.[22]

Әдебиеттер тізімі

  1. ^ Бат, Грэм; МакКей, Джуди (2008). Бағдарламалық жасақтаманы тестілеу инженері үшін нұсқаулық: ISTQB сынақ талдаушысы және жоғары деңгейлі техникалық талдаушыға арналған оқу нұсқаулығы (1-ші басылым). Санта-Барбара, Калифорния: Рокки Нук. ISBN  9781933952246.
  2. ^ а б в г. Хасс, Энн Метте Джонассен (2008). Бағдарламалық жасақтаманы кеңейтілген тестілеуге арналған нұсқаулық. Бостон: Artech House. 179–186 бб. ISBN  978-1596932869.
  3. ^ а б Грохтманн, Матиас; Гримм, Клаус (1993). «Бөлімдерді сынауға арналған классификациялық ағаштар». Бағдарламалық жасақтаманы тексеру, тексеру және сенімділік. 3 (2): 63–82. дои:10.1002 / stvr.4370030203.
  4. ^ а б в г. Кун, Д.Ричард; Каккер, Рагу Н .; Лей, Ю (2013). Комбинаторлық тестілеуге кіріспе. Crc Pr Inc. 76–81 бет. ISBN  978-1466552296.
  5. ^ а б Генри, Пьер (2008). Тестілеу желісі ірі бағдарламалық жасақтама жобаларындағы сынақ әрекеттері үшін интегралды тәсіл. Берлин: Шпрингер. б. 87. ISBN  978-3-540-78504-0.
  6. ^ а б в г. Грохтманн, Матиас; Вегенер, Йоахим (1995). «Жіктеу ағаштарын және CTE классификациясы-ағаш редакторын қолдана отырып тестілік жағдайды жобалау» (PDF). Бағдарламалық жасақтама сапасының 8-ші халықаралық аптасы (QW '95), Сан-Франциско, АҚШ. Архивтелген түпнұсқа (PDF) 2015-09-24. Алынған 2013-08-12.
  7. ^ Остранд, Т. Дж .; Balcer, J. J. (1988). «Функционалдық тесттерді анықтауға және генерациялауға арналған категория-бөлім әдісі». ACM байланысы. 31 (6): 676–686. дои:10.1145/62959.62964.
  8. ^ а б Конрад, Мирко; Крупп, Александр (1 қазан 2006). «Оқиғаларды сипаттауға арналған кіріктірілген жүйелерге арналған классификациялық-ағаш әдісін кеңейту». Теориялық информатикадағы электрондық жазбалар. 164 (4): 3–11. дои:10.1016 / j.entcs.2006.09.002.
  9. ^ а б в Леман, Эккард; Вегенер, Йоахим (2000). «CTE XL құралдары бойынша сынақ корпусының дизайны» (PDF). Бағдарламалық жасақтаманы тестілеу, талдау және шолу бойынша 8-ші Еуропалық халықаралық конференция материалдары (EuroSTAR 2000). Архивтелген түпнұсқа (PDF) 2016-03-04. Алынған 2013-08-12.
  10. ^ а б в г. Крусе, Питер М .; Луниак, Магдалена (желтоқсан 2010). «Жіктеу ағаштарын қолданатын автоматтандырылған сынақ жағдайларын құру». Бағдарламалық жасақтама сапасы. 13 (1): 4–12.
  11. ^ Franke M, Gerke D, Hans C. und andere. Функционалды жүйені тексеру үшін әдіс-тәсілмен басқарылатын сынақ жағдайларын құру. Іс жүргізу ATOS. Delft. 2012. Б.36-44.
  12. ^ а б в Крусе, Питер М .; Вегенер, Йоахим (сәуір 2012). Жіктеу ағаштарынан сынақ ретін құру. Бағдарламалық жасақтаманы тестілеу, растау және растау (ICST), 2012 IEEE Бесінші Халықаралық конференциясы. 539–548 беттер. дои:10.1109 / ICST.2012.139. ISBN  978-0-7695-4670-4.
  13. ^ а б в Крусе, Питер М .; Бауэр, Юрген; Вегенер, Йоахим (сәуір 2012). Комбинаторлық өзара әрекеттесуді сынауға арналған сандық шектеулер. Бағдарламалық жасақтаманы сынау, растау және растау (ICST), 2012 IEEE Бесінші Халықаралық конференциясы. 758–763 бб. дои:10.1109 / ICST.2012.170. ISBN  978-0-7695-4670-4.
  14. ^ а б в Халықаралық, SAE (2004). Көлік электроникасы сандық ұтқырлыққа: конвергенцияның келесі буыны; 2004 жылғы көлік электроникасы бойынша халықаралық конгресстің материалдары, конвергенция, 2004, [Кобо орталығы, Детройт, Мичиган, АҚШ, 2004 ж. 18 - 20 қазан]. Warrendale, Pa: Автокөлік инженерлері қоғамы. 305–306 бет. ISBN  978-0768015430.
  15. ^ а б в [редакциялаған] Гомеш, Луис; Фернандес, Джоа М. (2010). Жобалау және енгізу үшін енгізілген жүйелер мен технологияларды қолдану үшін мінез-құлықты модельдеу. Херши, Пенсильвания: Ақпараттық ғылымға сілтеме. б. 386. ISBN  978-1605667515.CS1 maint: қосымша мәтін: авторлар тізімі (сілтеме)
  16. ^ а б в [өңдеген] Цандер, Джустына; Шефердекер, Ина; Мосттерман, Питер Дж. (2011-09-15). Кіріктірілген жүйелер үшін модельге негізделген тестілеу. Boca Raton: CRC Press. б. 10. ISBN  978-1439818459.CS1 maint: қосымша мәтін: авторлар тізімі (сілтеме)
  17. ^ а б в [редакциялаған] Реч, Йорг; Bunse, Christian (2009). Сапа кепілдігін біріктіретін бағдарламалық жасақтаманы әзірлеу. Херси: Ақпараттық ғылымға сілтеме. б. 101. ISBN  978-1605660073.CS1 maint: қосымша мәтін: авторлар тізімі (сілтеме)
  18. ^ а б Олейничак, Роберт (2008). Бағдарламалық жасақтаманың жүйелік функциясы (PDF). Докторлық диссертация: Мюнхен техникалық университеті. 61-63 бет. Архивтелген түпнұсқа (PDF) 2016 жылғы 6 наурызда. Алынған 10 қазан 2013.
  19. ^ Қабыл, Эндрю; Чен, Цонг Юэх; Грант, Даг; Пун, Пак-Лок; Тан, Сау-Фун; Tse, TH (2004). Ағаштардың интеграцияланған әдіснамасына негізделген деректерді генерациялаудың автоматты жүйесі. Бірінші Халықаралық конференция, SERA 2003, Сан-Франциско, Калифорния, АҚШ, 2003 ж., 25-27 маусым, Таңдалған қайта өңделген мақалалар. Информатика пәнінен дәрістер. 3026. бет.225–238. дои:10.1007/978-3-540-24675-6_18. hdl:10722/43692. ISBN  978-3-540-21975-0. Алынған 10 қазан 2013.
  20. ^ Франке, М .; Герке, Д .; Ханс, С; және басқалары: функционалды жүйені тексеру, әуе көлігі және пайдалану Sym-posium 2012 әдісі негізінде жүргізілетін сынақ жағдайы; 355-365. Іс жүргізу ATOS. Delft 2012.
  21. ^ Бернер және Маттнер. «Баспасөз-релизі: TESTONA 4.3 көмегімен тестілік жағдайды енгізу».
  22. ^ Чен, Т.Я .; Пун, П.Л. (1996). Классификациялық-иерархиялық кесте: жіктеу ағашын құрудың әдістемесі. Австралиялық бағдарламалық жасақтама жасау бойынша конференция, 1996., 1996 ж. 93–104 бет. дои:10.1109 / ASWEC.1996.534127. ISBN  978-0-8186-7635-2.

Сыртқы сілтемелер