Бірлік, интеграция және функционалдық тестілеу арасындағы айырмашылық

Бірлікті, интеграцияны және функционалдық тестілеуді егжей-тегжейлі салыстыру:

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

Бірақ олардың біреуі немесе екеуі де кез келген уақытта функционалдық тестілеуді алмастыра алмайды.

Бірлік сынағы және интеграциялық тестілеу және функционалдық тестілеу

Бірлік тестілеу қолданбаның жеке модульдерін оқшауланған (тәуелділіктермен өзара әрекеттесусіз) тестілеуді білдіреді. кодтың дұрыс істеп жатқанын растаңыз.

Интеграциялық тестілеу топ ретінде біріктірілген кезде әртүрлі модульдердің жақсы жұмыс істейтінін тексеруді білдіреді.

Функционалдық тестілеу кодтың дұрыс әрекеттерді орындап жатқанын растау үшін жүйедегі функционалдылықтың бір бөлігін сынауды білдіреді (тәуелділіктермен әрекеттесуі мүмкін).

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

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

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

Бұл келесі сынақ пирамидасында жақсы суреттелген:

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

Мысалы:

Тесттің осы үш түрін тым жеңілдетілген мысалмен түсінейік.

Мысалы . Функционалды ұялы телефон үшін қажетті негізгі бөліктер «батарея» және «sim карта».

Құрылғыны тексеру мысалы – Батарея оның қызмет ету мерзімі, сыйымдылығы және басқа параметрлері бойынша тексеріледі. SIM картасының іске қосылуы тексерілді.

Интеграциялық тестілеудің мысалы – Батарея мен SIM картасы біріктірілген, яғни ұялы телефонды іске қосу үшін жиналған.

Функционалды Тестілеу мысалы - ұялы телефонның функционалдығы оның мүмкіндіктері мен батареяның қолданылуымен, сондай-ақ SIM карталарын пайдаланумен тексеріледі.

Бізде мысал келтірілген кәсіпқойлардың терминдері.

Енді кіру бетінің техникалық  мысалын алайық:

Әрбір дерлік веб-қосымшасы оның пайдаланушылар/тұтынушылар жүйеге кіруі керек. Ол үшін әрбір  қолданбаға кіру керекмына элементтері бар «Кіру» беті бар:

  • Тіркелгі/Пайдаланушы аты
  • Пароль
  • Кіру/Кіру түймесі

Бірлік сынағы үшін келесі сынақ жағдайлары болуы мүмкін:

  • Өріс ұзындығы – пайдаланушы аты мен құпия сөз өрістері.
  • Енгізілген өріс мәндері жарамды болуы керек.
  • Кіру түймесі екі өріске де жарамды мәндер (Пішім және ұзына бойы) енгізілгеннен кейін ғана қосылады.

Интеграциялық тестілеу үшін келесі сынақ жағдайлары болуы мүмкін:

  • Пайдаланушы жарамды мәндерді енгізгеннен кейін және кіру түймесін басқаннан кейін сәлемдесу хабарын көреді.
  • Пайдаланушы жарамды енгізуден және басқаннан кейін сәлемдесу бетіне немесе басты бетке өтуі керек. Кіру батырмасы.

Қазір, бірлік пен интеграцияны сынау аяқталғаннан кейін, қосымша тестілеу үшін қарастырылған қосымша Сынақ істерін көрейік:

        13>Күтілетін әрекет тексеріледі, яғни пайдаланушы жарамды пайдаланушы аты мен құпия сөз мәндерін енгізгеннен кейін жүйеге кіру түймесін басу арқылы жүйеге кіре алады ма.
      1. Сәтті кіруден кейін пайда болатын сәлемдесу хабары бар ма?
      2. Жарамсыз логинде пайда болатын қате туралы хабар бар ма?
      3. Кіру өрістеріне арналған сақталған сайт cookie файлдары бар ма?
      4. Активтендірілген пайдаланушы жүйеге кіре ала ма?
      5. Құпия сөздерін ұмытып қалған пайдаланушылар үшін "парольді ұмытып қалдым" сілтемесі бар ма?

      Мұндай жағдайлар жиі кездеседі.функционалдық тестілеуді орындау кезінде функционалдық тестілеушінің ақыл-ойы. Бірақ әзірлеуші ​​Unit және Integration сынақ жағдайларын құру кезінде барлық жағдайларды қабылдай алмайды.

      Осылайша, блок пен интеграциялық тестілеуден кейін де сыналатын көптеген сценарийлер бар.

      Енді бірлік, интеграция және функционалдық тестілеуді бір-бірден қарастыратын кез келді.

      Бірлік тестілеу дегеніміз не?

      Аты айтып тұрғандай, бұл деңгей "Бірлікті" сынауды қамтиды.

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

      Төменде бірлік сынағы және оның артықшылықтары туралы бірнеше маңызды тармақтар берілген:

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

      JUMIT (Java Framework), PHPUIT (PHP Framework), Nunit (.NET Framework) және т.б. Басқа тілдер үшін пайдаланылатын танымал блокты тестілеу құралдары. ?

      Интеграциялық тестілеу жүйенің әртүрлі бөліктерінің бірігуін сынау болып табылады. Жүйенің екі түрлі бөлігі немесе модульдері алдымен біріктіріліп, содан кейін интеграциялық тестілеу орындалады.

      Интеграциялық тестілеудің мақсаты - жүйенің функционалдығын, сенімділігін және өнімділігін тексеру. Жүйе біріктірілген кезде.

      Интеграциялық тестілеу алдымен бірлік сыналған модульдерде орындалады, содан кейін интеграциялық тестілеу модульдердің комбинациясы қажетті нәтижені беретінін немесе бермейтінін анықтайды.

      Интеграциялық тестілеу тәуелсіз тестерлер немесе әзірлеушілер де жасайды.

      Интеграциялық тестілеу тәсілдерінің 3 түрлі түрі бар. Олардың әрқайсысына қысқаша тоқталайық:

      a) Биг Бенг интеграциялық тәсілі

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

      Интеграциялық тестілеудің бұл тәсілін жүйелік тестілеумен шатастырмаңыз, тек модульдердің немесе блоктардың интеграциясы тексеріледі. Жүйені тестілеу кезінде орындалатындай бүкіл жүйе.

      Үлкен жарылыс әдісінің басты артықшылығы біріктірілген барлық нәрсе бір уақытта сыналады.

      Бір негізгі кемшілігі бұл ақауларды анықтау қиынға соғады.

      Мысалы: Төмендегі суретте 1-ден 6-ға дейінгі блоктар біріктірілген және Үлкен жарылыс әдісі арқылы сыналған.

      b) Жоғарыдан-төмен тәсіл

      Бірліктердің/модульдердің интеграциясы жоғарыдан төмен деңгейге қарай кезең-кезеңімен тексеріледі.

      бірінші блок сынақ STTUBS жазу арқылы жеке тексеріледі. Осыдан кейін төменгі деңгейлер соңғы деңгей біріктіріліп, сыналғанға дейін бірінен соң бірі біріктіріледі.

      Жоғарыдан төменге бағытталған тәсіл интеграцияның өте органикалық тәсілі болып табылады, өйткені ол нақты жағдайда қалай болатынына сәйкес келеді. орта.

      Бұл тәсілге қатысты жалғыз мазалау бұл негізгі функционалдылықтың соңында сынақтан өтуі.

      c) Төменгі- Жоғары тәсіл

      Бірліктер/модульдер төменнен жоғары деңгейге дейін, бірліктердің/модульдердің барлық деңгейлері біріктірілгенге дейін кезең-кезеңімен сыналады.және бір бірлік ретінде сыналған. Бұл тәсілде DRIVERS деп аталатын стимулятор бағдарламалары пайдаланылады. Төменгі деңгейлердегі ақауларды немесе қателерді анықтау оңайырақ.

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

      Бірлік сынағы және интеграциялық тестілеу

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

      Бірліктерді тестілеу Интеграциялық тестілеу
      Бүкіл жүйенің жалғыз компонентін сынау яғни блокты оқшауланған күйде сынайды. Бірге жұмыс істейтін жүйе құрамдастарын сынайды, яғни бірнеше бірліктердің ынтымақтастығын тексереді.
      Орындау жылдамырақ Жұмыс істей алады баяу
      Сыртқы тәуелділік жоқ. Кез келген сыртқы тәуелділік келекеленеді немесе жойылады. Сыртқы тәуелділіктермен (мысалы, дерекқор, аппараттық құрал және т.б.) өзара әрекеттесу қажет.
      Қарапайым Күрделі
      Әзірлеуші ​​жүргізеді Тестіші жүргізеді
      Бұл ақ жәшік тестісінің бір түрі Ол қара жәшік сынауының бір түрі болып табылады
      Тестілеудің бастапқы фазасында орындалады, содан кейін кез келген уақытта орындалуы мүмкін Бірлік сынауынан кейін және жүйе сынағы алдында орындалуы керек
      Арзантехникалық қызмет көрсету Қымбат техникалық қызмет көрсету
      Модуль спецификациясынан басталады Интерфейс сипаттамасынан басталады
      Құрылғы тестілеудің тар ауқымы бар, өйткені ол әрбір кішкене код бөлігінің не істеуге болатынын тексереді. Оның ауқымы кеңірек, өйткені ол бүкіл қолданбаны қамтиды
      Бірлік тестілеуінің нәтижесі кодтың егжей-тегжейлі көрінуі болып табылады Интеграция нәтижесі тестілеу – интеграциялық құрылымның егжей-тегжейлі көрінуі
      Тек жеке модульдердің функционалдық мүмкіндіктеріндегі мәселелерді ашу. Біріктіру қателерін немесе жалпы жүйе мәселелерін көрсетпейді. Жалпы жүйені құру үшін әртүрлі модульдер бір-бірімен әрекеттескен кезде пайда болатын қателерді ашыңыз

      Функционалдық тестілеу

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

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

      Қорытынды

      Бұл үш сынақ түрі өзара байланысты.

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

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

      Ұсынылатын әдебиет

Жоғарыға айналу