المشاركات

عرض الرسائل ذات التصنيف Testing

1.3 Testing - Integration Testing

🧩 الجزء الثالث: Integration Testing – اختبار التكامل ✅ تعريف بسيط: Integration Testing هو اختبار بنعمله علشان نتأكد إن الأجزاء المختلفة من الكود (زي الكلاسات أو الموديولات) بتشتغل مع بعض بشكل سليم. 💡 الفرق بين Unit و Integration: المقارنة Unit Testing Integration Testing بيختبر إيه؟ دالة أو وحدة واحدة فقط أكثر من جزء متصل ببعض مثال؟ دالة Add(int a, int b) دالة بتسحب بيانات من قاعدة البيانات وتعرضها سريع ولا بطيء؟ سريع جدًا أبطأ شوية لأنه بيشمل أكتر من مكون بيعتمد على إيه؟ كل حاجة داخل الكود بس ممكن يتعامل مع DB أو API 🎯 إمتى نستخدم Integration Testing؟ لو عندك كلاس بيتعامل مع قاعدة بيانات. لو دالة بتستدعي API أو خدمة خارجية. لو عندك أكثر من كلاس بيتعاونوا عشان يطلعوا نتيجة معينة. لو بتتأكد إن الـ Repositories، الـ Services، والـ Controllers شغالين سوا كويس. 🔧 مثال عملي: نفترض عندك كود زي كده: public class UserRepository { private readonly DbContext _context; public UserRepository(DbContext context) { _cont...

1.2 Testing - What is Unit Testing

🧩 الجزء الثاني: إيه هو الـ Unit Testing؟ ✅ التعريف: Unit Testing هو اختبار بنعمله على "وحدة" صغيرة جدًا من الكود (غالبًا بتكون دالة أو ميثود)، علشان نتاكد إنها بتشتغل زي ما متوقع. 🎯 الهدف: نتاكد إن الدالة أو الوحدة اللي بنختبرها شغالة صح. لو حد غيرك عدّل عليها، تقدر تعرف بسرعة لو حصلت مشكلة. نقدر نعمل refactor للكود بأمان (يعني نعدله بدون خوف من تخريب حاجة تانية). 🧪 مثال واقعي بسيط: لو عندك دالة بتضيف رقمين: public class Calculator { public int Add(int a, int b) { return a + b; } } مهم جدًا تتأكد إن Add(2, 3) = 5، وإن Add(-1, 1) = 0، وهكذا. ✅ مكونات الـ Unit Test: أي اختبار بيبقى فيه 3 خطوات رئيسية بنسميها: Arrange – جهز البيانات أو الحالات اللي هتشتغل عليها. Act – نفذ الدالة اللي عايز تختبرها. Assert – قارن النتيجة المتوقعة باللي فعليًا حصل. 📦 مثال عملي باستخدام xUnit: using Xunit; public class CalculatorTests { [Fact] public void Add_TwoPositiveNumbers_ReturnsCorrectSum() { // Arrange ...

1.1 Testing - Overview

🧩 الجزء الأول: ما هو الـ Software Testing؟ الـ Testing ببساطة هو عملية التأكد إن البرنامج اللي كتبناه شغال صح، وبيعمل اللي المفروض يعمله، ومفيهوش أخطاء ممكن تأثر على المستخدم أو تسبب مشاكل في المستقبل. 🎯 الهدف من الـ Testing: التأكد من صحة النتائج. اكتشاف الأخطاء بدري قبل ما البرنامج يوصل للمستخدم. تقليل تكلفة الصيانة بعد كده. زيادة ثقة الفريق في الكود. 📦 أنواع الـ Testing الرئيسية: دي نظرة سريعة، وهنشرح كل نوع في جزء خاص: Unit Testing – اختبار جزء صغير جدًا من الكود (زي دالة واحدة). Integration Testing – اختبار دمج أجزاء الكود مع بعض (زي كلاس مع دالة). System Testing – اختبار النظام ككل. Acceptance Testing – اختبار إن المنتج يلبي طلب العميل. Regression Testing – اختبار إن التعديلات الجديدة مابوظتش حاجات كانت شغالة. UI Testing / Automated Testing – اختبار الواجهة بشكل آلي. 🧠 ليه مهم تتعلم Testing كـ مبرمج؟ بتساعدك تكتب كود أنظف (Clean Code). بتخلي عندك ثقة أكبر في التعديلات اللي بتعملها. لما تشتغل في فريق كبير، الـ Testing بيكون أساسي ...