يتيح لك اختبار سهولة الاستخدام تجربة تطبيقك من منظور المستخدِم والعثور على مشاكل قابلية الاستخدام التي قد لا تلاحظها. يمكن أن يكشف اختبار سهولة الاستخدام عن فرص لجعل تطبيقك أكثر فعالية وتعددًا في الاستخدام لجميع المستخدِمين، بمن فيهم ذوو الاحتياجات الخاصة.
تصف هذه المستندات الأساليب التالية:
- الاختبار باستخدام أدوات التحليل: يمكنك استخدام الأدوات لاكتشاف فرص تحسين سهولة استخدام تطبيقك.
- الاختبار المبرمَج: يمكنك تفعيل اختبار سهولة الاستخدام في Espresso و Robolectric.
الاختبار باستخدام أدوات التحليل
يمكن أن تكشف أدوات التحليل عن فرص لتحسين سهولة الاستخدام قد لا تلاحظها من خلال الاختبار اليدوي.
Accessibility Scanner
يفحص تطبيق Accessibility Scanner شاشتك ويقترح طرقًا لتحسين سهولة استخدام تطبيقك. يستخدم Accessibility Scanner إطار عمل اختبار سهولة الاستخدام ويقدّم اقتراحات محدّدة بعد الاطّلاع على تصنيفات المحتوى والعناصر القابلة للنقر والتباين وغير ذلك.
تم دمج إطار عمل اختبار سهولة الاستخدام في Android في "استوديو Android" لمساعدتك في العثور على مشاكل سهولة الاستخدام في تنسيقاتك. لعرض اللوحة، انقر على زر تقرير الخطأ ! في أداة تعديل التنسيق.
الشكل 1. عرض توضيحي لتطبيق Accessibility Scanner
لمزيد من المعلومات، يُرجى الرجوع إلى المَراجع التالية:
UI Automator Viewer
توفّر أداة uiautomatorviewer واجهة مستخدِم رسومية ملائمة لفحص وتحليل مكوّنات واجهة المستخدِم المعروضة حاليًا على جهاز يعمل بنظام التشغيل Android. يمكنك استخدام UI Automator لفحص تسلسل التنسيق وعرض خصائص مكوّنات واجهة المستخدِم المرئية في مقدّمة الجهاز. تتيح لك هذه المعلومات إنشاء اختبارات أكثر دقة، مثلاً من خلال إنشاء أداة اختيار واجهة مستخدِم تطابق خاصية مرئية معيّنة. تتوفّر الأداة في دليل tools الخاص بحزمة تطوير برامج Android.
في اختبار سهولة الاستخدام، تكون هذه الأداة مفيدة لتصحيح الأخطاء التي تم العثور عليها باستخدام طرق اختبار أخرى. على سبيل المثال، إذا كشف الاختبار اليدوي أنّ طريقة عرض لا تتضمّن النص القابل للقراءة المطلوب أو أنّ طريقة عرض تتلقّى التركيز في حين لا يجب أن تتلقّاه، يمكنك استخدام الأداة للمساعدة في تحديد مصدر المشكلة.
لمزيد من المعلومات عن UI Automator Viewer، يُرجى الاطّلاع على مقالة كتابة اختبارات مبرمَجة باستخدام UI Automator.
Lint
يعرض "استوديو Android" تحذيرات Lint لمشاكل سهولة الاستخدام المختلفة ويقدّم روابط تؤدي إلى المواضع ذات الصلة في رمز المصدر. في المثال التالي، لا تتضمّن صورة سمة contentDescription. يؤدي الوصف غير المتوفّر للمحتوى إلى ظهور الرسالة التالية:
[Accessibility] Missing 'contentDescription' attribute on image
يعرض الشكل 2 مثالاً على كيفية ظهور هذه الرسالة في "استوديو Android":
contentDescription غير متوفّرة.الاختبار المبرمَج
يدعم نظام Android الأساسي العديد من أُطر الاختبار، مثل Espresso، الذي يتيح لك إنشاء اختبارات مبرمَجة وتشغيلها لتقييم سهولة استخدام تطبيقك.
مظهر إسبرسو
Espresso هي مكتبة اختبار Android مصمّمة لـ جعل اختبار واجهة المستخدِم سريعًا وسهلاً. تتيح لك التفاعل مع مكوّنات واجهة المستخدِم قيد الاختبار في تطبيقك والتأكّد من حدوث سلوكيات معيّنة أو استيفاء شروط محدّدة.
للاطّلاع على نظرة عامة على اختبار سهولة الاستخدام باستخدام Espresso في فيديو، يمكنك مشاهدة الفيديو التالي من الدقيقة 31:54 إلى 34:19: Inclusive design and testing: Making your app more accessible - Google I/O 2016.
يصف هذا القسم كيفية إجراء عمليات التحقّق من سهولة الاستخدام باستخدام Espresso.
تفعيل عمليات التحقّق
يمكنك تفعيل اختبار سهولة الاستخدام وإعداده باستخدام فئة
AccessibilityChecks:
Kotlin
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
Java
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
وفقًا للإعدادات التلقائية، يتم تشغيل عمليات التحقّق عند تنفيذ أي إجراء عرض محدّد في
ViewActions. يتضمّن كل تحقّق طريقة العرض التي يتم تنفيذ الإجراء عليها بالإضافة إلى جميع طرق العرض الفرعية. يمكنك تقييم هيكلية طرق العرض بالكامل لشاشة معيّنة أثناء
كل عملية تحقّق من خلال تمرير true إلى
setRunChecksFromRootView()،
كما هو موضّح في مقتطف الرمز التالي:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
إيقاف عرض مجموعات فرعية من النتائج
بعد أن يُجري Espresso عمليات التحقّق من سهولة الاستخدام في تطبيقك، قد تجد العديد من الفرص لتحسين سهولة استخدام تطبيقك والتي لا يمكنك معالجتها على الفور. لإيقاف اختبارات Espresso عن الفشل باستمرار بسبب هذه النتائج، يمكنك تجاهلها مؤقتًا. يوفّر إطار عمل اختبار سهولة الاستخدام
هذه الوظيفة باستخدام
setSuppressingResultMatcher()
الطريقة، التي توجّه Espresso إلى إيقاف عرض جميع النتائج التي تستوفي تعبير المطابقة
المحدّد.
عند إجراء تغييرات على تطبيقك تعالج جانبًا واحدًا من تسهيل الاستخدام، من المفيد أن يعرض Espresso نتائج لأكبر عدد ممكن من الجوانب الأخرى لتسهيل الاستخدام. لهذا السبب، من الأفضل إيقاف عرض فرص التحسين المعروفة المحدّدة فقط.
عند إيقاف عرض نتائج اختبار سهولة الاستخدام مؤقتًا التي تخطط لمعالجتها لاحقًا، من المهم عدم إيقاف عرض النتائج المشابهة عن طريق الخطأ. لهذا السبب، استخدِم أدوات المطابقة التي تكون نطاقها ضيقًا. لإجراء ذلك، اختَر أداة مطابقة بحيث لا يوقف Espresso عرض نتيجة معيّنة إلا إذا كانت تستوفي كل عمليات التحقّق التالية من سهولة الاستخدام:
- عمليات التحقّق من سهولة الاستخدام من نوع معيّن، مثل عمليات التحقّق من حجم مساحة اللمس.
- عمليات التحقّق من سهولة الاستخدام التي تقيّم عنصر في واجهة المستخدم معيّن، مثل زر.
يحدّد إطار عمل اختبار سهولة الاستخدام العديد من أدوات المطابقة
لمساعدتك في تحديد النتائج التي يجب عرضها في اختبارات Espresso. يوقف المثال التالي عرض نتائج عمليات التحقّق المتعلقة بتباين الألوان لعنصر TextView واحد. معرّف العنصر هو countTV.
Kotlin
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
Java
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));