الاختبار غير الوظيفي
يفحص الاختبار غير الوظيفي (Non-Functional Testing) مدى جودة قيام النظام بعمله، لا ما يفعله؛ ويسمّيه منهج ISTQB للمستوى التأسيسي اختبارَ «مدى جودة سلوك النظام». فهو يفحص خصائص الجودة الأخرى غير الملاءمة الوظيفية (Functional Suitability)، مثل كفاءة الأداء والأمان وقابلية الاستخدام والموثوقية والتوافق. وستلقاه في الفريق على هيئة أنواع اختبار مسمّاة: اختبار الأداء، والأمان، وقابلية الاستخدام، وإمكانية الوصول، والتوافق، والموثوقية، والتوطين.
خذ صفحة تسجيل الدخول مثالاً. يسأل الاختبار الوظيفي: هل يُدخل البريد الإلكتروني وكلمة المرور الصحيحان المستخدمَ إلى حسابه؟ أما الاختبارات غير الوظيفية فتسأل عن مدى جودة ذلك: هل تستجيب الصفحة خلال ثانيتين بينما يسجّل 500 شخص دخولهم في الوقت نفسه؟ وهل يمكن استخدامها بلوحة المفاتيح وقارئ الشاشة؟ وهل تصمد أمام تخمين كلمات المرور؟ وهل تُعرض النسخة العربية من اليمين إلى اليسار؟
لماذا يهم
قد ينجح المنتج في كل اختباراته الوظيفية ثم يخذل مستخدميه: تنتهي مهلة صفحة الدفع في أول أيام التخفيضات، أو لا يصل مستخدم قارئ الشاشة إلى زر «ادفع»، أو يستطيع عميل أن يفتح فاتورة عميل آخر. هذه الإخفاقات تصيب كثيراً من المستخدمين دفعة واحدة، وإصلاحها متأخراً مكلف لأن سببها غالباً قرار في التصميم. ويحذّر منهج ISTQB التأسيسي من أن اكتشاف العيوب غير الوظيفية متأخراً قد يهدد نجاح المشروع تهديداً جدياً.
وبالنسبة إلى المختبِر يتحول السؤال من «هل يعمل؟» إلى «هل يعمل بما يكفي، ولمن، وفي أي ظروف؟». وهذا يحتاج إلى هدف متفق عليه مسبقاً؛ فمن دونه يصبح «سريع بما يكفي» جدالاً عند الإصدار بدلاً من أن يكون نتيجة اختبار.
ما يفعله النظام ومدى جودة فعله
يفحص الاختبار الوظيفي السلوك مقابل قاعدة: هذا المُدخل وهذه النتيجة المتوقعة. أما الاختبار غير الوظيفي فيُبقي الميزة نفسها ويضيف ظرفاً ومقياساً: ما السرعة؟ وكم مستخدماً في الوقت نفسه؟ وعلى أي جهاز؟ وبعد أي عطل؟ وكثير من الاختبارات غير الوظيفية يعيد استخدام اختبار وظيفي ويفحص قيداً أثناء تنفيذه، مثل أن يعيد البحث النتائج الصحيحة خلال ثانيتين.
وقد يحتاج إلى بيئة خاصة: نظام قريب من بيئة الإنتاج لاختبار الحمل، أو أجهزة حقيقية، أو تقنيات مساعدة، أو مستخدمين حقيقيين في مختبر لقابلية الاستخدام. ونتيجته المتوقعة هدف، والحصيلة قيمة مقيسة تُقارَن بذلك الهدف. ويبدأ مبكراً حيثما أمكن، في مراجعات المتطلبات والتصميم وفي اختبارات المكوّنات، لأن إصلاح تصميم بطيء أو غير آمن نادراً ما يكون صغيراً.
المجالات التي يلقاها المختبِر أولاً
عرّفك درس جودة البرمجيات بخصائص ISO/IEC 25010 التسع: الملاءمة الوظيفية من شأن الاختبار الوظيفي، والثماني الأخرى من شأن الاختبار غير الوظيفي. تُقيَّم قابلية الصيانة غالباً بالمراجعات والتحليل الساكن، وتهمّ السلامة حيث يمكن أن تُلحق البرمجيات ضرراً. أما في العمل اليومي فيتعامل المختبِرون أولاً مع هذه المجالات:
- الأداء (كفاءة الأداء، Performance Efficiency): مدى سرعة الاستجابة، ومقدار الحمل الذي يتحمله النظام، والموارد التي يستهلكها.
- الأمان (Security): لا يرى البيانات ولا يغيّرها إلا المصرّح لهم، ويقاوم النظام الهجمات.
- قابلية الاستخدام (Usability)، وتسميها ISO/IEC 25010:2023 قابلية التفاعل (Interaction Capability): أن يبلغ المستخدمون المقصودون أهدافهم بفاعلية وكفاءة ورضا، وهي الأجزاء الثلاثة لتعريفها في ISO 9241-11.
- إمكانية الوصول (Accessibility): أن يستطيع ذوو الإعاقة استخدام المنتج، ويُحكم عليها عادةً وفق WCAG 2.2، ويعدّها ISO/IEC 25010 جزءاً من قابلية التفاعل.
- التوافق (Compatibility): أن يعمل المنتج على المتصفحات والأجهزة وأنظمة التشغيل المدعومة، ومع الأنظمة المتصلة به. ويضع ISO/IEC 25010 دعم المتصفحات والأجهزة تحت المرونة (Flexibility)، وكانت تسمى قابلية النقل (Portability) في إصدار 2011، بينما تسمي الفرق الأمرين عادةً توافقاً.
- الموثوقية (Reliability): أن يعمل المنتج بشكل صحيح طوال المدة المطلوبة، ويبقى متاحاً، ويستمر في العمل أو يتعافى عندما يحدث خلل ما، مثل انقطاع الاتصال.
- التوطين (Localization): أن تكون نسخة كل لغة ومنطقة كاملة وصحيحة، من الترجمة والتخطيط من اليمين إلى اليسار إلى صيغ التاريخ والأرقام والعملة. والتوطين ليس خاصية في ISO/IEC 25010، لكن الفرق تخطط له كنوع اختبار مستقل.
جرّبها: مولّد سيناريوهات الاختبار جرّبها: محلّل ترويسات الأمان
كيف تحوّل «سريع» إلى معيار قابل للقياس
لا يمكن اختبار عبارة «يجب أن تكون الصفحة سريعة»، لأن أحداً لا يستطيع أن يحدد متى تفشل. وعند قياس الأزمنة فضّل المئينات (Percentiles) على المتوسطات. المئين 95 (p95) هو الزمن الذي ينتهي خلاله 95% من الطلبات: فعبارة «p95 لا يتجاوز ثانيتين» تعني أن 95% من الطلبات على الأقل تنتهي خلال ثانيتين، أما متوسط قدره ثانية واحدة فقد يخفي طلبات تستغرق 10 ثوانٍ. وإذا استندت إلى معيار منشور، فاذكر إصداره ومستواه، مثل WCAG 2.2 بالمستوى AA.
ويذكر معيار القبول القابل للقياس أربعة أشياء:
- المقياس: ما الذي يُعدّ أو يُقاس، مثل زمن الاستجابة p95، أو نسبة الأخطاء، أو نسبة إنجاز المهام، أو دقائق التعافي.
- الهدف: العتبة التي تحسم النجاح أو الفشل مع وحدتها: ثانيتان كحد أقصى، أو أقل من 1%، أو صفر.
- الظروف: الحمل والبيانات والأجهزة والشبكة والمستخدمون والبيئة التي ينطبق عليها الهدف.
- الطريقة: كيف يُقاس الهدف وأين، بحيث يحصل مختبِران على أرقام قابلة للمقارنة.
غامض: يجب أن تكون صفحة التسجيل سريعة.
قابل للقياس:
المقياس: زمن الاستجابة p95 لزر «سجّل»، ونسبة الأخطاء
الهدف: p95 <= 2 s، والأخطاء < 1%
الظروف: 2000 طالب متزامن لمدة 15 دقيقة،
بيانات بحجم الإنتاج، بيئة staging
الطريقة: سكربت اختبار حمل؛ والأرقام من تقرير الأداةمثال تطبيقي: يوم تسجيل المقررات
تفتح جامعة تسجيل المقررات في الساعة 09:00، ويحاول معظم الطلاب في الدقائق الأولى. قصة المستخدم وظيفية: «بصفتي طالباً، أريد التسجيل في شعبة مقرر، لكي أحصل على مقعد». وفي جلسة تحسين القصص (Refinement) يطرح المختبِر سؤالاً لكل مجال، ويتفق الفريق على هذه المعايير:
- الأداء: مع 2000 طالب متزامن لمدة 15 دقيقة، لا يتجاوز p95 لزر «سجّل» ثانيتين، ونسبة الأخطاء أقل من 1%، في اختبار حمل على بيئة staging ببيانات بحجم الإنتاج.
- الأمان: الطلب الذي يحمل معرّف طالب آخر يُرفض برمز حالة HTTP 403 (Forbidden) أو 404 (Not Found) دون أي بيانات، ويُفحص ذلك بحسابَي اختبار.
- قابلية الاستخدام: 4 من كل 5 طلاب في السنة الأولى على الأقل يسجّلون دون مساعدة خلال 3 دقائق في جلسة يديرها مُيسِّر، يعطيهم المهمة ويراقب دون أن يساعد.
- إمكانية الوصول: WCAG 2.2 بالمستوى AA؛ فمثلاً تعمل كل خطوة بلوحة المفاتيح وحدها (معيار النجاح 2.1.1)، ونسبة تباين النص العادي 4.5:1 على الأقل (1.4.3)، ويُفحص ذلك بجولة بلوحة المفاتيح وأداة لفحص التباين.
- التوافق: تنجح اختبارات التسجيل على كل متصفح وجهاز في مصفوفة الدعم، بتشغيلها على كل صف منها.
- الموثوقية: إذا انقطع الاتصال بعد الضغط على «سجّل»، يكون للطالب تسجيل واحد أو لا شيء، ولا يكون له تسجيلان أبداً؛ ويُفحص ذلك بقطع الشبكة أثناء الطلب ثم عدّ التسجيلات.
- التوطين: لا نص غير مترجم في الواجهة العربية، وهي تُعرض من اليمين إلى اليسار، وتظهر مواعيد المحاضرات بالمنطقة الزمنية للجامعة، ويُفحص ذلك ببيانات اختبار عربية.
| المجال | الاختبار في المثال | المقياس والهدف |
|---|---|---|
| الأداءكفاءة الأداء | اختبار حمل على بيئة staging ببيانات بحجم الإنتاج2000 طالب متزامن لمدة 15 دقيقة | p95 لزر «سجّل» لا يتجاوز ثانيتينالأخطاء أقل من 1% |
| الأمان | حسابا اختبار مع تبديل معرّفَي الطالبين | 403 أو 404 دون أي بياناتلكل طلب يحمل معرّف طالب آخر |
| قابلية الاستخدامقابلية التفاعل | جلسة يديرها مُيسِّر مع طلاب السنة الأولى | 4 من 5 على الأقل يسجّلون دون مساعدةخلال 3 دقائق |
| إمكانية الوصولWCAG 2.2 بالمستوى AA | جولة بلوحة المفاتيح وحدها وفحص للتباين | كل خطوة تعمل بلوحة المفاتيح (2.1.1)تباين النص العادي 4.5:1 على الأقل (1.4.3) |
| التوافق | اختبارات التسجيل على كل صف في مصفوفة الدعم | تنجح على كل متصفح وجهاز مدعوم |
| الموثوقية | قطع الشبكة بعد الضغط على «سجّل» | تسجيل واحد أو لا شيء، لا تسجيلان أبداًتُعدّ التسجيلات بعد ذلك |
| التوطين | تنفيذ المسار بالعربية ببيانات اختبار عربية | صفر نصوص غير مترجمةتخطيط من اليمين إلى اليسار؛ ومواعيد المحاضرات بالمنطقة الزمنية للجامعة |
الأهداف خاصة بهذا المثال؛ وكل منتج يتفق على أهدافه مع مالك المنتج.
أخطاء شائعة
- ترك الاختبار غير الوظيفي إلى النهاية، حين يصبح تغيير تصميم بطيء أو إضافة ضابط أمني مفقود مكلفاً.
- قبول «سريع» أو «آمن» أو «سهل الاستخدام» دون مقياس وهدف وظروف.
- الإبلاغ عن متوسط زمن الاستجابة، وهو يخفي الطلبات البطيئة التي يلاحظها المستخدمون.
- قياس الأداء على حاسوب محمول أو قاعدة بيانات شبه فارغة، ثم اعتبار الرقم نتيجة تصح لبيئة الإنتاج.
- اعتبار الفحص الآلي لإمكانية الوصول دليلاً على المطابقة لـWCAG؛ فكثير من معايير النجاح يحتاج إلى حكم بشري.
- الاختبار بالإنجليزية فقط وعلى متصفح واحد، فتصل مشكلات التخطيط والترجمة والأجهزة إلى المستخدمين أولاً.
من منظور ضمان الجودة
اطرح الأسئلة غير الوظيفية في جلسات تحسين القصص ومراجعة المتطلبات، قبل كتابة الشيفرة: «كم عدد المستخدمين في الذروة؟»، و«من يحق له رؤية هذه البيانات؟»، و«ما المتصفحات والأجهزة التي ندعمها؟»، و«بأي مستوى من WCAG نلتزم؟». مالك المنتج يحدد الأهداف، والمطورون وفريق التشغيل ومختصو الأمان يقولون ما الواقعي منها. وإن لم يعرف أحد الإجابة بعد، فسجّلها سؤالاً مفتوحاً له مسؤول.
سجّل الظروف مع كل نتيجة: رقم البناء والبيئة وحجم البيانات والحمل والجهاز والمتصفح والأداة. ويذكر تقرير الخطأ غير الوظيفي المعيارَ والقيمة المقيسة والطريقة: «بلغ p95 لزر "سجّل" 4.8 ثانية عند 2000 مستخدم (الهدف ثانيتان)، بيئة staging، البناء 7.3.1». واذكر المجالات التي لم تُختبر، ليقبل الفريق تلك المخاطرة عن وعي. ولا تُجرِ اختبارات الحمل والأمان إلا على أنظمة تملكها أو لديك إذن مكتوب باختبارها، وفي وقت متفق عليه.
تمرين عملي
اجعل المتطلبات الغامضة قابلة للقياس
تستعد صيدلية إلكترونية لإطلاق موقعها بالعربية والإنجليزية، وفي وثيقة متطلباتها العبارات الأربع أدناه. لكل عبارة، سمِّ المجال، ثم أعد صياغتها معيارَ قبول له مقياس وهدف وظروف وطريقة. وحيث لا تعرف رقماً، اكتب السؤال الذي ستطرحه ومن ينبغي أن يجيب عنه.
NFR-1 يجب أن يكون الموقع سريعاً.
NFR-2 يجب أن تكون بيانات العملاء آمنة.
NFR-3 يجب أن يكون الموقع سهل الاستخدام للعملاء الأكبر سناً.
NFR-4 يجب ألا تضيع الطلبات أبداً.- سمِّ مجال كل عبارة.
- اختر مقياساً يُظهر أن الحاجة تحققت.
- اقترح هدفاً والظروف التي ينطبق عليها.
- صِف طريقة القياس واكتب أسئلتك المفتوحة.
إظهار الإجابة النموذجية
NFR-1، الأداء: مع 500 مستخدم متزامن لمدة 15 دقيقة، لا يتجاوز p95 للبحث ولتقديم الطلب ثانيتين، ونسبة الأخطاء أقل من 1%، في اختبار حمل على بيئة staging ببيانات بحجم الإنتاج. واسأل مالك المنتج عن الذروة الحقيقية.
NFR-2، الأمان: لا يرى العميل إلا طلباته ووصفاته الطبية وعناوينه؛ وأي طلب يحمل معرّف عميل آخر يعيد 403 أو 404 دون بيانات، ويُفحص ذلك بحسابَي اختبار على كل صفحة ونقطة نهاية (Endpoint) تستقبل معرّفاً. واسأل مسؤول الأمان عن الضوابط الأخرى المطلوبة.
NFR-3، قابلية الاستخدام وإمكانية الوصول: 4 من كل 5 عملاء في سن 60 فأكثر على الأقل يكررون طلباً سابقاً دون مساعدة خلال 3 دقائق في جلسة يديرها مُيسِّر، ويطابق الموقع WCAG 2.2 بالمستوى AA، ويُفحص ذلك بلوحة المفاتيح وقارئ الشاشة وتكبير النص. واسأل مالك المنتج عن المهام الأهم للعملاء الأكبر سناً والأجهزة التي يتسوقون منها.
NFR-4، الموثوقية: إذا تعطلت الشبكة أو مزود الدفع أثناء إتمام الشراء، ينتهي العميل بطلب واحد مدفوع بالضبط، أو بلا طلب ولا خصم، ويستطيع أن يرى أيّهما حدث؛ والهدف صفر طلبات بلا دفعة وصفر دفعات بلا طلب. اختبر ذلك بقطع الشبكة وإيقاف خدمة الدفع التجريبية في منتصف الطلب، ثم طابِق الطلبات مع المدفوعات. واسأل المطورين كيف يُمنع تكرار محاولة الدفع من إنشاء طلب ثانٍ.
أسئلة شائعة
هل الاختبار غير الوظيفي للمختصين فقط؟
لا. التعمق في اختبار الأداء أو الأمان يحتاج إلى مختصين وأدوات، لكن كل مختبِر يستطيع أن يطلب معايير قابلة للقياس، ويلاحظ الشاشات البطيئة، ويجرّب لوحة المفاتيح، ويبدّل اللغة، ويختبر على جهاز ثانٍ. وتتعمق الوحدات المتخصصة اللاحقة في خارطة الطريق في كل مجال.
هل يمكن أتمتة الاختبارات غير الوظيفية؟
كثير منها نعم: اختبارات الحمل سكربتات، وبعض قواعد إمكانية الوصول وترويسات الأمان تُفحص آلياً في خط النشر، وتشغيلات التوافق تستخدم أتمتة المتصفحات. وبعضها يحتاج إلى بشر، مثل جلسات قابلية الاستخدام والحكم على ملاءمة النص البديل للصور. ومعظم الفرق تجمع بين الاثنين.
ما الفرق بين المتطلب غير الوظيفي والاختبار غير الوظيفي؟
المتطلب يحدد الجودة المطلوبة من المنتج، ويُفضَّل أن يأتي بمقياس وهدف. والاختبار هو النشاط الذي يقيسها في ظروف محددة ويقارن النتيجة بالهدف. والمتطلب الغامض ينتج اختباراً بلا نتيجة متوقعة.
هل التوطين اختبار وظيفي أم غير وظيفي؟
تصنّفه الفرق بطرق مختلفة. فالخطأ في حساب العملة عيب وظيفي، أما النص العربي المقطوع أو التخطيط الذي لا ينعكس فيُبلَّغ عنه عادةً كعيب توطين. والمهم أن يُخطَّط له وأن تكون له معايير، لا الخانة التي يوضع فيها.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISO/IEC 25010:2023 — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality modelنموذج جودة المنتج: الملاءمة الوظيفية وكفاءة الأداء والتوافق وقابلية التفاعل والموثوقية والأمان وقابلية الصيانة والمرونة.
- ISO 9241-11:2018 — Ergonomics of human-system interaction — Part 11: Usability: Definitions and conceptsالإطار الدولي لمفهوم قابلية الاستخدام: الفاعلية والكفاءة والرضا لمستخدمين وأهداف وسياق استخدام محدَّدين، مع اعتبار قابلية الاستخدام نتيجةً للاستخدام.
- Web Content Accessibility Guidelines (WCAG) 2.2توصية W3C التي تحدد معايير النجاح القابلة للاختبار لإتاحة محتوى الويب، مرتّبةً تحت أربعة مبادئ وثلاثة مستويات مطابقة (A وAA وAAA).
تدرّب بأدوات متقن
ولّد سيناريوهات اختبار عالية المستوى تغطي الجوانب الوظيفية والسلبية والأمنية وسهولة الاستخدام والتوافق لأي ميزة.
قِس زمن استجابة نقطة نهاية عبر عدة عيّنات: الحد الأدنى والأقصى والمتوسط والوسيط وp95.
تقييم ترويسات أمان HTTP (CSP وHSTS وX-Frame-Options وReferrer-Policy وPermissions-Policy وCOOP/CORP) من ترويسات ملصقة أو عنوان URL عام.
ولّد أسماء وعناوين وجملاً وأرقاماً عربية (بالأرقام العربية-الهندية) وحالات حدّية للكتابة من اليمين إلى اليسار لاختبار التوطين.
للتعمّق أكثر
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.