Sinf testlarining to'liqlik darajasini aniqlash. Sinov uchun modul sifatida sinf tanlangan bo'lsa, uni sinovdan o'tkazishning to'liqlik darajasini qanday aniqlash mumkinligi to'liq aniq emas. Bir tomondan, siz dastur kodini testlar bilan to'liq qamrab olishning klassik mezonidan foydalanishingiz mumkin - agar barcha usullarning barcha tarkibiy elementlari - ham ochiq, ham yashirin - to'liq amalga oshirilgan bo'lsa, u holda testlarni to'liq deb hisoblash mumkin.
Biroq, sinfni sinovdan o'tkazishning muqobil yondashuvi mavjud, unga ko'ra barcha ommaviy usullar ushbu sinf foydalanuvchisini izchil ish sxemasi bilan ta'minlashi kerak va bu sinf bilan ishlashning odatiy to'g'ri va noto'g'ri stsenariylarini tekshirish kifoya. Ya'ni, masalan, ob'ektlari telefon kitobidagi yozuvlarni aks ettiruvchi sinfda odatiy ish stsenariylaridan biri "Yozuv yaratish, yozuvni qidirish va uni topish, yozuvni o'chirish, yozuvni qayta qidirish va olish" bo'ladi. xato xabari."
Ushbu ikki usuldagi farqlar qora quti va oq quti sinovlari o'rtasidagi farqni eslatadi, lekin aslida ikkinchi yondashuv qora qutidan farq qiladi, chunki tizimga qo'yiladigan funktsional talablar alohida sinflarga qaraganda yuqori darajada yozilishi mumkin. va test holatlarining talablarga muvofiqligini aniqlash sinovchiga to'lash uchun qoldiriladi .
Ob'ektlarning holatini va ularning o'zgarishlarini qayd qilish.Ba'zi sinf usullari foydalanuvchiga ma'lumot berish uchun emas, balki sinf ob'ektining ichki ma'lumotlarini o'zgartirish uchun mo'ljallangan. Ob'ektning ichki ma'lumotlarining qiymati vaqtning har bir alohida momentida uning holatini aniqlaydi va ma'lumotlarni o'zgartiruvchi usullarni chaqirish ham ob'ekt holatini o'zgartiradi. Sinflarni sinovdan o'tkazishda sinf har qanday shtatdagi tashqi qo'ng'iroqlarga etarli darajada javob berishini tekshirish kerak. Biroq, ko'pincha, ma'lumotlarning inkapsulyatsiyasi tufayli, drayverning ichida dasturiy ravishda sinfning ichki holatini aniqlash mumkin emas.
Bunday holda, u ma'lum holatlar to'plamiga ega bo'lgan cheklangan holat mashinasi sifatida ob'ektning xatti-harakati diagrammasini tuzishga yordam beradi (2-mavzuda "Signal generatorlari. Hodisaga asoslangan kod" bo'limida tasvirlanganiga o'xshash. ”). Bunday diagramma past darajadagi dizayn hujjatlariga kiritilishi mumkin (masalan, tizim arxitekturasi tavsifining bir qismi sifatida) yoki tizimga qo'yiladigan funktsional talablar asosida sinovchi yoki ishlab chiquvchi tomonidan tuzilishi mumkin. Ikkinchi holda, barcha mumkin bo'lgan holatlarni aniqlash dastur kodini qo'lda tahlil qilishni va uning talablarga muvofiqligini aniqlashni talab qilishi mumkin. Bu holatda avtomatlashtirilgan sinov faqat barcha aniqlangan holatlar uchun o'tishlar amalga oshirilganligini va barcha mumkin bo'lgan reaktsiyalar tekshirilganligini aniqlashi mumkin.