اختبار واجهة المستخدم: المنهجيات والأدوات والنصائح
يجب اختبار الهواتف والأجهزة اللوحية وأجهزة الكمبيوتر المحمولة وأجهزة الكمبيوتر المكتبية ولوحات IoT وأجهزة الألعاب وأجهزة التلفاز وأنظمة الترفيه المعلوماتية والأجهزة المنزلية والطابعات وVR وAR، وجميع الأجهزة الحديثة تقريبًا التي تستخدم الإدخال/الإخراج، من حيث الوظائف قبل طرحها في السوق ووصولها إلى المستخدم النهائي. إلى جانب البرنامج، نحتاج أيضًا إلى اختبار واجهة المستخدم.
إلى ماذا يشير اختبار واجهة المستخدم؟
اختبار واجهة المستخدم قد يشير إلى كليهما اختبار واجهة المستخدم الرسومية (GUI) و اختبار واجهة سطر الأوامر (CLI Testing). اختبار واجهة المستخدم الرسومية يتم إجراؤه عندما تكون لديك عناصر رسومية معروضة على الشاشة. يُعرف أيضاً باختبار الواجهة الأمامية للتطبيق. اختبار واجهة سطر الأوامر يتم إجراؤه عندما يكون لديك فقط أحرف وسطر أوامر معروضين على الشاشة بدلاً من العناصر الرسومية.
من منظور أوسع، يمكننا أيضاً أن نذكر واجهة الإنسان والآلة (HMI)، والذي يشير إلى شاشات اللمس ولوحات المفاتيح والفئران وعصي التحكم وذراعات الألعاب وأجهزة الاستشعار المستخدمة لإدخال الإيماءات أو الحركة، أو أجهزة استشعار الساعات الذكية لالتقاط الحالة الصحية للمستخدم وعدّ الخطوات وما إلى ذلك، فضلاً عن الأجهزة الأكثر بدائية مثل المفاتيح الخاصة بالآلات أو الأجهزة.
بعض الأجهزة الحديثة للواقع الافتراضي (VR) أو الواقع المعزز (AR) تستخدم في الغالب CUI (واجهة المستخدم المركبة)، الذي يشغّل حاستين أو أكثر.
يمكننا تحديد أن اختبار واجهة المستخدم، بشكل عام، يمكن إجراؤه على أي جهاز قادر على إدارة مدخلات المستخدم، حتى آلة حاسبة جيبية بسيطة. بعبارة أخرى، يمكننا القول إن كل مدخل يقدمه المستخدم لجهاز للحصول على نتيجة ما يمكن اعتباره واجهة مستخدم. في هذه المقالة، سنركز على اختبار واجهة مستخدم التطبيقات، وهو محور تركيزنا في Spyrosoft.
ما عناصر واجهة المستخدم التي يمكننا اختبارها؟
أزرار الاختيار هي عناصر دائرية تحتوي على نقطة في المنتصف، تُستخدم لتشغيل أو إيقاف بعض الخيارات أو الميزات في التطبيق. تُستخدم أزرار الاختيار (Radio buttons) أيضاً عند وجود خيارات متعددة لا يجب تحديدها في الوقت نفسه.
الأزرار هي العناصر القابلة للنقر (إن لم تكن معطلة)، على سبيل المثال، أزرار "موافق" أو "إلغاء". قد يكون هناك الكثير من الأزرار ذات وظائف مختلفة حسب التطبيق أو نظام التشغيل.
مربعات الاختيار هي العناصر المستطيلة التي يمكنك وضع علامة عليها. وهي تتيح تحديد خيارات متعددة.
مربعات النص هي إطارات مستطيلة يمكنك إدخال البيانات فيها. إذا كنت بحاجة إلى إخفاء كلمة المرور الخاصة بك، يمكنك تعديلها في هذا الاتجاه. عناصر مشابهة هي مناطق النص.
القوائم المنسدلة تتيح لنا الاختيار من بين خيارات متعددة.
الروابط هي النصوص الزرقاء المسطّرة التي تحمل بيانات "URL". إنها عناصر واجهة المستخدم الأكثر شيوعًا والتي أنا متأكد من أنك على دراية بها.
تشمل عناصر واجهة المستخدم الأخرى الصور والقوائم وأشرطة التمرير والتقويمات/منتقي التاريخ، إلخ.
في اختبار واجهة المستخدم، يجب اختبار هذه العناصر (والعديد غيرها) للتأكد من أنها تعمل كما حددها مستند مواصفات البرمجيات في المقام الأول.
في اختبار الأتمتة، تُستخدم الخصائص وقيمها لتحديد عنصر حيث يمكنك الحصول على جميع أنواع الأوامر التي تحاكي سلوك المستخدم. في الاختبار اليدوي، لا تكون هذه ذات أهمية كبيرة. مع اختبار الحمل، تصبح الأتمتة أكثر أهمية.
اختبار الحمل هو محاكاة لعدة مستخدمين يصلون إلى تطبيقك في وقت واحد. سيكون من الصعب اختباره يدويًا لأنك ستحتاج إلى إشراك المستخدمين دون اتصال. مع الأتمتة، تكتب نصًا برمجيًا لاختبارات وظائف واجهة المستخدم ثم تضيف عدة مستخدمين افتراضيين. يتم بعد ذلك ضرب النص البرمجي بعدد المستخدمين الافتراضيين الذين حددتهم في أداة الاختبار الخاصة بك.
بعض أوامر أدوات الأتمتة الأكثر استخدامًا هي: Click وWait وCheck وType، ومع ذلك، قد تختلف من أداة إلى أخرى.
يتكون اختبار واجهة المستخدم من التحقق من الوظائف الأساسية، وموضع عناصر واجهة المستخدم، والتحقق من الأحجام والألوان والتهجئة وقابلية استخدام واجهة المستخدم.
إذا أردنا النظر في التجربة الشاملة للمستخدم مع تطبيق ما، يمكننا التحدث عن UX (تجربة المستخدم). تجربة المستخدم الجيدة تجعل المستخدم يعود. تجربة المستخدم السيئة تنفّر المستخدم بطريقة ما، وفي أسوأ السيناريوهات، قد يتسبب تطبيقك في نتائج غير مرغوب فيها. قد تؤدي تجربة المستخدم السيئة حتى إلى فقدان عميل أو الحصول على تقييمات سيئة لمنتجك.
على أي أجهزة ينبغي لنا اختبار واجهة المستخدم؟
في الماضي، كانت معظم التطبيقات مصممة لأجهزة الكمبيوتر المكتبية. في الوقت الحاضر، تشمل مجموعة الأجهزة التي نستخدمها يوميًا أجهزة الكمبيوتر المحمولة والهواتف المحمولة والأجهزة اللوحية وغيرها، وتستند التطبيقات إلى متصفحات الويب والبنية التحتية السحابية. ومع ذلك، ظلت الفكرة الأساسية لواجهات المستخدم كما هي – تقديم مدخلات إلى الجهاز لتلقي بعض المخرجات.
تستخدم الهواتف الذكية والأجهزة اللوحية الحديثة شاشات لمس مع لوحات مفاتيح افتراضية، ولا حاجة إلى لوحة مفاتيح أو فأرة فعلية. بعض أجهزة الكمبيوتر المحمولة تستخدم شاشات لمس أيضًا. هناك أيضًا ساعات ذكية ولوحات كبيرة لطلب الطعام وعدد وفير من الأجهزة الأخرى التي تحتوي على وظيفة الإدخال/الإخراج (I/O).
من منظور البرمجيات، هناك أنظمة تشغيل مختلفة متاحة حاليًا للاستخدام. الأكثر شيوعًا هي Windows وLinux وiOS وAndroid، ولكن هناك أيضًا بعض الأنظمة المصممة خصيصًا للقطاعات الصناعية.
التقنيات الأساسية المستخدمة في إنتاج البرمجيات هي .NET وJava وJavaScript وPHP وPython وC وC++ وC# وغيرها. وتقنيات تطوير الويب هي Angular وReact JS وNode JS وVue JS وJavaScript وEmber JS وKotlin وGroovy وLaravel وغيرها. وتشمل تقنيات تطوير التطبيقات المحمولة Android وiOS وReact Native وQT وKotlin وXamarin وFlutter وPhoneGap وCordova وغيرها. وتقنيات تطوير قواعد البيانات هي PLSQL وMySQL وMSSQL وMongoDB وPostgreSQL وRedis وغيرها. ومزودو تقنيات الحوسبة السحابية هم AWS وAzure وGoogleCloud وغيرها.
هناك الكثير من التوليفات بين هذه التقنيات وغيرها، سواء البرمجيات أو الأجهزة. قبل اختبار برنامج معين، يجب مراعاة كل هذه العوامل، وبناءً على ذلك، ينبغي إنشاء خطة اختبار.
ما هي أنواع اختبارات واجهة المستخدم؟
يمكن أن يكون اختبار واجهة المستخدم يدوي, آلي، أو مزيج من الاثنين. عند اختيار طريقة الاختبار، ينبغي عليك مراعاة:
- متانة البرمجيات وتعقيدها،
- تأثير الميزات الجديدة،
- كم عدد مختبري ضمان الجودة المتاحين،
- الأولويات ومستويات المخاطر،
- كم عدد البيئات التي ينبغي اختبارها،
- ما الأجهزة/المنصات/المتصفحات التي سيتم استخدامها،
- ما الأدوات الممكن استخدامها، وما إلى ذلك.
بالنسبة لكل من الاختبار اليدوي والآلي، ستحتاج إلى حالات الاختبار. أولاً، يجب أن تقرر كيفية كتابتها (خطوة بخطوة، BDD Gherkin، إلخ) وأين سيتم تخزينها. يمكنك استخدام Excel أو أدوات أكثر تخصصاً، مثل Zephyr Scale ضمن Jira، أو Microfocus ALM Suite أو أي أداة أخرى.
يمكنك النقر يدويًا على واجهة المستخدم أو التفكير في الأتمتة، اعتمادًا على الأداة المستخدمة. يمكن إجراء الاختبار الآلي تمامًا كما هو الحال في الاختبار اليدوي، ولكن مع خيار التسجيل حيث يمكنك إعادة تشغيل الإجراءات المسجلة في النهاية. كما يمكن أتمتة الاختبارات دون خيار التسجيل بفضل النصوص البرمجية. تشمل لغات البرمجة النصية المستخدمة في مثل هذه الحالات JavaScript وTypeScript وVBScript وغيرها. أما لغات البرمجة الأكثر استخدامًا لهذا الغرض فهي Python وJava وC# وRuby.
ما هي منهجيات اختبار واجهة المستخدم؟
أكثر منهجيات اختبار واجهة المستخدم شيوعًا هي اختبار الدخان، واختبار الانحدار، والاختبار الوظيفي، واختبار القبول. لتحسين الوقت والموارد، جرّب الجمع بين اختبارات R/F (اختبارات الانحدار/الاختبارات الوظيفية) للحصول على نتيجة أكثر تفصيلًا. إذا كنت بحاجة فقط إلى نظرة سريعة على كيفية تصرف التطبيق قبل اختبارات الانحدار/الاختبارات الوظيفية، يمكنك تشغيل اختبارات الدخان.
ينبغي أن تغطي الاختبارات الوظائف الواردة في وثيقة مواصفات البرمجيات. وهذا يعني أنه يجب عليك التحقق من عناصر واجهة المستخدم والتهجئة وحقول الإدخال والتنسيقات والألوان والاتساق وما إلى ذلك. كما سيكون من الأفضل إنشاء حالات اختبار إيجابية وسلبية.
إذا كان تطبيقك يستخدم شاشة تسجيل دخول، فيجب إنشاء المستخدمين قبل الاختبار. ويقوم بذلك مسؤولو النظام أو مختبرو ضمان الجودة إذا حصلوا على بيانات اعتماد قاعدة البيانات.
عندما نتحدث عن واجهة، لا يمكننا أن ننسى ذكر واجهة من آلة إلى آلة تُسمى API (واجهة برمجة التطبيقات). تتكون هذه الواجهة من الطلبات والاستجابات. اختبار API موضوع مختلف تمامًا، ولن أركز عليه في هذه المقالة.
عند اختبار واجهة المستخدم، يجب أن نضع أنفسنا مكان المستخدم النهائي، تمامًا كما نفعل عند تطوير واجهة المستخدم. ينبغي فهم احتياجات المستخدم جيدًا لتلبيتها. كما ينبغي أن تأخذ العنصر النفسي في الاعتبار، إذ يجب أن تكون واجهة المستخدم بديهية. وإذا لم تكن كذلك، فيجب إصلاحها لأن واجهة المستخدم السيئة تعني وقتًا أطول لتدريب المستخدم، وتكلفة أعلى، وكفاءة أقل، وإحباطًا أكبر. تخيّل فقط جيتارًا أو بيانو بمفاتيح عشوائية. سيتكيف العديد من الموسيقيين مع هذا، لكن التعلّم سيكون أكثر تعقيدًا بكثير.
اختبار شاشات تسجيل الدخول
تبدو صفحة تسجيل الدخول متشابهة إلى حد كبير في جميع التطبيقات. لهذا السبب سنستخدمها كمثال لشرح كيف ينبغي أن يبدو اختبار واجهة المستخدم.
في اختبار واجهة المستخدم النطاق، تحتاج إلى التحقق من أن:
- يتم عرض العناوين والتسميات والأزرار ومربعات النص والروابط كما هو محدد في مستند مواصفات البرمجيات.
- نوع الخط وحجمه، وحجم الملصق والنص متوازيان ولا يتداخلان.
- حجم الشاشة وحجم العناصر والألوان كما تم تصميمها.
- لا توجد سلوكيات أو تشوهات غير مرغوب فيها لدقات شاشة أو أجهزة أو متصفحات مختلفة
ينبغي إجراء هذا النوع من الاختبار يدوياً.
من الاختبار الوظيفي من هذا المنظور، لا يزال هناك الكثير مما ينبغي القيام به:
- عند فتح صفحة تسجيل الدخول، يجب أن يكون المؤشر موضوعًا على مربع إدخال اسم المستخدم،
- يجب أن يتيح زر TAB التنقل بين العناصر،
- يجب أن يُخفي حقل إدخال كلمة المرور الأحرف المُدخلة،
- يجب ألا تسمح حقول كلمة المرور بنسخ/لصق كلمة المرور
- تحقق من السيناريو الإيجابي – يجب أن يسجل المستخدم الدخول ببيانات اعتماد صالحة، وجرب مفتاح "enter" للتأكيد
- تحقق من السيناريو السلبي – يجب ألا يتمكن المستخدم من تسجيل الدخول ببيانات اعتماد جزئية/غير صالحة
- يجب أن تظهر رسالة التحقق عندما يُترك أحد حقول الإدخال فارغاً أو يتم تجاوز حد الأحرف
- تحقق في مستند مواصفات البرمجيات مما إذا كان يجب أن تحتوي شاشة تسجيل الدخول على خيار/مربع اختيار "تذكرني"
- يجب ألا يؤدي إغلاق المتصفح إلى تسجيل خروج مستخدم مُصادق عليه
- التحقق من وظيفة "Forgot Password"
- التحقق من تسجيل الدخول ببيانات اعتماد صالحة بعد إتمام تغيير كلمة المرور
- تحقق مما إذا كان بإمكان نفس المستخدم تسجيل الدخول على أجهزة/منصات مختلفة في الوقت نفسه.
عند اختبار صفحة تسجيل الدخول، هناك أيضًا الكثير من أنواع الاختبارات الأخرى التي يجب إجراؤها كذلك. بعضها اختبار الأمان, اختبار الاختراق, اختبار الأداء, اختبار التوافق, اختبار قبول المستخدم (UAT)، إلخ.
إذا كانت صفحة تسجيل الدخول الخاصة بك تستخدم مزود مصادقة تسجيل دخول خارجي، مثل Google أو Azure AD أو غيرها، فلا تختبر تلك التطبيقات الخارجية. فهي ليست ضمن نطاقك، إلا إذا ذُكر خلاف ذلك صراحةً. قد تواجه بعض الأدوات صعوبة في التعامل مع إجراءات عناصر تسجيل الدخول الخارجية.
في الختام
سواء كان لدينا تطبيق أو أي برنامج آخر، يجب دائمًا اختبار واجهة المستخدم بشكل شامل. فوجود واجهة مستخدم معيبة قد يعرّض مشغّل الجهاز وأعمالك للخطر.
يتساءل البعض عما إذا كان يمكن أتمتة اختبار واجهة المستخدم بالكامل.
سأترك لك الإجابة على ذلك.
حسّن واجهة مستخدم منتجك لتجربة مستخدم أفضل.
arrow_circle_right مقالاتنا