Birlik, integratsiya va funktsional test o'rtasidagi farq

Birlik, integratsiya va funktsional testlarni batafsil taqqoslash:

Har qanday dasturiy ta'minot ilovasi uchun birlik testi ham, integratsiya testi ham juda muhim, chunki ularning har birida dasturiy ta'minotni sinab ko'rish uchun noyob jarayon.

Ammo ulardan biri yoki hatto ikkalasi ham istalgan vaqtda Funktsional test o'rnini bosa olmaydi.

Birlik testi va integratsiya testi va funksional test

Birlik testi ilovaning alohida modullarini izolyatsiyada (bog‘liqlar bilan hech qanday o‘zaro aloqasisiz) sinovdan o‘tkazishni anglatadi. kod ishlarni to'g'ri bajarayotganini tasdiqlang.

Integratsiya testi guruh sifatida birlashtirilganda turli modullarning yaxshi ishlashini tekshirishni anglatadi.

Funktsional test kodning to'g'ri ishlayotganligini tasdiqlash uchun tizimdagi funksiyalarning bir qismini sinab ko'rishni bildiradi (bog'liqlar bilan o'zaro ta'sir qilishi mumkin).

Funktsional testlar integratsiya testlari bilan bog'liq, biroq ular testlarni bildiradi Barcha dasturning funksionalligini barcha kodlar birgalikda ishlayotgan holda tekshiring, bu deyarli super integratsiya testidir.

Birlik testi tizimning bitta komponentini tekshirishni ko'rib chiqadi, funksionallik testi esa dasturning mo'ljallangan ishini tekshirishni ko'rib chiqadi. tizim talablari spetsifikatsiyasida tasvirlangan funksionallik. Boshqa tomondan, integratsiya testi tekshirishni ko'rib chiqaditizimda birlashtirilgan modullar.

Va, eng muhimi, investitsiyalar rentabelligini (ROI) optimallashtirish uchun sizning kod bazangiz imkon qadar ko'proq birlik testlariga, kamroq integratsiya testlariga va eng kam funktsional testlarga ega bo'lishi kerak.

Bu quyidagi test piramidasida eng yaxshi tasvirlangan:

Birlik testlarini yozish osonroq va tezroq bajariladi. Sinovlarni amalga oshirish va saqlash uchun vaqt va kuch yuqoridagi piramidada ko'rsatilganidek, birlik testidan funktsional testga qadar ortadi.

Misol:

Keling, ushbu uchta sinov turini haddan tashqari soddalashtirilgan misol bilan tushunaylik.

Masalan, . Funktsional mobil telefon uchun zarur bo'lgan asosiy qismlar "batareya" va "sim karta" dir.

Birlikni sinovdan o'tkazish misoli - Batareyaning ishlash muddati, quvvati va boshqa parametrlari tekshiriladi. Sim-karta faollashtirilganligi tekshirildi.

Integratsiya sinovi misoli – Batareya va sim karta birlashtirilgan, ya'ni mobil telefonni ishga tushirish uchun yig'ilgan.

Funktsional. Sinov misoli – Mobil telefonning funksionalligi uning xususiyatlari va batareya quvvati hamda sim-karta imkoniyatlari nuqtai nazaridan tekshiriladi.

Biz misolda               sinov       sinov  ʼ      si   ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​layman shartlari.

Endi, login sahifasining texnik misolini olaylik:

Deyarli har bir veb-ilova o'z talablarini talab qiladi. foydalanuvchilar/mijozlar tizimga kirishlari uchun. Buning uchun har bir ilova kerakquyidagi elementlarga ega "Kirish" sahifasiga ega bo'ling:

  • Hisob/Foydalanuvchi nomi
  • Parol
  • Kirish/Kirish tugmasi

Birlik testi uchun quyidagi sinov holatlari bo'lishi mumkin:

  • Maydon uzunligi – foydalanuvchi nomi va parol maydonlari.
  • Kirish maydoni qiymatlari haqiqiy bo'lishi kerak.
  • Kirish tugmasi har ikkala maydonga yaroqli qiymatlar (Format va uzunlik boʻyicha) kiritilgandan keyingina yoqiladi.

Integratsiya testi uchun quyidagi sinov holatlari boʻlishi mumkin:

  • Foydalanuvchi toʻgʻri qiymatlarni kiritib, login tugmasini bosgandan soʻng salomlash xabarini koʻradi.
  • Foydalanuvchi toʻgʻri kiritilgandan soʻng salomlash sahifasiga yoki bosh sahifaga oʻtishi kerak va tugmani bosing. Kirish tugmasi.

Endi, birlik va integratsiya testi oʻtkazilgandan soʻng, funksional sinov uchun koʻrib chiqiladigan qoʻshimcha sinov holatlarini koʻrib chiqamiz:

  1. Kutilayotgan xatti-harakatlar tekshiriladi, ya'ni foydalanuvchi nomi va parolning haqiqiy qiymatlarini kiritgandan so'ng tizimga kirish tugmasini bosish orqali tizimga kira oladimi?
  2. Muvaffaqiyatli kirishdan keyin paydo bo'ladigan xush kelibsiz xabar bormi?
  3. Noto'g'ri loginda paydo bo'lishi kerak bo'lgan xato xabari bormi?
  4. Kirish maydonlari uchun saqlangan sayt cookie fayllari bormi?
  5. Faol bo'lmagan foydalanuvchi tizimga kira oladimi?
  6. Parollarini unutgan foydalanuvchilar uchun "parolni unutdingizmi" havolasi bormi?

Bunday holatlar ko'p uchraydi.funktsional testni amalga oshirishda funktsional testerning aqli. Ammo ishlab chiquvchi birlik va integratsiya test holatlarini yaratishda barcha holatlarni o'z zimmasiga olmaydi.

Shunday qilib, birlik va integratsiya testlaridan keyin ham hali sinab ko'rilmaydigan ko'plab stsenariylar mavjud.

Endi birlik, integratsiya va funktsional testlarni birma-bir tekshirish vaqti keldi.

Birlik testi nima?

Nomidan ko'rinib turibdiki, bu daraja "Birlik"ni sinovdan o'tkazishni o'z ichiga oladi.

Bu erda birlik ilovaning sinovdan o'tkaziladigan eng kichik qismi bo'lishi mumkin, xoh u eng kichik individual funktsiya, usul va h.k. Dasturiy ta'minotni ishlab chiquvchilar birlik test holatlarini yozadilar. Bu yerda maqsad talablar va birlikning kutilayotgan xatti-harakatlariga mos kelishdir.

Quyida birlik sinovi va uning afzalliklari haqida bir necha muhim fikrlar keltirilgan:

  • Birlik sinovi Oq quti test usullaridan foydalangan holda dasturiy ta'minot ishlab chiquvchilari tomonidan Integratsiya testidan oldin amalga oshiriladi.
  • Birlik testi nafaqat ijobiy xatti-harakatlarni, ya'ni to'g'ri kiritilgan kiritishda to'g'ri chiqishni tekshiribgina qolmay, balki noto'g'ri kiritish bilan yuzaga keladigan nosozliklarni ham tekshiradi.
  • Muammo/xatolarni erta bosqichda topish juda foydali va bu loyihaning umumiy xarajatlarini kamaytiradi. Birlik testi kodni integratsiya qilishdan oldin amalga oshirilganligi sababli, ushbu bosqichda topilgan muammolarni juda oson hal qilish mumkin va ularning ta'siri ham juda kam.
  • Birlik testi kodning kichik qismlarini yoki individualni sinab ko'radi.Bu test holatlarida topilgan muammolar/xatolar mustaqil bo'lib, boshqa test holatlariga ta'sir qilmaydi.
  • Yana bir muhim afzallik shundaki, birlik test holatlari kod sinovini soddalashtiradi va osonlashtiradi. Shunday qilib, muammolarni keyingi bosqichda hal qilish osonroq bo'ladi, chunki koddagi faqat oxirgi o'zgarish sinovdan o'tkazilishi kerak.
  • Birlik testi vaqt va xarajatlarni tejaydi, uni qayta ishlatish va texnik xizmat ko'rsatish oson.

JUnit (Java framework), PHPUnit (PHP framework), NUnit (.Net framework) va boshqalar turli tillar uchun qoʻllaniladigan mashhur birlik sinov vositalaridir.

Integratsiya testi nima? ?

Integratsiya testi tizimning turli qismlarini birgalikda integratsiyalashuvini sinab ko'rishdir. Tizimning ikki xil qismi yoki moduli avval birlashtirilib, so‘ngra integratsiya testi o‘tkaziladi.

Integratsiya testining maqsadi tizimning funksionalligi, ishonchliligi va ishlashini tekshirishdan iborat. integratsiyalashganda tizim.

Integratsiya testi avval birlik sinovidan o'tgan modullarda amalga oshiriladi, so'ngra integratsiya testi modullarning kombinatsiyasi kerakli natijani berishi yoki bermasligini aniqlaydi.

Integratsiya testi ikkalasini ham amalga oshirishi mumkin. mustaqil testerlar yoki ishlab chiquvchilar tomonidan ham amalga oshirilishi mumkin.

Integratsiya testining 3 xil turi mavjud. Keling, ularning har biri haqida qisqacha to'xtalib o'tamiz:

a) Katta portlashning integratsiya yondashuvi

Ushbu yondashuvda barcha modullar yoki birliklar bir vaqtning o'zida birlashtirilgan va yaxlit holda sinovdan o'tkaziladi. Bu odatda butun tizim bir vaqtning o‘zida integratsiya sinoviga tayyor bo‘lganda amalga oshiriladi.

Iltimos, integratsiya testining bunday yondashuvini tizim testi bilan aralashtirib yubormang, faqat modullar yoki birliklarning integratsiyasi sinovdan o‘tkazilmaydi. Tizim sinovida boʻlgani kabi butun tizim.

Katta portlash yondashuvining asosiy afzalligi hamma birlashtirilgan barcha narsa bir vaqtning oʻzida sinovdan oʻtkaziladi.

Bitta asosiy Kamchilik bu nosozliklarni aniqlash qiyinlashadi.

Misol: Quyidagi rasmda 1-bo'lim 6-gachasi birlik birlashtirilgan va Katta portlash usuli yordamida sinovdan o'tgan.

b) Yuqoridan-pastga yondashuv

Birlik/modullarning integratsiyasi bosqichma-bosqich yuqoridan pastga qarab tekshiriladi.

birinchi birlik test STUBSlarini yozish orqali alohida tekshiriladi. Shundan so'ng, oxirgi daraja yig'ilguncha va sinovdan o'tkazilgunga qadar quyi darajalar birma-bir integratsiya qilinadi.

Yuqoridan pastga yondashuv integratsiyaning juda organik usulidir, chunki u voqealarning real hayotda qanday sodir bo'lishiga mos keladi. muhit.

Ushbu yondashuv bilan bog'liq yagona xavotir asosiy funksionallik oxirida sinovdan o'tishidir.

c) Bottom- Yuqoriga yondashuv

Birliklar/modullar pastdan yuqoriga bosqichma-bosqich, barcha darajadagi birliklar/modullar birlashtirilgunga qadar sinovdan o'tkaziladi.va bir birlik sifatida sinovdan o'tkazildi. Ushbu yondashuvda DRIVERS deb nomlangan stimulyator dasturlari qo'llaniladi. Quyi darajadagi muammolar yoki xatolarni aniqlash osonroq.

Ushbu yondashuvning asosiy kamchiligi yuqori darajadagi muammolarni faqat barcha birliklarda aniqlanganda aniqlash mumkin. integratsiyalangan.

Birlik testi va integratsiya testi

Birlik testi va integratsiya testi haqida etarlicha muhokama qilganimizdan so'ng, keling, ikkalasi o'rtasidagi farqlarni tezda ko'rib chiqaylik. quyidagi jadvalda:

Birlik testi Integratsiya testi
Butun tizimning yagona komponentini sinovdan o'tkazadi ya'ni blokni yakka holda sinovdan o'tkazadi. Tizim komponentlarini birgalikda ishlashini sinab ko'radi, ya'ni bir nechta bloklarning hamkorligini sinab ko'radi.
Tezroq bajariladi Ishlash mumkin sekin
Tashqi qaramlik yo'q. Har qanday tashqi bog'liqlik masxara qilinadi yoki o'chiriladi. Tashqi bog'liqliklar (masalan, ma'lumotlar bazasi, apparat va boshqalar) bilan o'zaro aloqani talab qiladi
Oddiy Murakkab
Ishlab chiquvchi tomonidan o'tkaziladi Tester tomonidan o'tkaziladi
Bu oq quti sinovining bir turi Bu qora quti sinovining bir turi
Sinovning dastlabki bosqichida amalga oshiriladi va keyin istalgan vaqtda amalga oshirilishi mumkin Birlik sinovidan keyin va tizim sinovidan oldin amalga oshirilishi kerak
Arzontexnik xizmat ko'rsatish Qimmatbaho texnik xizmat ko'rsatish
Modul spetsifikatsiyasidan boshlanadi Interfeys spetsifikatsiyasidan boshlanadi
Birlik test tor doiraga ega, chunki u har bir kichik kod bo'lagi o'zi uchun mo'ljallangan narsani bajarayotganini tekshiradi. U kengroq qamrovga ega, chunki u butun dasturni qamrab oladi
Birlik testining natijasi kodning batafsil ko'rinishidir Integratsiya natijasi test - integratsiya tuzilmasining batafsil ko'rinishi
Faqat alohida modullarning funksionalligidagi muammolarni ochib berish. Integratsiya xatolari yoki tizim miqyosidagi muammolarni oshkor qilmaydi. Turli modullar umumiy tizimni shakllantirish uchun bir-biri bilan o'zaro ta'sirlashganda yuzaga keladigan xatolarni oching

Funktsional test

Qora qutini sinovdan oʻtkazish texnikasi, unda ilova funksionalligi maʼlum bir kiritishni taqdim etishda kerakli natijani yaratish uchun sinovdan oʻtkaziladi. “Funktsional test” deb ataladi.

Dasturiy taʼminotni sinovdan oʻtkazish jarayonlarida biz buni talablar va stsenariylarga muvofiq test holatlarini yozish orqali qiling. Har qanday funksionallik uchun yozilgan test holatlari soni bittadan koʻpgacha oʻzgarishi mumkin.

Xulosa

Bu uchta test turi oʻzaro bogʻliqdir.

Toʻliq qamrab olish uchun u "birliklar" mavjudligiga ishonch hosil qilish uchun kod yo'llari/satrlari uchun birlik testlari, funktsional va integratsiya testlari talab qilinadi.birgalikda ishlash.

Umid qilamanki, ushbu maqola sizga birlik, integratsiya va funktsional testlar va ularning farqlari haqida aniq tushuncha bergan bo'lardi, garchi bu test shakllarida ko'proq narsa bor!

Tavsiya etilgan adabiyotlar

    Yuqoriga o'tish