الفصل القادم سأقوم بتدريس مادة #جودة_البرمجيات #software #quality في مرحلة الماجستير في جامعة الملك سعود وهي المرة الثانية التي أقوم فيها بتدريس المادة. المرة الأولى كانت ناجحة بأكثر مما تصورت بكثير ولله الحمد وشجعتني أعيد طرح المادة. خلوني أدردش هنا حول هذا الموضوع.
هل التخصص مطلوب؟ من تجربتي في السوق نعم هناك حاجة ماسة وبالمقابل هناك ندرة في الكوادر المتخصصة.
هل التخصص مهم؟ جدا، وقد لاحظت إهمال للجودة وعدم الانتباه الا في وقت متأخر بعدما يقع الفاس في الرأس ويخرج منتج (نظام، تطبيق، موقع ...) مخالف لما يريده العميل او منتج رديء او الاثنين
هل التخصص مهم؟ جدا، وقد لاحظت إهمال للجودة وعدم الانتباه الا في وقت متأخر بعدما يقع الفاس في الرأس ويخرج منتج (نظام، تطبيق، موقع ...) مخالف لما يريده العميل او منتج رديء او الاثنين
ماذا تعني جودة البرمجيات؟ باختصار هي عملية التأكد من:
١- بناء المنتج الذي يريده العميل
Validation - build the right product
٢- بناء المنتج بالشكل الصحيح verification - build the product right
١- بناء المنتج الذي يريده العميل
Validation - build the right product
٢- بناء المنتج بالشكل الصحيح verification - build the product right
كيف تتم عملية التأكد من جودة البرمجيات؟ ١- العملية تتم عبر عدة أنواع من الاختبارات software testing (سأذكرها لاحقا) والتي يتم تصنيفها تبعًا للغرض من الاختبار.
٢- هدف هذه الاختبارات هو ايجاد أكبر قدر ممكن من الأخطاء. هذا هام جدا ويجب ان لا يغيب عن الذهن ابدا
٢- هدف هذه الاختبارات هو ايجاد أكبر قدر ممكن من الأخطاء. هذا هام جدا ويجب ان لا يغيب عن الذهن ابدا
٥- العملية تتضمن كتابة قدر كبير من الكود البرمجي وقد ولى عصر مهندس جودة البرمجيات الذي لا يكتب كود برمجي. أصبحت مهمة مهندس جودة البرمجيات تتوزع بين فهم المتطلبات ومن ثم كتابة حالات الاختبار test cases وبعد ذلك أتمتة هذه العملية. لماذا؟
لانه يجب اعادة اختبار المنتج بشكل كامل مع كل نسخة جديدة وهو ما يسمى بال regression testing. في هذه الحالة فأمامك خيارين: اما توظيف المزيد من مهندسي الجودة بشكل مستمر لتواكب التزايد في عدد حالات الاختبار مع نمو المنتج وازدياد الخصائص features التي يؤديها او “أتمتة الاختبار”
ما هي مواصفات مهندس جودة البرمجيات الناجح (وش احتاج منك عشان تعدي المادة ?)؟
(حاب اؤكد ان طلابي كانوا جدا مبسوطين وكانت الدرجات ممتازة الحمد لله ?). بناء على نقطة رقم ٢ فان ابداع مهندس جودة البرمجيات يتمثل في التفنن في ايجاد أكبر قدر من الأخطاء البرمجية او البقز bugs ? (يتبع)
(حاب اؤكد ان طلابي كانوا جدا مبسوطين وكانت الدرجات ممتازة الحمد لله ?). بناء على نقطة رقم ٢ فان ابداع مهندس جودة البرمجيات يتمثل في التفنن في ايجاد أكبر قدر من الأخطاء البرمجية او البقز bugs ? (يتبع)
وبالتالي فإن مقياس الاداء الرئيسي KPI له هو عدد البقز اللي يلقاها. جزء هام من الكورس اقضيه في تعليم الطالب فن "تخريب البرامج" ?(اذا صح التعبير) بطريقة منهجية ومرتبة. في الحقيقة الطالب يكون عنده المبادئ الأساسية لإيجاد الثغرات vulnerabilities وليس فقط البقز (اي ثغرة هي أساسًا بق)
اضافة الى ذلك، يحتاج مهندس الجودة إلى تعلم البرمجة واستخدام أدوات الاوتوميشن ومن أشهرها:
١- Selenium selenium.dev لأتمتة اختبارات مواقع الويب.
٢- Appium appium.io لأتمتة اختبارات تطبيقات الجوالات
٣- Cucumber cucumber.ioلعمل ال BDD عموما
١- Selenium selenium.dev لأتمتة اختبارات مواقع الويب.
٢- Appium appium.io لأتمتة اختبارات تطبيقات الجوالات
٣- Cucumber cucumber.ioلعمل ال BDD عموما
جاري تحميل الاقتراحات...