Software Testing
في ظل الحَجر والبحث عن شيء مُسلي اكتشفنا حاجة غريبة جداً ..
من كام سنة اضطرت ستاربكس لغلق حوالي 60% من المتاجر في الولايات المتحدة وكندا، لاقينا أن السبب هو فشل في الـ (Software) بتاعها!
ودا أدى إلى أنها تقدم القهوة مجانًا في الفترة دي 😋
لاقينا أن حصل كدا كمان مع أمازون لما بائعين التجزئة شافوا سعر منتجهم انخفض بسبب خلل في الـ Software بردو، كان سبب في خسارة كبيرة جدًا لهم 😔
حصل كوارث كتير جدًا، فكان السبب المشترك هو خلل الـ Software لكن مع الوقت عالجوا المشاكل دي من خلال عمل Software Testing
فقررنا نقوم برحلة إلى كوكب كبير جدًا أغلب كُليتنا بتعيش فيه 🚀
وهو كوكب الـ Software .. طبعًا إحنا عارفين أن الكوكب دا فيه محطات كتير زي الـ Specification, Design & Implementation, Evaluation مهمة جداً لـ نجاح أي System ولكن هنروح لـ محطة الـ Testing نشوف فيها أي مهم قوي كدا 🏃🏻♂️
وصلنا لـ محطة الـ Testing وقابلنا Levels متقسمة ورا بعض، هنستكشفها في رحلتنا دي 🔍
👣 👣
أول Level كان الـ Unit Testing:
- فيها الـ Tester بيختبر جزء بسيط من الـ SW زي Functions, Constructors, Destructors.
- بيضمن ويجرب أنها شغالة كويس ومافيش إيرور.
- ممكن يعمل Test للجزء دا أكتر من مرة كمان بس في كل الحالات الـ Unit Testing مش بيتأكد من الوظيفة بصورة كاملة.
- لكن بيزيد من الكفاءة ويقلل الوقت والتكلفة.
- اللي بيشتغل في المرحلة دي هو الـ Developer المختص في الـ White-box.
طيب إيه الـ White-box دا!
- مش عارف، نكمل استكشاف يمكن نعرف في الآخر 🚶🏻
🔍 👣
تاني Level كان الـ Integration Testing:
- بيبدأ الـ Tester يجمع كل جزء بسيط عمله Test في المرحلة الـ فاتت ويعملها Integration يعني يكملها ببعض ويختبرها.
- بيعمل Test للـ Interfaces بين الـ Components وبعضها.. وبين الـ System والتاني عشان يتأكد أن مافيش Defects .
👣
تالت Level كان الـ System Testing:
- بعد ما جمّع كل الأجزاء في المرحلة اللي فاتت ويختبرها كدا معانا System كامل بقا نعمله Testing ككل بكل محتوياته.
- بس الـ Tester بيحاول تكون الـ Environment اللي هيستخدمها في SW Testing تكون مشابهة للخاصة بـ Production اللي شغال عليه عشان يقلل الـ Risk الي ممكن يحصل لو فيه اختلاف.
👣
رابع Level والأخير كان الـ Acceptance Testing:
- معظمهم بيضيفوا المرحلة دي.. بيكون الـ System جاهز خلاص بعد المراحل اللي فاتت أنه يتقدم للعميل.
- بيختبر فيه الـ System وتقييمه للاستخدام.
- مش شرط تكون المرحلة دي في الآخر.. ممكن أعملها بعد أي مرحلة من اللي فاتت وأشوف مدى صلاحياتهم للاستخدام.
• وأخيراً، خلاص هقولك إيه الـ White-box الـ سألت عليه في الأول 😌
في البداية خالص اللي هيشتغلوا على SW Testing بيتقسموا لمجموعات كدا كل مجموعة بتشتغل على مراحل معينة.. فعندنا:
- الـ White-box: بيشتغلوا على مرحلة الـ Unit Testing.
- الـ Black-box: بيشتغلوا على المراحل كلها.
- الـ Gray-box: دا بقى Hybrid يعني بيشتغل على المجموعتين اللي فاتت بس بيهتم أكتر بـ Data Structure.
كدا تكون انتهت رحلتنا وعرفنا بيها معلومات بسيطة عن مجال مهم ووظيفة مهمة جدًا ✨
والآن، نستعد للهبوط ونعلن انتهاء الرحلة 🛸