/Software Quality Assurance, Episode (5)

Software Quality Assurance, Episode (5)

Some Test Types

 

فيه تصنيفات كتير لأنواع الـ Testing هنتكلم عن شوية منهم :

أول نوعين هنتكلم عنهم هم frontend test و backend test

frontend يعتبر مكافئ للـ blackbox test اللي بيتم فيه التعامل مع الـ app كأنه Blackbox

backend بيتعامل مع الـ internals و الـ development

1

في frontend test فيه نوعين اساسيين :

1- Discrete Test : و فيه بيتم اختبار كل functionality منفصلة ، و تحديد الـ cases المختلفة و عمل validation ليها

مثال : لو بنعمل discrete test على form بيدخل الـ username و الـ password و بعدين يضغط login

فيه حالات كتير ، المفروض لو شغال صح مش هيكمل للصفحة اللي بعدها إلا لو كان الـ username و الـ password صح ، غير كده في أي حالة تانية المفروض يكون فيه error. ده هو الـ behavior المتوقع و المنطقي و لو حصل غير كده يبقى فيه bug

2- Scenario Test : و فيه مش بيتم اختبار كل functionality لوحدها ، ﻷن ممكن يكون كل جزء لوحده شغال كويس لكن لما تتجمع كل الأجزاء مع بعض و يكون بينها integration تبدأ تظهر مشاكل. في الـ scenario test المفروض quality engineer يجرّب الـ app من خلال عين الـ user . بمعنى انه يتوقع كل الفئات المختلفة من الـ users و كل الحاجات اللي ممكن يستخدموها في الـ application .

مثال: لو فيه application وظيفته انه Text editor  فيه شوية functionalities اساسية لازم تكون موجودة فيه زي ان الـ user يقدر يدخل text و انه يقدر يعمل copy و paste و انه يقدر يغيّر حجم الخط و لونه و هكذا ، لكن فيه حاجات تانية لازم الـ Quality Engineer يفكر فيها زي مثلاً ايه هي الـ options اللي هتكون متاحة للـ user اثناء الـ Install  ، و الـ Uninstall هل هيكون سهل بالنسبة للـ user ولا هيأثر على ملفات الـ System و يحذف ملفات منها. لازم يكون متوقع برضه ان الـ application بتاعه هيستخدمه users من دول مختلفة فيحط ف حسابه ان يكون فيه language packs اضافية موجودة ، كمان لو هيكون فيه Users من ذوي الاعاقات ، لازم يفكر في طريقة Input مختلفة غير الkeyboard و كمان وسيلة قراءة تانية غير الشاشة زي screen readers . لازم الـ quality engineers يفكر في كل الـ Scenarios الممكنة و يشوف الـ Application كأنه user و يشوفه من high-level كـ System متكامل مش يعمل بس test لكل جزء منفصل زي ما كان في الـ discrete test

بالنسبة للـ backend test فيه 3 انواع اساسية

1- Load Test : ده يهمه إزاي الـ Application هيتعامل مع اعداد مختلفة من الـ users  في اي وقت. لما بنتكلم عنها عن الـ users فيه نوعين اساسيين

concurrent users : و دول اللي connected على الـ Application في نفس الوقت

simultaneous users : دول اللي connected على الـ Application في نفس الوقت و بيأدوا نفس الوظيفة

 

2-Performance Test : ده بيهتم بالزمن اللي بتستغرقه process معينة تحت انواع مختلفة من الـ loads

3- Stress Test : وده خاص بأقصى عدد من الـ users اللي ممكن يتعامل معاهم الـ Application. و ده اهم معيار من معايير الـ scalability او التوسع بالنسبة للأبلكيشن. بمعنى آخر ، العدد اللي بعده ممكن الـ Application يحصله fail

 

و في كل الانواع اللي فاتت من الـ test ، مبتوصلش لأرقام exact خصوصاً مع الـ systems الكبيرة اللي فيها processes كتير جداً. كل التعامل بيكون مع Averages و بيتكرر نفس الـ test اكتر من مرة و في ظروف مختلفة ، و ممكن الـ test الواحد ياخد ساعات او ايام كمان.