/Software Quality Assurance, Episode (1)

Software Quality Assurance, Episode (1)

تعتبر Software Quality Assurance من المواضيع المهمة اللي بتهملها كتير من الـ Software Projects بالرغم من أهميتها.  QA- Quality Assurance- معناها التأكد من ان الـ Product أو الـ Application اللي بتعمله مطابق للـ Requirements أو المتطلبات المحددة للمشروع، QA بيتضمن أنواع كتير من الـ testing، فيه ناس بتعمل دايماً الـ testing في آخر المشروع بس ده مش شرط لأن كل ما تتقدم في المشروع من غير testing ، كل ما كان اصلاح المشاكل اللي هتكتشفها اصعب.

Quality Engineers : فيه انواع مختلفة من الـ testing و بالتالي فيه انواع مختلفة من الـ engineers اللي بيعملوا الـ tests دول ، فيه 3 انواع اساسية :

1- Black Box : و ده بيعتمد على عمل test من خلال الـ  –User Interface -UI فقط

2- White Box : و فيه بيكون الـ test على الـكود و الـ Internals

3-Grey Box : و ده نوع بين الاتنين اللي فوق

و هنتكلم عن الانواع دي بتفصيل اكتر بعد شوية

 

انك تكون فاهم المشروع من high-level و ازاي الـ Quality بتتداخل مع بقية المحاور اللي في المشروع، ده بيخليك تفهم أكتر الانواع اللي فاتت، أي مشروع فيه 3 محاور رئيسية : 

1- Product Management : و ده بيهتم بجانب الـ Business و تحديد الـ Requirements للـ Product بتاعك . مين هيكون الـ Customers  و متطلباتهم والـ Pricing و ايه هي الـ Added Value في الـ Product

2- Development : وده جزء الـ Implementation أو الـ Engineering الأساسي. لو بتعمل Application مثلاً يبقى هو جزء كتابة الكود.

3- Quality : و ده الجزء اللي بتتأكد فيه من ان اللي بتعمله هو فعلاً مطابق للأهداف و الـ Requirements اللي حددتها

و الـ 3 محاور بتتحكم بشكل متساوي تقريباً في أي مشروع و فيه تداخل كبير منهم .

نتكلم بقى عن الـ 3 انواع اللي ذكرناهم قبل كده بشئ من التفصيل

1- Black Box : و ده بيركز على الـ Functionality من غير ما يبص على الـ Internal، بمعنى انه بيبص للـ Product من وجهة نظر الـ User من حيث الـ Interface و ان كل حاجة شغالة صح ملوش علاقة بالكود، وده التداخل بين الـ Quality و الـ Product Management. التسمية جت من Black Box ، لو عندك صندوق اسود فأنت مش هتقدر تبص غير عليه من بره ، مش هتقدر تشوف ايه اللي موجود جوه.

الناس اللي بتشتغل في Black Box Testing لازم يكون عندهم فهم كويس للخرج المتوقّع لكل دخل لكن مش محتاجين يكون عندهم أي مهارات برمجية. Black Box Tester بيبص برضه للـ Design و الـ Usability للـ Product وهل التعامل معاه user-friendly ولا لأ بوجه عام بيتعامل مع الـ – User eXperience – UX .

2- White Box : الـ Test ده بيكون very technical  و بيتم في الـ Code level . جت التسمية برضه من ان الـ box شفاف فبتكون شايف كل حاجة جوه، في النوع ده ، الـ Tester مش بيتعامل خالص مع الـ Design ولا الـ User Interface لكن بيتعامل مع الكود، و زي ما هو واضح لازم يكون عنده Experience زي الـ Developer بالظبط.

3- Grey Box : و هنا بيكون الصندوق semi-transparent و ده بيعتبر نقطة تحول بالنسبة للـ Black Box Tester لأنه هنا بيزيد الـ technical skills.

مثال على الأنواع دي ، لو فيه online form بيدخل فيها الـ user بياناته (username , password) و بعدين يضغط login الـ Black Box Tester بتكون وظيفته انه يجرب يدخل بيانات صح و بعدين يضغط login يشتغل من غير مشاكل ، و يبص برضه على الـ design بتاع الـ page وهل بتوفر User eXperience كويسة ولا لأ

الـ Grey Box Tester بيكون دوره اكتر من كده ، لو جرب يدخل بيانات و مشتغلتش ، بيبدأ يعرف السبب بما انه عنده technical experience أعلى ، ممكن في الحالة دي يستخدم Debugger مثلاً و يشوف المشكلة فين بالظبط ، مثلاً اكتشف المشكلة في ان مفيش Response من الـ Database عن طريق الـ Debugger بيحدد المشكلة و يقول للـ developing team.

دي كانت مقدمة بسيطة عن Quality Assurance و هنعرف المرة الجاية ازاي تشتغل في Quality Team و ايه هي اشهر انواع الـ Bugs و ازاي تحدد الأولويات و تتعامل معاها