ما جودة البرمجيات؟

يعرّف مسرد ISTQB الجودة (Quality) بأنها الدرجة التي يلبّي بها مُخرَج العمل (Work Product) الاحتياجات المعلنة والضمنية لأصحاب المصلحة (Stakeholders). وجودة البرمجيات (Software Quality) هي هذه الدرجة حين يكون المُخرَج منتجاً برمجياً، والفكرة نفسها يقوم عليها نموذج جودة المنتج ISO/IEC 25010. فالجودة مسألة درجات، لا مسألة «نعم» أو «لا». الاحتياجات المعلنة مكتوبة في المتطلبات وقصص المستخدم، أما الضمنية فمتوقعة دون أن تُكتب: ألّا تظهر كلمة المرور على الشاشة، وأن يُحفظ الاسم العربي كما كُتب تماماً، وألّا يُخصم المبلغ مرتين.

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

لماذا يهم

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

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

الخصائص التسع في ISO/IEC 25010:2023

يقسّم المعيار ISO/IEC 25010 جودة المنتج إلى خصائص، تتفرع كل منها إلى خصائص فرعية. يفحص الاختبار الوظيفي الملاءمة الوظيفية، أما الخصائص الثماني الأخرى فتخص الاختبار غير الوظيفي الذي يتناوله درس لاحق.

تستخدم المواد الأقدم، ومنها إصدار ⁦2011⁩، اسم قابلية الاستخدام (Usability) بدلاً من قابلية التفاعل، واسم قابلية النقل (Portability) بدلاً من المرونة، ولا تتضمن السلامة. أما منهج ISTQB للمستوى التأسيسي (الإصدار ⁦4.0.1⁩) فيحتفظ بقابلية الاستخدام وقابلية النقل، ويضيف بجانبهما الاسمين الجديدين، ويذكر السلامة. استخدم أسماء ⁦2023⁩ في المستندات الجديدة:

  • الملاءمة الوظيفية (Functional Suitability): أن تكون الوظائف مكتملة وصحيحة وملائمة لمهام المستخدمين.
  • كفاءة الأداء (Performance Efficiency): السلوك الزمني واستخدام الموارد والسعة.
  • التوافق (Compatibility): التعايش مع البرمجيات الأخرى، وقابلية التشغيل البيني مع الأنظمة المتصلة.
  • قابلية التفاعل (Interaction Capability): أن يتعلّم المستخدمون تشغيله وأن يُحمَوا من أخطائهم؛ وقد حلّت الشمولية (Inclusivity) ومساعدة المستخدم (User Assistance) محل إمكانية الوصول.
  • الموثوقية (Reliability): الخلو من الأعطال (Faultlessness) والتوافر وتحمّل الأعطال والقدرة على التعافي.
  • الأمان (Security): ألّا يُتاح إلا الوصول المصرّح به، من خلال السرية والنزاهة والأصالة والمساءلة وعدم الإنكار ومقاومة الهجمات.
  • قابلية الصيانة (Maintainability): النمطية وقابلية إعادة الاستخدام وقابلية التحليل وقابلية التعديل وقابلية الاختبار.
  • المرونة (Flexibility): إمكانية تكييف المنتج وتوسيع نطاقه وتثبيته واستبداله.
  • السلامة (Safety): أن يتجنب تعريض الحياة أو الصحة أو الممتلكات أو البيئة للخطر، مثلاً بالإخفاق الآمن والتحذير من المخاطر.

جودة المنتج وجودة الاستخدام

تصف جودة المنتج (Product Quality) البرمجية نفسها، ويمكن فحص كثير منها قبل الإصدار من خلال المراجعات والتحليل الساكن والاختبارات. أما جودة الاستخدام (Quality in Use) فتصف الأثر حين يستخدم الناس المنتج لتحقيق أهدافهم في سياق حقيقي.

كان إصدار ⁦2011⁩ من ISO/IEC 25010 يضم النموذجين، وصار لجودة الاستخدام الآن معيارها الخاص ISO/IEC 25019:2023. ويعرّفها بأنها مدى تلبية المنتج، حين يُستخدم في سياق استخدام محدد، لاحتياجات أصحاب المصلحة أو تجاوزه لها في تحقيق أهداف نافعة محددة، وله ثلاث خصائص: النفعية (Beneficialness)، والخلو من المخاطر (Freedom from Risk)، والمقبولية (Acceptability).

جودة المنتج الجيدة تجعل جودة الاستخدام الجيدة ممكنة لا مؤكدة. فقد ينجح تطبيق الحجز في كل اختبار ثم يخذل مرضى يحجزون من هاتف قديم بإشارة ضعيفة. وهذه الفجوة من أسباب إجراء اختبار القبول (Acceptance Testing) مع مستخدمين حقيقيين والمراقبة بعد الإصدار.

الجودة نسبية بحسب المستخدمين والسياق

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

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

  • تقرير داخلي شهري لثلاثة محللين: صحة الأرقام أولاً، والشاشة البطيئة مقبولة.
  • صفحة دفع عامة في أول يوم من تخفيضات وطنية: كفاءة الأداء والأمان والموثوقية.
  • برمجية تحسب جرعات الأدوية: قد تتقدم السلامة على كل شيء آخر.
  • تطبيق مصرفي كثير من مستخدميه من كبار السن أو ممن يستخدمون قارئ الشاشة: قابلية التفاعل متطلب أساسي.

مثال تطبيقي: أسئلة لتطبيق حجز مواعيد عيادة

قصة المستخدم: «بصفتي مريضاً، أريد حجز موعد مع طبيب في وقت متاح، حتى لا أضطر إلى الاتصال بالعيادة». والعيادات تخدم كثيراً من المرضى كبار السن، وتخزّن بيانات طبية، وتفتح الحجوزات في الساعة ⁦08:00⁩.

سؤال واحد لكل خاصية يحوّل هذه القصة الوظيفية إلى قرارات وفحوص مستقبلية. ويقدّر الفريق أهمية الملاءمة الوظيفية وقابلية التفاعل والموثوقية والأمان بأنها عالية، والأربع الأخرى بأنها متوسطة، والسلامة بأنها منخفضة لأن التطبيق لا يقدّم نصائح طبية؛ ومع ذلك يجيب مالك المنتج عن سؤال السلامة.

  • الملاءمة الوظيفية: هل يحجز اختيار الساعة ⁦09:00⁩ مع الطبيب المختار تلك الفترة بالضبط؟
  • كفاءة الأداء: ما السرعة المطلوبة لظهور الأوقات المتاحة في الساعة ⁦08:00⁩ حين يحاول كثير من المرضى معاً؟
  • التوافق: هل يصل كل حجز إلى نظام الجدولة في العيادات بشكل صحيح؟
  • قابلية التفاعل: هل يستطيع مريض جديد الحجز دون مساعدة، مع قارئ الشاشة أو النص المكبَّر؟
  • الموثوقية: إذا انقطع الاتصال أثناء التأكيد، هل يوجد حجز واحد بالضبط أو لا حجز؟
  • الأمان: هل يرى المريض مواعيده فقط، حتى بعد تعديل رقم الحجز في شريط العنوان؟
  • قابلية الصيانة: هل يمكن تغيير مهلة الإلغاء دون آثار جانبية؟
  • المرونة: هل يعمل على أنظمة تشغيل الهواتف المدعومة، وهل يمكن إضافة عيادات جديدة؟
  • السلامة: هل يجب أن يوجّه التطبيق المريض إلى الطوارئ إذا كتب «ألم في الصدر» سبباً للزيارة؟
الخصائص التسع في ISO/IEC 25010:2023 على هيئة تسعة أسئلة يطرحها المختبِر على أي منتج، مع الأهمية التي أعطاها فريق تطبيق حجز العيادة لكل منها.
الخاصيةالسؤال الذي تطرحه على أي منتجالأهمية في تطبيق حجز العيادة
الملاءمة الوظيفيةهل يؤدي ما يحتاجه المستخدمون كاملاً وصحيحاً؟عاليةالقصة نفسها
كفاءة الأداءهل هو سريع بما يكفي، بموارد مقبولة، تحت الحمل المتوقع؟متوسطة
التوافقهل يعمل بجانب البرمجيات الأخرى ويتبادل البيانات مع الأنظمة المتصلة؟متوسطة
قابلية التفاعلاسمها في إصدار 2011: قابلية الاستخدامهل يستطيع المستخدمون المقصودون، ومنهم ذوو الإعاقة، تعلّمه واستخدامه؟عاليةكثير من المرضى كبار السن
الموثوقيةهل يستمر في العمل، ويتعافى حين يتعطل شيء ما؟عاليةحجز واحد أو لا حجز
الأمانهل لا يصل إلى البيانات والوظائف إلا المصرّح لهم من أشخاص وأنظمة؟عاليةبيانات طبية
قابلية الصيانةهل يستطيع الفريق تعديله واختباره دون كسر أجزاء أخرى؟متوسطة
المرونةاسمها في إصدار 2011: قابلية النقلهل يمكن تكييفه وتوسيع نطاقه وتثبيته في بيئة جديدة أو استبداله؟متوسطة
السلامةجديدة في إصدار 2023هل يمكن أن يعرّض إخفاقٌ فيه الحياةَ أو الصحة أو الممتلكات أو البيئة للخطر؟منخفضةلا نصائح طبية، لكن السؤال يُجاب عنه مع ذلك

هذه الأوزان تقدير هذا الفريق لهذا التطبيق، وقد يزن منتج آخر أو سياق آخر الأسئلة التسعة نفسها بطريقة مختلفة.

جرّبها: مولّد سيناريوهات الاختبار

أخطاء شائعة

  • اعتبار الجودة «الميزات تعمل»: الملاءمة الوظيفية خاصية واحدة من تسع.
  • اختبار المكتوب فقط وتجاهل الاحتياجات الضمنية.
  • استخدام مستوى جودة واحد لكل منتج، أياً كان المستخدمون والسياق.
  • خلط أسماء ⁦2011⁩ و⁦2023⁩ في خطة اختبار واحدة، فتبدو قابلية الاستخدام وقابلية التفاعل مجالين منفصلين.
  • وصف نسخة البناء (Build) بأنها «جيدة» أو «سيئة» دون تسمية الخاصية وصاحب المصلحة والدليل.
  • افتراض أن المنتج الذي ينجح في اختباراته يعمل جيداً لمستخدمين حقيقيين في سياقهم.

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

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

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

تمرين عملي

اكتب أسئلة جودة لبوابة الرسوم المدرسية

المطلوب

تطلق مدرسة بوابة إلكترونية يدفع فيها أولياء الأمور الرسوم ويطّلعون على درجات أبنائهم، من الهواتف والحواسيب المحمولة، بالعربية أو الإنجليزية. وتُدفع معظم الرسوم في الأسبوع الأخير قبل الموعد النهائي.

اكتب سؤال جودة واحداً لكل خاصية، واختر أهم ثلاث خصائص في هذا السياق مع سبب لكل منها، وسمِّ حاجة ضمنية واحدة وصاحبها (فكّر في غير أولياء الأمور أيضاً). ثم قارن قائمتك بالزوايا التي يقترحها مولّد سيناريوهات الاختبار (Test Scenario Generator).

إظهار الإجابة النموذجية
الإجابة النموذجية

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

الأهم: الأمان (درجات الأطفال وبيانات الدفع)، والملاءمة الوظيفية (المبلغ الخاطئ يكلّف مالاً وثقة)، والموثوقية (دفعة ضائعة أو مكررة في أسبوع الموعد النهائي). وكفاءة الأداء اختيار وجيه أيضاً بسبب ذروة أسبوع الموعد النهائي؛ فالإجابة الجيدة تربط كل اختيار بواقعة من هذا السياق.

حاجة ضمنية: يحتاج الفريق المالي إلى أن تطابق المدفوعات الإلكترونية كشف الحساب البنكي كل يوم، مع أن المتطلب لا يذكر إلا أولياء الأمور.

أسئلة شائعة

هل جودة البرمجيات هي خلوّها من العيوب؟

لا. العيوب تُنقص الجودة، لكن المنتج الذي لا عيوب معروفة فيه قد يظل بطيئاً أو صعب الاستخدام أو مبنياً لحاجة خاطئة. فالجودة تُقاس باحتياجات أصحاب المصلحة، لا بعدد العيوب وحده.

هل أقول قابلية الاستخدام أم قابلية التفاعل؟

استخدم قابلية التفاعل (Interaction Capability)، وهو اسم إصدار ⁦2023⁩، في المستندات الجديدة، وتعرّف على قابلية الاستخدام في المواد الأقدم، ومنها منهج ISTQB للمستوى التأسيسي الذي يحتفظ بالاسم القديم ويذكر الجديد. وينطبق الأمر نفسه على قابلية النقل والمرونة.

هل يختبر المختبِر الخصائص التسع في كل مشروع؟

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

من يحدد معنى الجودة لمنتج ما؟

أصحاب المصلحة، وعادةً من خلال مالك المنتج الذي يحدد الأولويات. والمختبِرون لا يعرّفون الجودة وحدهم، بل يقدّمون معلومات عنها حتى يتخذ الآخرون قرارات مستنيرة.

المراجع

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

ولّد سيناريوهات اختبار عالية المستوى تغطي الجوانب الوظيفية والسلبية والأمنية وسهولة الاستخدام والتوافق لأي ميزة.

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

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

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

اعثر على المتطلبات المفقودة — معالجة الأخطاء والصلاحيات والظروف الحدّية والاحتياجات غير الوظيفية — باستخدام الذكاء الاصطناعي من متقن.

تحليل المتطلبات ذكاء اصطناعي

للتعمّق أكثر

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

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