ضمان الجودة وضبط الجودة والاختبار

ضمان الجودة (Quality Assurance) وضبط الجودة (Quality Control)، ويُسمّى أيضاً مراقبة الجودة، طريقتان متكاملتان للوصول إلى الجودة التي وصفها درس جودة البرمجيات. ضمان الجودة (QA) موجّه نحو العملية ووقائي: يحسّن طريقة عمل الفريق حتى تُرتكب عيوب أقل. أما ضبط الجودة (QC) فموجّه نحو المنتج وتصحيحي: يفحص ما بُني، ويحدد مواضع قصوره، ويضمن إصلاح تلك العيوب. والاختبار شكل رئيسي من أشكال ضبط الجودة.

مثال: ثلاثة إصدارات متتالية خرجت بشاشات عربية تُقصّ فيها تسميات الأزرار. اختبار الإصدار التالي والإبلاغ عن كل تسمية مقصوصة ضبطٌ للجودة: يصحّح هذه العيوب في هذا المنتج. أما إضافة «كل شاشة جديدة تُفحص بالعربية على هاتف ضيق الشاشة» إلى تعريف الإنجاز (Definition of Done) لدى الفريق، أي قائمة الشروط التي يجب أن تستوفيها القصة قبل أن يعدّها الفريق منتهية، فضمانٌ للجودة: يجعل العيب أقل احتمالاً في كل شاشة قادمة.

لماذا يهم

الفريق الذي يظن أن «QA» تعني «المختبِرين في النهاية» يظل يجد الأنواع نفسها من العيوب، لأن أحداً لا يغيّر ما يُنتجها. والفريق الذي يكتب الإجراءات ولا يفحص المنتج أبداً لديه وثائق بدلاً من الأدلة. ويشير منهج ISTQB للمستوى التأسيسي (الإصدار ⁦4.0⁩) إلى أن نتائج الاختبار تخدم الجانبين: ففي ضبط الجودة تُستخدم لإصلاح العيوب، وفي ضمان الجودة تقدّم تغذية راجعة عن مدى جودة أداء عمليتي التطوير والاختبار.

وبالنسبة إليك بوصفك مختبِراً، يحدد هذا التمييز ما تفعله بما تجده: تقرير العيب يُصلح عيباً واحداً، أما نمط من العيوب تعرضه بالأدلة فقد يغيّر عملية كاملة.

ضمان الجودة: حسّن العملية وامنع العيوب

يصف منهج ISTQB للمستوى التأسيسي (الإصدار ⁦4.0⁩) ضمان الجودة بأنه نهج موجّه نحو العملية ووقائي، يركّز على تطبيق العمليات وتحسينها. ويفترض أن العملية الجيدة إذا اتُّبعت بشكل صحيح أنتجت منتجاً جيداً. ويشمل ضمان الجودة عملية التطوير وعملية الاختبار، وهو مسؤولية كل من في المشروع، لا مسؤولية قسم واحد. ومن أنشطته المعتادة:

  • الاتفاق على تعريف الإنجاز وعلى معايير الدخول ومعايير الخروج (Entry and exit criteria)، أي شروط بدء جزء من العمل وإنهائه، للقصص والإصدارات.
  • معايير وقوالب لكتابة قصص المستخدم وحالات الاختبار وتقارير الأخطاء.
  • خطوات إلزامية في سير العمل، مثل مراجعة الكود قبل كل دمج.
  • تحليل السبب الجذري للعيوب التي أفلتت إلى الإنتاج، يتبعه تغيير محدد واحد في العملية.
  • التدريب، والتأكد من أن الفريق يتبع ما اتفق عليه (تدقيق العملية).

جرّبها: مولّد معايير القبول

ضبط الجودة: افحص المنتج وصحّح العيوب

ويصف المنهج نفسه ضبط الجودة بأنه نهج موجّه نحو المنتج وتصحيحي، يركّز على الأنشطة التي تدعم بلوغ مستويات الجودة المناسبة. والاختبار شكل رئيسي من أشكاله، ومن الأشكال الأخرى التي يذكرها المنهج: الأساليب الرسمية (Formal Methods) مثل فحص النماذج وإثبات الصحة، والمحاكاة (Simulation)، والنماذج الأولية (Prototyping).

و«المنتج» يعني أي ناتج عمل، لا التطبيق النهائي وحده. فمراجعة وثيقة متطلبات وتسجيل عيوبها ضبطٌ لجودة تلك الوثيقة، لأن المراجعة شكل من أشكال الاختبار الساكن (Static Testing)، أي فحص ناتج العمل دون تشغيل البرنامج، بخلاف الاختبار الديناميكي (Dynamic Testing) الذي يشغّل البرنامج. ويتناول الدرس التالي الاختبار الساكن والديناميكي. وقد تقع المراجعة في الجانبين: مراجعة مواصفة واحدة ضبطٌ للجودة، وجعل المراجعة إلزامية لكل مواصفة ضمانٌ للجودة.

  • تنفيذ حالات الاختبار على نسخة البناء (Build) والإبلاغ عن الإخفاقات.
  • إعادة تشغيل الاختبار الذي فشل بعد الإصلاح، للتأكد من زوال العيب.
  • إتاحة نموذج أولي قابل للنقر للمستخدمين ليجرّبوه قبل بناء الميزة.

جرّبها: مولّد حالات الاختبار جرّبها: المتطلبات ← حالات اختبار

مثال تطبيقي: عيب متكرر واستجابتان

لا يحل ضمان الجودة وضبط الجودة أحدهما محل الآخر. فضبط الجودة بلا ضمان للجودة يجد العيوب نفسها مرة بعد مرة، وضمان الجودة بلا ضبط للجودة لا يملك دليلاً على أن المنتج جيد ولا على أن العملية تنجح.

الموقف: متجر إلكتروني أصدر ثلاث نسخ حُسب فيها الخصم خطأً عند الدفع، وفي كل مرة كان العميل أول من يلاحظ. آخر حالة: عضو يحصل على خصم ⁦10%⁩ استخدم قسيمة بقيمة ⁦50.00⁩ ريال على سلة قيمتها ⁦300.00⁩ ريال. وكان مالك المنتج (Product Owner) قد قرر أن يُطبَّق خصم ⁦10%⁩ أولاً (⁦270.00⁩، ثم ⁦220.00⁩ ريال بعد القسيمة)، لكن صفحة الدفع طبّقت القسيمة أولاً (⁦250.00⁩، ثم ⁦225.00⁩ ريال).

  • ضبط الجودة: يعيد المختبِر إنتاج الإجمالي ⁦225.00⁩ ريال بالسلة والحساب والقسيمة نفسها، ويبلّغ عنه مع المبلغ المتوقع ⁦220.00⁩ ريال، ثم يعيد تشغيل الاختبار بعد الإصلاح ويضيف الحالة إلى حزمة الانحدار.
  • ضمان الجودة: يسأل الاجتماع الاسترجاعي (Retrospective)، وهو اجتماع منتظم يناقش فيه الفريق طريقة عمله، لماذا وقع العيب ولماذا لم يُكتشف. كان ترتيب تطبيق الخصومات مذكوراً في محادثة جانبية مع مالك المنتج فقط، فخمّن كلٌّ من المطورين والمختبِرين.
  • ضمان الجودة: من الآن فصاعداً تحمل كل قصة تخص التسعير قواعدها في صورة معايير قبول بأمثلة رقمية محسوبة، مثل السلة التي قيمتها ⁦300.00⁩ ريال أعلاه، ويراجعها مختبِر قبل التطوير.
  • ضمان الجودة: في الإصدارات التالية يتابع الفريق هل ما زالت عيوب التسعير تفلت. وصارت نتائج الاختبار تغذية راجعة عن العملية، لا عن المنتج وحده.
يحسّن ضمان الجودة العملية حتى تُرتكب عيوب أقل، ويفحص ضبط الجودة المنتج لإيجاد العيوب وتصحيحها، والاختبار شكل رئيسي من أشكال ضبط الجودة.

ضمان الجودة (QA)

موجّه نحو العملية، وقائي

ينظر في:
طريقة عمل الفريق: المتطلبات والمراجعات وقواعد الإصدار
الهدف:
أن تُرتكب عيوب أقل
السؤال الذي يطرحه:
هل ستُنتج طريقة عملنا منتجاً جيداً؟
في مثال الخصم:
تصبح قواعد التسعير معايير قبول تُراجَع قبل التطوير
من يقوم به:
كل من في المشروع
نتائج الاختبار:
تغذية راجعة عن أداء العمليات

ضبط الجودة (QC)

موجّه نحو المنتج، تصحيحي

ينظر في:
ما بُني: أي ناتج عمل
الهدف:
إيجاد العيوب التي ارتُكبت وإصلاحها
السؤال الذي يطرحه:
هل هذا المنتج جيد بما يكفي، وما الذي يجب إصلاحه؟
في مثال الخصم:
يُبلَّغ عن الإجمالي الخاطئ ⁦225.00⁩ ريال ويُصلَح
من يقوم به:
المختبِرون والمطورون والمراجعون، والمستخدمون الذين يجرّبون النماذج الأولية
نتائج الاختبار:
تُستخدم لإصلاح العيوب

الاختبارجزء من ضبط الجودة

شكل رئيسي من أشكال ضبط الجودة

ينظر في:
نواتج العمل بالمراجعة، والبرنامج وهو يعمل
الهدف:
إيجاد العيوب، مع أدلة على الجودة
السؤال الذي يطرحه:
أين يقصر ناتج العمل أو نسخة البناء هذه؟
في مثال الخصم:
يُعاد تشغيل الاختبار الذي فشل ويُضاف إلى حزمة الانحدار
من يقوم به:
المختبِرون أساساً، والمطورون والمراجعون أيضاً
نتائج الاختبار:
تُنتَج هنا ويستخدمها الطرفان

للاختبار عمود خاص لأنه شكل رئيسي من أشكال ضبط الجودة، لا نهج ثالث.

لماذا تقول المسميات الوظيفية QA وتقصد الاختبار غالباً

في الاستخدام اليومي تعني «QA» الاختبار في أغلب الأحيان: «مهندس QA»، و«أرسله إلى QA»، و«بيئة QA». ويلاحظ منهج ISTQB أن الناس كثيراً ما يستخدمون المصطلحين بالتبادل، لكنهما ليسا الشيء نفسه. وكثير من الأدوار المسماة QA هي ضبطٌ للجودة في الأساس: تصميم الاختبارات وتنفيذها، وأتمتة الفحوص، والإبلاغ عن العيوب.

لا حاجة إلى تصحيح كل إعلان وظيفة. اقرأ المهام لا المسمى:

  • «تنفيذ حالات الاختبار» و«كتابة اختبارات آلية» و«الإبلاغ عن الأخطاء» تصف الاختبار، أي ضبط الجودة.
  • «تعريف عملية الاختبار» و«وضع معايير الجودة» و«إجراء تدقيق العمليات» تصف ضمان الجودة بمعناه الدقيق.
  • كثير من أدوار الاختبار تجمع الاثنين: معظم الوقت لضبط الجودة، مع صوت في طريقة إدارة المتطلبات والمراجعات والإصدارات.

أخطاء شائعة

  • معاملة ضمان الجودة كمرحلة أو فريق في نهاية التطوير، بدلاً من أن يكون طريقة عمل الفريق كله.
  • توقّع أن زيادة الاختبار وحدها تحافظ على الجودة: الاختبار يجد عيوب هذا الإصدار، لكن ما لم تتغير العملية تظل الأنواع نفسها من العيوب تُرتكب.
  • تسمية كل مراجعة «ضمان جودة»: مراجعة وثيقة واحدة ضبطٌ للجودة، وجعل المراجعة خطوة إلزامية ضمانٌ للجودة.
  • الإبلاغ عن النوع نفسه من العيوب مرة بعد مرة دون الإشارة إلى النمط.
  • كتابة إجراءات لا يتبعها أحد ولا يقيسها أحد: ضمان الجودة الذي لا ينظر في نتائج الاختبار لا يملك تغذية راجعة.

من منظور ضمان الجودة

تذهب معظم ساعات المختبِر إلى ضبط الجودة: تصميم الاختبارات وتنفيذها، والإبلاغ عن العيوب، وإعادة فحص الإصلاحات. وهذا العمل يُريك أين تتجمع العيوب وأيّها يصل إلى الإنتاج، وهو بالضبط ما يحتاج إليه ضمان الجودة.

اجعل ذلك مرئياً. سجّل أين أُدخل كل عيب على الأرجح (متطلب، تصميم، كود، إعداد، بيانات) إن كان في أداة التتبع حقل لذلك. واعرض الأنماط في الاجتماع الاسترجاعي مدعومةً بالأرقام، واقترح تغييراً واحداً صغيراً — بنداً في قائمة فحص، أو قاعدة لمعايير القبول، أو خطوة مراجعة — واطرح سؤال ضمان الجودة: «ما الذي كان سيمنع هذا، أو يكشفه أبكر؟». ثم تابع في الإصدارات التالية هل نجح التغيير.

تمرين عملي

صنّف أنشطة شهر إلى ضمان الجودة وضبط الجودة

المطلوب

فيما يلي ثمانية أنشطة من شهر عمل فريق واحد. ويعمل الفريق بنظام السبرنت (Sprint)، أي دورات عمل ثابتة المدة لا تتجاوز الواحدة منها شهراً. صنّف كل نشاط إلى ضمان الجودة أو ضبط الجودة، وبيّن أيّ بنود ضبط الجودة اختبار. ثم اقترح للملاحظة في آخر القائمة إجراءً واحداً لضبط الجودة وإجراءين لضمان الجودة.

المادة
1. نفّذنا حالات اختبار تسجيل الدخول على البناء 4.2 وسجّلنا إخفاقين.
2. اتفقنا على ألا تدخل أي قصة إلى السبرنت بلا معايير قبول.
3. راجعنا متطلبات الاسترداد ووجدنا فيها خمسة مواضع غامضة.
4. عقدنا جلسة تدريب قصيرة لمالكي المنتج على كتابة معايير القبول.
5. أعدنا تشغيل اختبار تسجيل الدخول الذي فشل على البناء الذي يحمل إصلاح المطور.
6. أنشأنا قالباً لتقارير الأخطاء بحقول إلزامية يستخدمه الفريق.
7. جعلنا ثلاثة عملاء يجرّبون نموذجاً أولياً قابلاً للنقر لصفحة الدفع الجديدة.
8. بعد الاجتماع الاسترجاعي، اتفقنا على أن تختبر كل قصة مسارات الخطأ في واجهتها البرمجية.

ملاحظة: 6 من آخر 9 عيوب ظهرت في الإنتاج تتعلق بتواريخ قرب منتصف الليل
في مناطق زمنية مختلفة.
الخطوات
  1. اسأل عن كل نشاط: هل يفحص ناتج عمل بعينه، أم يغيّر طريقة عمل الفريق؟
  2. في كل بند من بنود ضبط الجودة، اسأل هل يراجع ناتج عمل أو يشغّل البرنامج (وكلاهما اختبار)، أم يستخدم شكلاً آخر مثل النماذج الأولية.
  3. لكل إجراء من إجراءات ضمان الجودة، اذكر كيف سيعرف الفريق هل نجح.
إظهار الإجابة النموذجية
الإجابة النموذجية

ضبط الجودة وهو اختبار: ⁦1⁩ (اختبار ديناميكي لنسخة بناء)، و⁦3⁩ (المراجعة اختبار ساكن)، و⁦5⁩ (اختبار التأكيد للإصلاح). وضبط الجودة دون أن يكون اختباراً: ⁦7⁩ (النماذج الأولية، التي يذكرها المنهج شكلاً من أشكال ضبط الجودة مستقلاً عن الاختبار).

ضمان الجودة: ⁦2⁩ (قاعدة دخول)، و⁦4⁩ (تدريب)، و⁦6⁩ (قالب موحّد)، و⁦8⁩ (تغيير في العملية اتُّفق عليه في الاجتماع الاسترجاعي).

نمط المناطق الزمنية — ضبط الجودة: اختبر منطق التواريخ المتأثر حول منتصف الليل في كل منطقة زمنية مدعومة، وأبلغ عن الإخفاقات، وأعد اختبار الإصلاحات. ضمان الجودة: أن تذكر كل قصة تخزّن تاريخاً أو تعرضه منطقتَه الزمنية في معايير قبولها، وأن يُضاف إلى قائمة فحص مراجعة الكود بندٌ للمناطق الزمنية مع قاعدة تخزين واحدة متفق عليها (مثل UTC). ولمعرفة النجاح، قارن عيوب المناطق الزمنية في الإنتاج خلال الإصدارات التالية بـ⁦6⁩ من ⁦9⁩.

أسئلة شائعة

هل الاختبار جزء من ضمان الجودة أم من ضبط الجودة؟

بمصطلحات ISTQB، الاختبار شكل من أشكال ضبط الجودة، بل شكل رئيسي منها، لأنه يفحص المنتج. ونتائجه تغذي ضمان الجودة أيضاً، دليلاً على مدى جودة العمليات. وفي الحديث اليومي ما زال كثيرون يسمّون الاختبار «QA».

هل يمكن للشخص نفسه أن يقوم بضمان الجودة وضبطها؟

نعم. يصف ISTQB ضمان الجودة بأنه مسؤولية كل من في المشروع. يقضي المختبِر عادةً معظم وقته في ضبط الجودة، ويسهم في ضمانها باقتراحات على العملية وفي الاجتماعات الاسترجاعية؛ والمطور يضبط الجودة حين يختبر كوده، ويسهم في ضمانها حين يتبع معايير الفريق ويحسّنها.

أين تقع إدارة الجودة؟

إدارة الجودة (Quality Management) هي المظلة الأوسع. ويعرّفها مسرد ISTQB بأنها أنشطة منسّقة لتوجيه المؤسسة والتحكم فيها في ما يخص الجودة، تشمل سياسة الجودة وأهداف الجودة، وتخطيط الجودة، وضبط الجودة، وضمان الجودة، وتحسين الجودة. وضمان الجودة وضبط الجودة جزءان منها.

هل ضمان الجودة أهم من ضبط الجودة؟

لا يحل أحدهما محل الآخر. فالوقاية تقلل عدد العيوب التي تُرتكب، لكن لا عملية تزيلها كلها، فلا بد من فحص المنتج. ومن دون نتائج ضبط الجودة لا يملك ضمان الجودة دليلاً على أن تغييراته في العملية تفيد.

المراجع

  • ISTQB Certified Tester Foundation Level (CTFL) v4.0ISTQB · 2023المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
  • ISTQB GlossaryISTQBالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.

تدرّب بأدوات متقن

ولّد معايير قبول بصيغة Given/When/Then وقائمة تحقق لتعريف الإنجاز (Definition of Done) من قصة مستخدم.

تصميم الاختبارات

ولّد حالات اختبار منظّمة (المعرّف والعنوان والشروط المسبقة والخطوات والنتيجة المتوقّعة والأولوية) من وصف الميزة وقائمة الحقول.

تصميم الاختبارات

حوّل قائمة متطلبات مرقّمة إلى حالات اختبار قابلة للتتبّع مع مصفوفة تربط المتطلبات بالاختبارات.

تصميم الاختبارات

للتعمّق أكثر

تقدّمك في هذا الموضوع

جزء من مسار تعلم ضمان الجودة