🧪 التدريبات
كل تمرين «جرّب بنفسك» في مكان واحد: اقرأ المطلوب، ثم اكتب الحل وشغّله داخل صفحة الدرس.
الوحدة 1: مفاهيم ضمان جودة تطبيقات الويب
اكشف العيبتمهيدي · الدرس 1: لماذا ضمان الجودة؟ كلفة العيب
الدالة
اختبر دالة
الدالة
total تحسب إجمالي فاتورة (سعر × كمية). فيها عيب. اطبع الناتج الفعلي لـ total(50, 3)، والمتوقَّع، وهل تطابقا.←صندوق أسودتمهيدي · الدرس 2: أنواع الاختبار ومستوياتهاختبر دالة
is_even بمنهج الصندوق الأسود على حالاتٍ معطاة، واطبع عدد الحالات الناجحة.←الوحدة 2: تحديد متطلبات الاختبار
أكّد الصحةتمهيدي · الدرس 3: المتوقَّع مقابل الفعلي: أول assert
اكتب ثلاثة تأكيدات لدالة
دالة
اكتب ثلاثة تأكيدات لدالة
square: للمدخل 3 و0 و-2، ثم اطبع رسالة نجاح.←غطِّ الفئاتمتوسط · الدرس 4: حالات الاختبار: الصحيح والخطأ والحدّدالة
grade_pass تقبل درجة من 60 فأعلى. اختبرها على الحالات المعطاة (تشمل الحدّ 60) واطبع عدد الناجحة وعدد الفاشلة.←الوحدة 3: مراجعة التطبيقات وتحسينها
غطِّ الشرائحمتوسط · الدرس 5: التقسيم المكافئ وتحليل القيم الحدّية
دالة
الدالة
دالة
ship_fee: مجانًا فوق 200، و15 من 1 إلى 200، و0 للصفر أو أقل. اختبر الحالات المعطاة (تشمل الحدّ 200) واطبع عدد الناجحة.←اختبر الرفضمتوسط · الدرس 6: اختبار الاستثناءات والأخطاءالدالة
safe_div ترفع ZeroDivisionError عند القسمة على صفر. تحقّق أنها ترفع الخطأ، واطبع رسالة نجاح؛ وتحقّق أن safe_div(10,2)==5.←الوحدة 4: خطط الاختبار البرمجية
اكتب TestCaseمتوسط · الدرس 7: إطار
اكتب صنف
اكتب صنف اختبار لـ
unittest: TestCaseاكتب صنف
TestCase باسم TestAbs فيه اختباران لدالة my_abs: للمدخل 5 و-5 (المتوقَّع 5)، ثم شغّله.←هيّئ قبل الاختبارمتوسط · الدرس 8: التهيئة والتنظيف setUp و tearDownاكتب صنف اختبار لـ
Stack يستخدم setUp لإنشاء مكدّس جديد، ثم اختبارين: الفارغ (الحجم 0) وبعد دفع عنصر (الحجم 1). شغّله.←الوحدة 5: التوثيق وتقارير النتائج
اختبار مَعلَممتوسط · الدرس 9: الاختبارات المَعلَمة
اكتب اختبارًا مَعلَمًا لدالة
أكمل
اكتب اختبارًا مَعلَمًا لدالة
sign (تعيد "+", "-", "0") على الحالات المعطاة باستخدام subTest، ثم شغّله.←تحقّق من التقريرمتوسط · الدرس 10: توثيق العيوب: تقرير الخطأ الجيّدأكمل
missing_fields لتعيد قائمة الحقول المطلوبة الناقصة أو الفارغة في تقرير خطأ، ثم اطبعها لتقريرٍ ناقص.←الوحدة 6: تحليل وتقييم النتائج
رتّب العيوبمتوسط · الدرس 11: شدّة العيب وأولويته
أكمل
للدالة ذات الشرط
أكمل
priority: تعيد "P1" إن كانت الشدّة ≥ 4 أو العيب يمنع الشراء، و"P2" إن كانت الشدّة 3، و"P3" لغير ذلك. اطبع أولوية ثلاث حالات.←احسب التغطيةمتوسط · الدرس 12: تغطية الاختبار Coverageللدالة ذات الشرط
n % 2 == 0، احسب تغطية الفروع لمجموعة المدخلات: اطبع عدد الفروع الملموسة (من 2).←الوحدة 7: أدوات اختبار البرمجيات
أسلوب PyTestمتوسط · الدرس
اكتب دالتي اختبار بأسلوب PyTest (دالة +
اكتب اختبار
13: PyTest وأسلوب assertاكتب دالتي اختبار بأسلوب PyTest (دالة +
assert) لدالة slugify التي تحوّل النصّ لحروفٍ صغيرة بشرطة بدل الفراغ، ثم شغّلهما بالمجمِّع المعطى.←طبّق AAAمتوسط · الدرس 14: الأدوات الصناعية: JUnit و PHPUnit و NUnitاكتب اختبار
unittest لدالة join_name متّبعًا نمط AAA بوضوح (ترتيب ثم تنفيذ ثم تأكيد)، ثم شغّله. اختبر join_name("سعود","الحربي")=="سعود الحربي".←الوحدة 8: سيناريوهات اختبار شاملة
اختبر تدفّقًامتوسط · الدرس 15: اختبار الواجهة الآلي: Selenium و Cypress
حاكِ اختبار واجهةٍ لعدّاد: الصفحة فيها
من أزمنة الاستجابة، اطبع المتوسط مقرّبًا لمنزلة واحدة، وعدد الطلبات التي تجاوزت 200 مللي (البطيئة).←
حاكِ اختبار واجهةٍ لعدّاد: الصفحة فيها
count=0، وclick_plus تزيده. اضغط مرّتين وتحقّق أن العدّاد صار 2، ثم اطبع رسالة نجاح.←حلّل الحِملمتقدم · الدرس 16: اختبار الأداء والحِمل: JMeter و Gatlingمن أزمنة الاستجابة، اطبع المتوسط مقرّبًا لمنزلة واحدة، وعدد الطلبات التي تجاوزت 200 مللي (البطيئة).←
الوحدة 9: تقييم نتائج الاختبارات
راقب الاستدعاءمتقدم · الدرس 17: المحاكاة والبدائل: Mocks و Stubs
الدالة
كُتب اختبارٌ يفشل (أحمر) لدالة
الدالة
process تستدعي logger حين يكون المبلغ سالبًا. استخدم Mock وتحقّق أنه اُستُدعِي مرّةً لمبلغٍ سالب، واطبع عدد مرّات الاستدعاء.←أخضر بعد أحمرمتقدم · الدرس 18: التطوير الموجَّه بالاختبار TDDكُتب اختبارٌ يفشل (أحمر) لدالة
is_palindrome غير المكتملة. اكتب أقلّ كودٍ ينجّح الاختبارات، ثم شغّلها.←الوحدة 10: اختبار صحة البيانات والأوامر
اختبر التحقّقمتوسط · الدرس 19: اختبار صحة المدخلات
الدالة
اكتب اختبارين لدالة
الدالة
valid_qty تقبل عددًا صحيحًا من 1 إلى 100. اختبرها على الحالات المعطاة (تشمل الحدّين 1 و100) واطبع عدد الناجحة.←اختبر العقدمتقدم · الدرس 20: اختبار الـ API والتكاملاكتب اختبارين لدالة
login (تعيد (رمز، جسم)): الدخول الصحيح يعطي 200، والخاطئ يعطي 401. شغّلهما.←الوحدة 11: الأدوات في الاختبارات الشاملة
اختبر الدفاعمتقدم · الدرس 21: اختبار الأمان: OWASP ZAP و Burp Suite
الدالة
الدالة
الدالة
reject_xss ترفض المدخل إن احتوى <script. اختبرها: الاسم العاديّ يُقبَل، والمدخل الخبيث يُرفَض. اطبع عدد الحالات الناجحة.←احرس ضدّ العودةمتقدم · الدرس 22: اختبار الانحدار Regressionالدالة
apply_coupon أُصلِحت لتتعامل مع القسيمة الفارغة. اكتب اختبارين يحرسان: قسيمة صحيحة تخصم 10، وقسيمة فارغة لا تخصم. شغّلهما.←الوحدة 12: الاختبارات الشاملة وتقييمها
بوّابة CIمتوسط · الدرس 23: التكامل المستمر CI وبيئات الاختبار
حاكِ بوّابة CI: دالة
أكمل
من سجلّ العيوب، احسب أكثر مجالٍ تكرارًا للعيوب، واطبع اسمه وعدد عيوبه.←المشروع الختاميمتقدم · الدرس 26: مشروع: خطة اختبار كاملة وتنفيذها
اكتب مجموعة اختبارٍ كاملة لدالة
حاكِ بوّابة CI: دالة
ci_gate تأخذ قائمة نتائج اختبارات (True=نجح) وتعيد "pass" إن نجحت كلّها وإلا "fail". اطبع نتيجة مجموعتين.←قرار الإطلاقمتقدم · الدرس 24: معايير القبول ومعايير الخروجأكمل
can_release: تعيد True فقط إن كانت العيوب الحرجة 0 والتغطية ≥ 85. اطبع قرار حالتين.←اعرف أين تحسّنمتقدم · الدرس 25: أخلاقيات الاختبار والجودة الشاملةمن سجلّ العيوب، احسب أكثر مجالٍ تكرارًا للعيوب، واطبع اسمه وعدد عيوبه.←المشروع الختاميمتقدم · الدرس 26: مشروع: خطة اختبار كاملة وتنفيذها
اكتب مجموعة اختبارٍ كاملة لدالة
final_price (سعر مع خصم): حالة صحيحة، حالة خصم، وحالة خطأ (سعر سالب يرفع ValueError). شغّلها.←