Х-машиналық тестілеу - X-Machine Testing - Wikipedia

The (Stream) X-Machine тестілеу әдістемесі Бұл толық функционалдық тестілеу тәсіл бағдарламалық жасақтама- және аппараттық тестілеу[1] масштабталуын пайдаланады Ағымдағы X-Machine есептеу моделі.[2] Осы әдістемені қолдана отырып, сыналған жүйенің іске асырылуының оның сипаттамасына сәйкес келетіндігін толық анықтайтын ақырғы тест жиынтығын анықтауы мүмкін. Бұл мақсат дизайнды нақтылау арқылы ыдырататын бөлу-жеңу тәсілімен жүзеге асырылады[3] жинағына енеді Ағымдағы X-машиналар, олар жеке модуль ретінде жүзеге асырылады, содан кейін төменнен жоғары қарай тексеріледі. Әрбір интеграция кезеңінде тестілеу әдісі тексерілген компоненттердің дұрыс интеграцияланғандығына кепілдік береді.[4]

Әдістеме формальды түрде жеңеді шешімсіздік талап етілетін шектеулер сынақ үшін дизайн нақтылау және енгізу кезінде принциптер сақталады. Нәтижесінде масштабталуы дегеніміз практикалық бағдарламалық жасақтама[5] және аппараттық құралдар[6] жүздеген мың күйлерден және миллиондаған өтулерден тұратын жүйелер сәтті сыналды.

Мотивация

Көп бағдарламалық жасақтаманы тестілеу бағдарламалық жүйені қандай да бір ақаулықтарды анықтауға болатын-болмайтынын білуге ​​тырысатын қарапайым үміт. Тестілеу кейбір ақауларды анықтауы мүмкін, бірақ жүйенің дұрыс екеніне ешқашан кепілдік бере алмаймыз, тестілеу аяқталғаннан кейін. Функционалды тестілеу әдістер осы жағдайды жақсартуға тырысады, а ресми спецификация іске асыру кейінірек тексерілетін жүйенің мақсатты мінез-құлқын сипаттайтын (түрі сәйкестікті сынау ). Техникалық сипаттаманы пайдаланушының талаптарына сәйкес және кейінірек тексеруге болады дәлелденген болу тұрақты және толық математикалық пайымдау арқылы (кез-келген логикалық кемшіліктерді жою). Аяқталды функционалдық тестілеу әдістер енгізілген бағдарламалық жасақтаманы іске асыратын тест жиынтықтарын құра отырып, спецификацияны жүйелі түрде пайдаланады толық, оның спецификацияға сәйкестігін анықтау. Сондай-ақ:

  • Толық оң тестілеу: барлық қажетті мінез-құлық жүйеде бар екенін растайды;
  • Толық негативті тестілеу: жүйеде күтпеген мінез-құлықтың жоқтығын растайды.

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

Масштабталатын, реферат сипаттамалары

Майк Холкомб алғаш рет қолдануды ұсынды Сэмюэль Эйленберг теориялық X-машина модель 80-ші жылдардың аяғында бағдарламалық қамтамасыз етудің негізі ретінде.[7]Бұл модельді бөліп тұрғандықтан басқару ағыны жүйенің өңдеу жүйемен жүзеге асырылады. Берілген абстракция деңгейінде жүйені қарапайым деп санауға болады ақырғы күйдегі машина бірнеше күйлерден және өтпелерден тұрады. Неғұрлым күрделі өңдеу келесіге беріледі өңдеу функциялары деректердің негізгі түрін өзгертетін ауысулар туралы X. Кейінірек әр өңдеу функциясы бөлек ұшырауы және басқасымен сипатталуы мүмкін X-машина, сол жүйенің жұмыс тәртібін модельдеу.

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

Біртіндеп тексерілетін сипаттамалар

Гилберт Лэйкок алдымен белгілі бір түрін ұсынды X-машина, Ағымдағы X-Machine, тестілеу әдісінің негізі ретінде.[2] Бұл нұсқаның артықшылығы тестілеуді басқарудың тәсілі болды. Ішінде Ағымдағы X-Machine, мәліметтердің негізгі типінің белгілі бір формасы бар: X = Шығу* × Мем × Жылы*, қайда Жылы* бұл кіріс ағыны, Шығу* - бұл шығыс ағыны, және Мем ішкі жады. А. Өтпелері Ағымдағы X-Machine φ формасының өңдеу функциясымен белгіленген: Мем × ЖылыШығу × Мем, яғни олар кіріс ағынынан бір кірісті тұтынады, мүмкін жадты өзгертеді және шығыс ағынға бір шығыс шығарады ( байланысты мақала толығырақ).

Тестілеудің артықшылығы - осылайша жасалған бағдарламалық жасақтама жүйелері байқалатын әр қадамда. Әрбір кіріс үшін, машина бір қадам жасайды, нәтижесінде кіріс / шығыс жұптары дәл сәйкес келуі мүмкін. Бұл жүйенің басқа тәсілдеріне қайшы келеді аяқтауға дейін жүгіреді бақылаудан бұрын (бірнеше қадамдар жасау). Сонымен қатар, қабатты Ағымдағы X-машиналар ыңғайлы абстракцияны ұсыныңыз. Әр деңгейде сынаушы мүмкін ұмыту өңдеу функциясының бөлшектері туралы және (ішкі) жүйені қарапайым деп санаңыз ақырғы күйдегі машина. Chow's W-әдісі сияқты ақырғы күйлерге сәйкес келетін жүйелерді тестілеу үшін күшті әдістер бар.[8]

Техникалық сипаттама әдісі

(Stream) X-Machine әдіснамасына сүйене отырып, бірінші кезең - өңделетін мәліметтердің әртүрлі түрлерін анықтау. Мысалы, мәтіндік процессор негізгі типтерді қолданады Мінез (пернетақта енгізу), Лауазымы (тышқан курсорының орны) және Пәрмен (тінтуір немесе мәзір командасы). Сияқты басқа салынған түрлері болуы мүмкін Мәтін ::= Мінез* (таңбалар тізбегі), Таңдау ::= Лауазымы × Лауазымы (таңдаудың басталуы мен аяқталуы) және Құжат ::= Мәтін × Таңдау × Буль (мәтін, мүмкін таңдау және құжат өзгертілген болса белгі беретін жалауша).

Жоғары деңгейлік сипаттама

Жоғары деңгейлік сипаттама - бұл Ағымдағы X-Machine пайдаланушының жүйемен негізгі өзара әрекеттесуін сипаттау. Мысалы, мәтіндік процессор бірқатар күйлерде болады, онда пернелер мен командалар әр түрлі әсер етеді. Бұл мәтіндік процессор штаттарда бар делік {Жазу, Таңдау, Іс жүргізу, Өңдеу}. Мәтіндік процессор алғашқы әріптен басталады деп күтеміз Жазу күйге ауысу керек, бірақ Таңдау егер тінтуір болса, күй сүйредінемесе shift-key ұстап тұрады. Таңдау орнатылғаннан кейін ол қайтып келуі керек Жазу мемлекет. Сол сияқты, егер мәзір параметрі таңдалса, оны енгізу керек Өңдеу немесе Іс жүргізу мемлекет. Бұл күйлерде белгілі бір пернелердің әр түрлі мағыналары болуы мүмкін. Мәтіндік процессор ақыр соңында Жазу кез келген мәзір пәрмені аяқталған кезде күй. Бұл күй машинасы оның күйін өзгертуге себеп болатын әртүрлі әрекеттермен бейресми түрде жасалған және таңбаланған.

Енді жоғарғы деңгейлі машинаның енгізу, жад және шығару түрлері формальданған. Қарапайым мәтіндік процессордың жады типі типті делік Құжат жоғарыда анықталған. Бұл құжатты мәтіндік жол ретінде қарастырады, мүмкін таңдауды белгілейтін екі позиция және соңғысынан бастап өзгертулерді көрсететін жалауша сақтау- бұйрық. Неғұрлым күрделі мәтіндік процессор құжаттың дәйектілігімен: Құжат ::= (Мәтін × Таңдау), олар әр құжатта бір рет жиналатын а сақтау- бұйрық орындалады.

Машинаның кіріс түрі: Жылы ::= Пәрмен × Мінез × Лауазымы. Бұл кез-келген өзара әрекеттесу қарапайым таңбаларды енгізу, мәзір командасы немесе курсорды орналастыру болуы мүмкін екенін біледі. Кез-келген берілген өзара әрекеттесу 3 кортежді құрайды, бірақ кейбір орындар бос болуы мүмкін. Мысалға, (Кірістіру, 'a', ε) 'a' таңбасын теруді білдіреді; уақыт (Лауазымы, ε, 32) меңзерді 32 және 33 таңбаларының арасына орналастыруды білдіреді; және (Таңдаңыз, ε, 32) меңзердің ағымдағы орны мен 32 және 33 таңбалары арасындағы орын арасындағы мәтінді таңдауды білдіреді.

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

Төмен деңгейлік сипаттама

Егер жүйе күрделі болса, онда ол бірнешеге ыдырауы мүмкін Ағымдағы X-машиналар. Нақтылаудың ең кең таралған түрі - бұл өңдеудің негізгі функцияларының әрқайсысын (олар жоғары деңгейлі машинадағы белгілер болған) және оларды бөлек қарастыру. Ағымдағы X-машиналар.[3] Бұл жағдайда төменгі деңгейлі машиналар үшін енгізу, есте сақтау және шығару түрлері жоғары деңгейлі машинада анықталғаннан өзгеше болады. Немесе бұл жоғары деңгейде қолданылатын деректер жиынтығының кеңеюі ретінде қарастырылады немесе жоғары деңгейдегі дерексіз мәліметтер жиынтығынан төменгі деңгейдегі мәліметтер жиынтығына аудару бар. Мысалы, команда Таңдаңыз жоғары деңгейде үш оқиғаға бөлінуі мүмкін: Тышқан, Тышқан, Тінтуір төменгі деңгейде.

Ipate және Holcombe нақтылаудың бірнеше түрін атап өтті, соның ішінде функционалды нақтылау, онда өңдеу функцияларының тәртібі толығырақ өңделеді және мемлекеттік нақтылау, онда жай күй-кеңістік неғұрлым күрделі күй-кеңістікке бөлінеді.[1] Ипат нақтылаудың осы екі түрінің сай келетіндігін дәлелдейді[9]

Жүйелер басқаша түрде дизайнер іске асыру ортасы қолдайтын алғашқы әрекеттерге сенуге дайын болатын деңгейге дейін көрсетіледі. Кішкентай блоктарды басқа тестілеу әдістерімен толықтай тексеруге болады.

Сынақ үшін жобалау шарттары

(Stream) X-Machine әдіснамасы дизайнерден белгілі бір талаптарды сақтауды талап етеді сынақ үшін дизайн шарттар. Оларды қанағаттандыру өте қиын емес. Әрқайсысы үшін Ағымдағы X-Machine спецификацияда біз мыналарды алуымыз керек:

  • Минималды сипаттама: Техникалық сипаттама а болуы керек минималды ақырғы күйдегі машина. Бұл дегеніміз, мемлекеттік машинада артық күйлер болмауы керек, яғни байқалатын өтпелі мінез-құлық кейбір басқа күйлермен бірдей күйлер.
  • Детерминистік сипаттама: Машинаның әрбір күйі үшін ең көп дегенде functions өңдеу функциясының бірі болуы керек қосылды ағымдағы жад және келесі кіріс мәні үшін. Бұл тексерілетін қажетті мінез-құлықтың болжамды болуын қамтамасыз етеді.
  • Сынақтың толықтығы: Әр өңдеу функциясы φ барлық жад күйлеріне қатысты кем дегенде бір енгізу үшін орындалуы керек. Бұл машинаның ағымдағы жад күйінде бұғатталған тұйықталулардың болмауын қамтамасыз етеді. Тесттің толықтығын қамтамасыз ету үшін функцияның домені φ арнайы көмегімен ұзартылуы мүмкін сынақ кірістері тек тестілеу кезінде қолданылады.
  • Шығарылымның айырмашылығы: Барлық жадыға енгізу жұптары үшін қандай өңдеу функциясы тек шығыс мәнінен алынғанын ажырату мүмкіндігі болуы керек. Бұл күй машинасын өңдеу функцияларынан ажыратуға мүмкіндік береді. Шығарылымның ерекшеленуін қамтамасыз ету үшін кодомейн функциясы of арнайы функциямен кеңейтілуі мүмкін сынақ нәтижелері тек тестілеу кезінде маңызды.

Минималды машина дегеніміз - кейбір мінез-құлық үшін күйлері мен өтпелері аз машина. Сипаттаманы минималды сақтау тест жиындарының мүмкіндігінше аз болуын қамтамасыз етеді. Детерминирленген машина болжамды жүйелер үшін қажет. Әйтпесе, іске асыру қай ауысу қабылданғанына байланысты ерікті таңдау жасай алады. Кейбір соңғы жұмыс детерминирленбеген машиналарды сынауға мүмкіндік беру үшін бұл болжамды босатты.[10]

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

Тестілеу әдісі

(Stream) X-Machine тестілеу әдісі жобалауды да, іске асыруды да (жинақ) деп санауға болады деп болжайды Ағымдағы X-машиналар. Сәйкес келетін машиналардың әр жұбы үшін (Spec, Имп), тестілеудің мақсаты - мінез-құлықты анықтау Имп, іске асыру машинасы дәл сәйкес келеді Spec, сипаттаманың машинасы. Ескертіп қой Имп минималды машина болмауы керек - оның күйлері мен ауысулары көп болуы мүмкін Spec және әлі күнге дейін өздерін бірдей ұстайды.

Барлық мінез-құлықтарды тексеру үшін машинаны оның барлық күйлеріне жіберіп, содан кейін барлық мүмкін ауысуларға (жетістікке жету керек және бұғатталуы керек) толығымен жету үшін мүмкіндік беру керек. оң және теріс тестілеу (жоғарыдан қараңыз). Сәтті өткен ауысулар үшін тағайындалған күй тексерілуі керек. Егер болса Spec және Имп бірдей күйге ие, жоғарыда мақсатқа жететін ең кіші тест жиынтығы сипатталған. Егер Имп қарағанда көп күйлер мен өтулерге ие Spec, бұған кепілдік беру үшін ұзағырақ сынақ тізбектері қажет артық мемлекеттері Имп күткендей ұстаңыз.

Барлық штаттарды сынау

Тест генерациясы стратегиясының негізі - Цун С.Чоудың ақырғы күйдегі автоматтарды сынауға арналған W-әдісі,[8] таңдалды, өйткені ол артық бағдарламаларды тексеруді қолдайды. Чоу әдісі қарапайым деп санайды ақырғы күйдегі машиналар бақыланатын кірістер мен шығыстармен, бірақ тікелей бақыланатын күйлер жоқ. Чо формализміне картаға түсіру үшін, функциялары φмен өткелдері туралы Ағымдағы X-машиналар тек этикеткалар ретінде қарастырылады (кірістер, Чоу сөзімен айтсақ) және олардың айырмашылықтары тікелей қолданылады. (Кейінірек, нақты кірістер мен жадтан кескіндеу (мем, жылы) доменіне сәйкес әр функцияны trig іске қосу үшін таңдалады).

Нақты жағдайларды анықтау Имп, Чоу а таңдайды сипаттама жиынтығы, W, әрбір күйді ерекше сипаттайтын тест тізбектерінің ең кіші жиынтығы Spec. Яғни берілген күйден бастағанда, ішіндегі реттілікті жүзеге асырғанда W кез-келген күйде бастаумен салыстырғанда, кем дегенде бір байқалатын айырмашылықты беруі керек.

Күтілетін әр мемлекетке жету үшін Spec, сынаушы мемлекеттік мұқаба, C, кез-келген күйге жететін тестілік тізбектердің ең кіші жиынтығы. Мұны автоматты түрде бірінші барлау арқылы салуға болады Spec. Барлық күйлерді минималды деңгейге тексеретін жиынтық Имп содан кейін: , қайда дегенді білдіреді біріктірілген өнім екі жиынтықтың Мысалы, егер C = {⟨а⟩, ⟨б⟩} және W = {⟨c⟩, ⟨г.⟩}, Содан кейін .

Барлық өтпелерді тексеру

Жоғарыда келтірілген тест жиынтығы минималды екенін анықтайды Имп сияқты күйлерге ие Spec. Минималды ма екенін анықтау үшін Имп сияқты өтпелі мінез-құлыққа ие Spec, сынаушы өтпелі қақпақ, K. Бұл кез-келген күйге жететін, содан кейін осы күйден бір рет мүмкін болатын ауысуға тырысатын сынақ тізбектерінің ең кіші жиынтығы. Енді енгізу алфавиті function φ функцияларынан тұрады. Φ таңдалған жалғыз функциялардан тұратын ұзындық-1 сынақ тізбегінің жиынтығын құрайық және оны call деп атайық1. Өтпелі қақпақ ретінде анықталады .

Бұл әр штаттан мүмкін болатын барлық ауысуға тырысады. Сәтті болған адамдар үшін біз баратын жерлерді растауымыз керек. Сонымен, ең кішкентай сынақ жиынтығы Т1 бұл минималды мінез-құлықты толығымен растайды Имп береді: . Бұл формуланы келесідей өзгертуге болады:

,

қайда Φ0 бұл {sequence} бос реттілігін қамтитын жиынтық.

Егер Имп қарағанда көп күйге ие Spec, жоғарыда келтірілген сынақ жиынтығы қайталанатын күйлердің сәйкес мінез-құлқына кепілдік беру үшін жеткіліксіз болуы мүмкін Имп. Сонымен, функциялардың барлық жұптарынан тұратын ұзын тестілік тізбектер жиынтығы таңдалады2, функциялардың барлық үштіктері Φ3 кейбір шектеулерге дейін Φк, сынаушы бұған риза болған кезде Имп қайталанатын күйлер тізбегін қамтуы мүмкін емес к-1. Соңғы сынақ формуласы:

.

Бұл тест жиынтығы минималды емес әрекетті толығымен растайды Имп қайталанатын күйлердің тізбектері бұдан былай болмауы керек деп күтілуде к-1. Көптеген практикалық мақсаттар үшін тестілеу к= 2, немесе к= 3 өте толық, шынымен нашар іске асырудағы барлық мемлекетке қатысты ақауларды анықтайды.

Қолданбалар

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

  1. ^ а б М.Холкомб және Ф.Ипейт (1998) Дұрыс жүйелер - бизнес-процестің шешімін құру. Springer, қолданбалы есептеу сериясы.
  2. ^ а б Гилберт Лэйкок (1993) Техникалық сипаттамаға негізделген бағдарламалық жасақтаманы сынау теориясы мен практикасы. Докторлық диссертация, Шеффилд университеті. Реферат Мұрағатталды 5 қараша, 2007 ж Wayback Machine
  3. ^ а б F. Ipate және M. Holcombe (1998) 'Машинаның жалпыланған сипаттамаларын нақтылау және сынау әдісі'. Int. J. Comp. Математика. 68, 197-219 беттер.
  4. ^ F. Ipate және M. Holcombe (1997) 'Барлық ақауларды табатын интеграциялық тестілеу әдісі', Халықаралық компьютерлік математика журналы 63, 159-178 беттер.
  5. ^ К.Богданов және М.Холкомб (1998) 'Statecharts үшін автоматтандырылған тест жиынтығы', Д. Хаттер, У. Стефан, П. Траверсо және М. Ульманманның мақалалары. 98. Формалды әдістер: FM-тенденциялар, Боппард, Германия, Информатика пәнінен дәрістер 1641, 107-121 беттер.
  6. ^ Салим Ванак (2001), Аппараттық дизайнның толық функционалды тестілеуі, Докторлық диссертация, Шеффилд университеті.
  7. ^ M. Holcombe (1988) 'X-машиналар динамикалық жүйенің спецификациясының негізі', Бағдарламалық жасақтама журналы 3(2), 69-76 бб.
  8. ^ а б T. S. Chow (1978) 'Ақырғы күйдегі машиналарда модельденген бағдарламалық жасақтаманы тестілеу', Бағдарламалық жасақтама бойынша IEEE транзакциялары, 4 (3), 178-187 бб.
  9. ^ Флорентин Ипейт (1995) Техникалық сипаттамада және тестілеуде қосымшалары бар машиналардың теориясы, PhD докторлық диссертация, Шеффилд университетінің информатика кафедрасы.
  10. ^ F. Ipate және M. Holcombe (2000) 'Детерминирленген емес X-аппараттарды тестілеу'. In: Сөздер, реттілік, грамматика, тілдер: биология, информатика, лингвистика және математика кездесетін жер, II том, eds. C Martin-Vide және V. Mitrana, Kluwer.