Be Tester
it is Channel Specialized in information Technology & aim to Spread The Culture of Technology
03/10/2025
ازاي تعمل Test لـ AI model معندكش ليه Expected Result ثابتة وواضحة؟ 🤔
دي مشكلة بتقابل أي حد بيشتغل في الـ Quality على Systems معقدة زي اللي بتعتمد على الـ Machine Learning.
اسمها الـ Test Oracle Problem.
يعني ببساطة، صعب جدًا أو مستحيل أحيانًا، إنك تعرف "الإجابة الصح" المفروض الـ System يطلعها لكل Input بتدخله.
تخيل بتعمل Test لـ Recommendation Engine، أو لـ AI بيحلل صور طبية. هتجيب الـ Expected Result منين لكل حالة؟
هنا بيجي دور تكنيك عبقري اسمه: Metamorphic Testing (MT).
الفكرة مش إننا بندور على Output صح، لأ، إحنا بندور على "سلوك" صح.
بنركز على العلاقات المنطقية اللي المفروض تحكم الـ System، واللي بنسميها Metamorphic Relations (MRs).
يعني إيه الكلام ده؟
تخيل عندك AI model بيتعرف على الصور.
الـ source test case بتاعتك هي صورة قطة، والـ Model قال "قطة". تمام.
الـ Metamorphic Relation (MR) هنا ممكن تكون: "تغيير إضاءة الصورة أو دورانها بنسبة بسيطة المفروض ميغيرش النتيجة".
فبناءً على الـ MR دي، هنبدأ نولد follow-up test cases:
نفس الصورة بإضاءة أعلى.
نفس الصورة معمولها rotate بزاوية 5 درجات.
نفس الصورة معمولة flip.
في كل الحالات دي، الـ Expected Behavior هو إن الـ Model يفضل يقول "قطة".
لو في أي حالة منهم قال "كلب" أو معرفش يتعرف عليها، يبقى هنا فيه Bug.
إحنا هنا معملناش validation لـ Output معين، إحنا عملنا validation لعلاقة منطقية وسلوك متوقع.
الـ Metamorphic Testing بيغير طريقة تفكيرنا من "هل الناتج صح؟" لـ "هل سلوك الـ System منطقي ومتسق؟".
التكنيك ده مش مجرد فكرة نظرية، ده تكنيك معترف بيه وموجود في الـ Standard بتاع الـ Test Techniques وهو ISO/IEC/IEEE 29119-4.
طيب إزاي تبدأ تطبقه عملي؟ ⚙️
• حدد الخصائص الأساسية: قبل ما تكتب أي Code، فكر في الـ Business Logic. إيه القواعد اللي المفروض الـ System يلتزم بيها دايماً؟ دي هي الـ MRs بتاعتك. مثلاً في موقع e-commerce، لو ضفت filter للسعر "الأقل أولاً" وبعدين ضفت filter تاني للـ brand، ترتيب السعر المفروض يفضل سليم.
• ابدأ بـ Source Case بسيطة: اعمل Test Case أساسية وبسيطة وتأكد إنها بتعدي. دي هتكون نقطة البداية اللي هتولد منها باقي الـ Test Cases.
• ولّد الـ Follow-up Cases: استخدم الـ MR اللي حددتها عشان تعمل تغييرات على الـ Input بتاع الـ Source Case. كل تغيير هو Follow-up Test Case جديدة.
• الـ Automation هو مفتاح النجاح: عملية توليد الـ cases دي وتطبيق التغييرات عليها مثالية جدًا للـ Automation. ممكن تعمل script يغير الـ parameters بشكل تلقائي وينفذ الـ Tests.
• الـ Assertion بتاعك بيتغير: بدل ما بتعمل assert على قيمة ثابتة (e.g., assertEquals(expected, actual)), هتعمل assert على العلاقة بين النتائج (e.g., assertTrue(output1.equals(output2))).
الـ Metamorphic Testing هو نقلة نوعية في الـ Testing Mindset، ومهارة أساسية لأي حد بيتعامل مع الـ AI/ML Systems المعقدة. ✅
جربت تستخدم الـ Metamorphic Testing قبل كده في شغلك؟ إيه أكبر تحدي قابلته في الـ AI Testing؟
شاركنا رأيك وخبرتك في الكومنتات!
21/08/2025
سألت نفسك قبل كده ليه مفيش شركة برمجة محترمة مش بتطلب تكون بتعرف Git & GitHub؟
عشان ببساطة محدش عنده وقت يدوّر على آخر نسخة شغالة من الكود.
عشان لما 5 يشتغلوا على مشروع واحد، الدنيا مش هتمشي بالـ USB والـ WeTransfer.
عشان الـ CV بتاعك ممكن يترمي لو الـ Recruiter دخل على بروفايل الـ GitHub بتاعك ولقاه فاضي.
الـ GitHub هو معرض أعمالك، والـ Git هي الأداة اللي بتخليك فنان.
في الكورس بتاعنا، مش بس هتتعلم أوامر... لأ، أنت هتتعلم "طريقة تفكير" المحترفين. هتفهم إزاي تدير مشاريعك صح وتشتغل مع أي تيم بثقة.
مستعد تخلي الـ CV بتاعك أقوى؟
يلا مستنى ايه متضيعش وقت وكلمنا على
01200088785
Click here to claim your Sponsored Listing.
Category
Contact the school
Telephone
Website
Address
Cairo