Sabab-Oqibat Sinovi (Cause and Effect Graph Testing)
Sabab-oqibat grafigi (Cause-Effect Graph) — natija va ushbu natijaga ta’sir qiluvchi barcha omillar o’rtasidagi mantiqiy bog’liqlikni aniqlovchi qora quti sinov texnikasidir. U dinamik test keyslarni (dynamic test cases) loyihalash uchun keng qo’llaniladi.
Dinamik test holatlari dastur kodi foydalanuvchi kiritgan ma’lumotlarga qarab turlicha ishlaganda zarur bo’ladi. Masalan, elektron pochta tizimida to’g’ri manzil kiritilsa, tizim uni qabul qiladi; agar noto’g’ri manzil kiritilsa, xatolik xabarini chiqaradi. Ushbu texnikada kiruvchi shartlar sabablar (causes), ushbu shartlar natijasida yuz beradigan xatti-harakatlar esa oqibatlar (effects) deb ataladi.
Ushbu usul dasturiy talablar to’plamiga asoslanib, tizimning maksimal sohasini qamrab oladigan eng minimal test keyslar sonini aniqlashga yordam beradi.
Asosiy Afzalliklari
- Vaqt va xarajatlarni tejash: Testlarni bajarish vaqtini va sinov xarajatlarini sezilarli darajada kamaytiradi.
- Maksimal qamrov: Keraksiz takrorlanuvchi testlarni qisqartirgan holda dastur sifatini ta’minlash uchun zarur bo’lgan barcha muhim vaziyatlarni to’liq qamrab oladi.
- Mantiqiy aniqlik: Dastur talablarini
AND(VA),OR(YOKI) vaNOT(EMAS) mantiqiy operatorlari yordamida kiruvchi va chiquvchi holatlar o’rtasidagi qat’iy mantiqiy modelga aylantiradi.
Sabab-Oqibat Grafigida Qo’llaniladigan Belgilar (Notations)
Sabab-oqibat grafigida asosiy mantiqiy amallar quyidagicha ifodalanadi:
- AND (VA):
E1— oqibat,C1vaC2— sabablar. AgarC1ham,C2ham bir vaqtda rost (true) bo’lsagina,E1oqibati yuzaga keladi. - OR (YOKI): Agar
C1yokiC2sabablaridan kamida bittasi rost bo’lsa,E1oqibati yuzaga keladi. - NOT (INKOR / EMAS): Agar
C1sababi yolg’on (false) bo’lsa,E1oqibati yuzaga keladi. - Mutually Exclusive (O’zaro bir-birini inkor etuvchi): Bir vaqtning o’zida sabablardan faqat bittasi rost bo’lishi mumkin bo’lgan holat.
Amaliy Misol (Situation)
Quyidagi amaliy vaziyatni ko’rib chiqamiz:
Vaziyat sharti:
Dasturda fayl yangilanishi uchun 1-ustundagi belgi yo “A”, yo “B” bo’lishi, 2-ustundagi belgi esa albatta raqam bo’lishi kerak.
- Agar 1-ustundagi belgi noto’g’ri bo’lsa (“A” ham, “B” ham emas), tizim **“X xabari”**ni ko’rsatadi.
- Agar 2-ustundagi belgi noto’g’ri bo’lsa (raqam bo’lmasa), tizim **“Y xabari”**ni ko’rsatadi.
Sabablar (Causes) va Oqibatlar (Effects) Ro’yxati
Sabablar (Causes):
- C1: 1-ustundagi belgi — “A”
- C2: 1-ustundagi belgi — “B”
- C3: 2-ustundagi belgi — raqam (digit)
Oqibatlar (Effects):
- E1: Fayl yangilandi
((C1 OR C2) AND C3) - E2: “X xabari” ko’rsatiladi
(NOT C1 AND NOT C2) - E3: “Y xabari” ko’rsatiladi
(NOT C3)
Sabab-Oqibat Grafigi Diagrammasi
Oqibatlarning Mantiqiy Tahlili
- E1 oqibati — Fayl yangilandi:
Ushbu natija hosil bo’lish mantig’i:(C1 OR C2) AND C3.C1 OR C2sharti bajarilishi uchunC1vaC2dan kamida biri rost bo’lishi kifoya.AND C3esa 2-ustun albatta raqam bo’lishi shartligini anglatadi. Ya’ni, fayl yangilanishi uchun 1-ustun “A” yoki “B” bo’lishi VA 2-ustun raqam bo’lishi shart. - E2 oqibati — “X xabari” ko’rsatildi:
Ushbu natija mantig’i:NOT C1 AND NOT C2. Bu 1-ustundagi belgi “A” ham, “B” ham bo’lmagan holatda ishga tushadi. Grafikda ko’rinib turganidek,C1 OR C2inkor qilinib (NOT), natijadaE2oqibati yuzaga keladi. - E3 oqibati — “Y xabari” ko’rsatildi:
Ushbu natija mantig’i:NOT C3. Bu 2-ustundagi belgi raqam bo’lmagan barcha holatlarda yuz beradi. GrafikdaC3sababiNOTmantiqiy operatori orqaliE3oqibatiga bog’langan.
Xulosa
Test muhandisi avval talablardagi sabablar va oqibatlarni aniqlab, ularni mantiqiy ifodalarga aylantiradi, so’ngra sabab-oqibat grafigini tuzadi.
Agar dastur kiritilgan sabablarga (input) muvofiq kutilgan oqibatlarni (output) to’g’ri bersa, funksiya nuqsonsiz hisoblanadi. Agar kutilgan va haqiqiy natijalar mos kelmasa, dasturchilar jamoasiga tuzatish uchun xatolik hisoboti (bug report) yuboriladi.