اختبار التطبيقات ونشرها | الوحدة الرابعة | الدرس الأول

اختبار التطبيقات ونشرها هو عنوان الدرس الأول من الوحدة الرابعة التي تحمل اسم “قابلية الوصول إلى البرمجيات والتضمين الرقمي” من مقرر “هندسة البرمجيات”.
ستتعرف في هذا الموضوع على أهمية اختبار التطبيق، وتحديد الفرق بين تصحيح أخطاء التطبيق والاختبار، بالإضافة لتمييز حَزم التطبيق وتوزيعه.
لذا قم بقراءة أهداف التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل كافة محتوياتها بعد انتهائك من دراسة الموضوع.
أهداف التعلُّم
- معرفة أهمية اختبار التطبيق.
- تحديد الفرق بين تصحيح أخطاء التطبيق والاختبار.
- تمييز حَزم التطبيق وتوزيعه.
هيا لنبدأ!
أهمية اختبار التطبيق (The Importance of Application Testing)
من الطبيعي أن يشعر المبرمج أو المطور بعد الانتهاء من تطوير أحد التطبيقات بالثقة التامة بأن تطبيقه يعمل بشكل صحيح.
في الواقع قد تحدث كثير من الأخطاء لعدة أسباب، وقد لا تحقق النسخة الأولى من التطبيق النتائج المرجوة.
لذلك يجب التحقق من عمله بشكل صحيح والعثور على الأخطاء إن وجدت واكتشاف الأخطاء الأخرى غير المكتشفة سابقًا والتي تتعلق باستخدام التطبيق بشكل غير صحيح.

اختبار التطبيقات ونشرها
ما جودة البرمجيات؟ What is Software Quality
جودة البرمجيات هي دراسة التطبيق أو المنتج البرمجي بشكل عام للتحقق مما إذا كان يفي بمواصفات المستخدم، وما إذا كان يعمل بشكل صحيح من كافة النواحي.
تهتم جودة البرمجيات بالتحقق من الأخطاء مهما كبرت أو كان عددها قليلاً، وتولي اهتمامًا خاصًا بإمكانيات الصيانة والتحسين للمنتج.
لمعرفة المزيد من المعلومات عن جودة البرمجيات، قم بالاطّلاع على الرابط التالي:
الفرق بين تصحيح أخطاء التطبيق والاختبار (Difference between Application Debugging and Testing)
- التصحيح (Debugging) هو عملية إزالة الأخطاء والأعطال من البرمجيات التي تم اكتشافها عادة بعد الاختبار.
- الاختبار (Testing) هو عملية التحقق من صحة البرمجيات.

اختبار التطبيقات ونشرها
على سبيل المثال، قد يحدث أثناء الاختبار ألا يعرض مكون محدد في واجهة المستخدم (UI) لتطبيق المعلومات الصحيحة للمستخدم، ستجد خلال عملية التصحيح أن هناك عملية حسابية خاطئة في منطق البرنامج (Program Logic) هي المتسببة في الخطأ السابق أثناء عرضه، وبذلك سيتم تصحيح تلك العملية فقط وليس مكون واجهة المستخدم، يجب إجراء الاختبار المناسب للوصول إلى مرحلة التصحيح.
لاحظ أن
لا يضمن الاختبار صحة البرنامج بشكل كامل، أو بنسبة 100% ولكنه يكشف عن الأخطاء المحتملة.
من يُنفذ الاختبارات؟ Who Performs Test
غالبًا ما يقوم المبرمج أو المطور باختبار البرنامج الذي ينشئه، ولكن اختبار المبرمج لبرنامجه لا يعد الخيار الأفضل من حيث ضمان الجودة، نظرًا لأنه يصعب عليه أحيانًا ملاحظة أخطائه، ولذلك سيكون في حاجة إلى تكليف شخص آخر بإجراء الاختبار والذي يُطلق عليه لقب المُختبِر.
يقوم المختبِر بإجراء الاختبارات على البرنامج مع التركيز على وظائفه.
يتم اختبار النتائج باستخدام مجموعات بيانات الإدخال المختلفة، وهكذا فإن المبرمجين يقوم بإجراء الاختبارات الأولية، ولمن المُختبر هو المخول بالحكم على جودة البرمجيات وعملها كما هو متوقع.
تتضمن بعض شركات تطوير البرمجيات قسمًا خاصًا للاختبار مهمته التحقق من صحة عمل البرامج، ويُطلق عليه عادة اسم قسم ضمان جودة البرمجيات (Quality Assurance Department) .
اختيار بيانات الاختبار Choosing Test Data
أفضل طريقة لاختبار البرنامج هي:
- حساب مخرجاته المتوقعة يدويًا قبل تشغيله.
- معرفة ما إذا كانت نتائج تنفيذه تتطابق مع ما تم حسابه أم لا.
بمعنى آخر، يجب كتابة المخرجات المتوقعة من البرنامج قبل تشغيله ومقارنتها مع المخرجات الحقيقية له، ويجب أن يعمل البرنامج بشكل صحيح بغض النظر عن البيانات التي يُدخلها المستخدم.
في حالة إدخال بيانات غير صالحة، يجب تنبيه المستخدم إلى أن البيانات غير مقبولة ويُطلب منه إعادة الإدخال، ويحتاج المطور أن يأخذ بالاعتبار جميع القيم الممكنة للبيانات المدخلة.
ولاختبار البرنامج بشكل صحيح، تحتاج إلى اختيار بيانات الاختبار التي تُمثل جميع احتمالات مدخلات المستخدم.
تنقسم بيانات الاختبار لى الفئات التالية:
الاختبار المؤتمت Automated Testing
تصبح كثيرًا من البرمجيات أكثر تعقيدًا بعد إصدارها التجريبي، وبشكل خاص عند خضوعها لبعض التحسينات والتعديلات التي قد تُغير وظائفها أو تُضيف عليها مزيدًا من الوظائف، في هذه الحالة يجب تنفيذ الاختبارات السابقة نفسها وعمل بعض الاختبارات الجديدة للتحقق من عمل البرمجيات بشكل صحيح.
يحتاج العدد الكبير من الاختبارات إلى المزيد من الوقت والجهد عند تنفيذها بشكل يدوي، لذلك يلجأ المختبرون إلى إنشاء الاختبارات المؤتمتة التي يتم تحديثها في كل مرة يتم فيها تغيير البرنامج.
يكتب المختبر المقطع البرمجي الخاص باستخدام عدة أدوات الأتمتة هذه العملية.
من أمثلة أطر الاختبارات الأكثر شيوعًا لنظام الأندرويد :(Android)
- أبيوم .(Appium)
- اسبريسو (Espresso).
- يو آي أتوميتور (UI Automator).
استراتيجيات الاختبارات Testing Strategies
تنقسم الاختبارات إلى عدة فئات اعتمادًا على درجة تعقيد البرنامج أو التطبيق قيد الاختبار.
يستخدم المطورون والمسؤولون عن الاختبارات العديد من استراتيجيات الاختبار.
يُعد اختبار الوظائف البرمجية واختبار البرنامج الرئيس هما الأكثر استهلاكا للوقت والجهد.
الجدول التالي يوضح استراتيجيات الاختبار الأكثر شيوعًا:
بإمكانك مراجعة محتوى موضوع “اختبار التطبيقات ونشرها” من بدايته وحتى هذه النقطة، من خلال الرابط التالي:
تخطيط الاختبار Testing Planning
خطة الاختبار (Test Plan) أو جدولة الاختبار (Test Schedule) هي قائمة تحتوي على الاختبارات المخطط إجراؤها للتحقق من دقة عمل البرنامج، وتسجيل نتائج كل اختبار.
- يتضمن الجدول بيانات الاختبار، والغرض منه، النتائج المتوقعة والفعلية لتشغيل البرنامج، ويطلق على كل صف في جدول الاختبار حالة اختبار (Test Case).
- يتحقق سيناريو الاختبار من صحة جزء محدد من وظائف البرنامج، وقد يحتوي على واحدة أو مجموعة من حالات الاختبار.
- يتم وضع معايير قبول محددة بدقة في كل سيناريو اختبار.
يجب أن تختلف حالة الاختبار (Test Case) عن حالة الاستخدام (Use Case) فكما رأيت سابقًا تُحدد حالة الاستخدام كيفية استخدام البرنامج أو النظام لأداء مهمة محددة، وعادة ما تكون على شكل مخطط يوضح تسلسل الإجراءات التي سيتبعها المستخدم عند تفاعله مع البرنامج. على النقيض، يهدف الاختبار إلى إنشاء حالات خاطئة بشكل معتمد وذلك باستخدام بيانات صالحة وبيانات غير صالحة، غالبًا ما يتم التخطيط لسيناريوهات الاختبار وحالاته قبل إتمام البرمجة الفعلية.
توثيق الاختبار Test Documentation
تحتاج عملية الاختبار إلى توثيق دقيق لتحقيق الاستفادة المرجوة منها في اختبارات الإصدارات التالية للبرنامج، وتتضمن عملية توثيق الاختبارات ما يلي:
- سياسة الاختبار (Testing Policy): تحتوي على وصف مبادئ الاختبار وأساليبه وأهدافه.
- خطة الاختبار (Test Plan): تحتوي على وصف البرمجيات ووظائفها والأجزاء المطلوب اختبارها ونطاق الاختبارات.
- مواصفات الاختبار (Test Specification): تحتوي على تفاصيل كل سيناريو من سيناريوهات الاختبار ومعايير التقييم الخاصة به.
- وصف الاختبار (Test Description): يحتوي على بيانات الاختبار والاجراءات لكل حالة اختبار.
- تقرير تحليل الاختبار (Test Analysis Report): يحتوي على نتائج كل سيناريو اختبار.
- تقرير الخطأ (Bug Report): يحتوي على تقرير عن أي خلل أو خطأ أو مشكلة في البرمجيات.
- تقرير ملخص الاختبار (Test Summary Report): يحتوي على التقرير النهائي الذي يلخص عملية الاختبار بكاملها.
اختبار التطبيق السياحي لزيارة السعودية Testing Visit Saudi Tourism Application
بعد إنشائك التطبيق الخاص بك، عليك توزيعه ليتم اختباره. من المهم أن يمتلك المُختبرون خلفيات متعددة ومختلفة، حيث يمنح ذلك المطور مزيًدا من المعلومات حول ما يجب تصحيحه في التطبيق، والميزات التي يجب إضافتها.
على سبيل المثال، سيواجه مستخدمو التطبيقات الذين يعانون من صعوبة الرؤية أو ضعف السمع، صعوبات في الحصول على المعلومات الصحيحة. في درس لاحق سنقوم بتنفيذ ميزات إمكانية الوصول لهذ التطبيق.
حَزم التطبيق وتوزيعه (Packaging and Distributing an Application)
بعد الانتهاء من تطوير تطبيقك واختباره، ستحتاج إلى حزمة (Package) في تنسيق ملف قابل للتنزيل والتثبيت على الأجهزة المحمولة بنظام الأندرويد، يمكنك توزيع التطبيق بإحدى هاتين الطريقتين:
تعيين إصدار التطبيق Application Versioning
بغض النظر عن الطريقة التي تعتمدها في توزيع تطبيقك، فإن الخطوة الأولى في حزم تطبيقك هي تعيين الإصدار (Versioning).
تحتاج التطبيقات إلى تنفيذ الاصلاحات والتحديثات بشكل مستمر، ولا يمكن لأي تطبيق أن يستمر بالعمل دون التطوير المستمر.
من المعتاد أن يحتفظ التطبيق بالاسم نفسه، ولكن قد يتم من خلال عملية التحديث إجراء تغييرات في واجهة المستخدم أو في بعض وظائف التطبيق.
لذلك، يجب أن تكون هناك طريقة للتمييز بين هذه التطبيقات.
تعيين الإصدار (Versioning) هو استخدام رمز المعرف (Identifier Code) ليشير إلى إصدار التطبيق الذي يقوم المستخدم بتثبيته حاليًا، ويُعد بمثابة الطريقة الأفضل للتمييز بين الإصدارات المختلفة له.
في التطبيقات المخصصة لنظام الأندرويد، يتم تحديد تعيين الإصدار بالخصائص التالية:
عند العمل باستخدام مخترع التطبيقات MIT (MIT App Inventor)، يتاح للمطور تعديل العديد من خصائص التطبيق العامة بما في ذلك إصدارات التطبيق من قسم Properties (الخصائص) من Screen1 (الشاشة 1)، وهذا هو سبب عدم امكانية حذف شاشة 1 (screen 1) من التطبيق.
مظهر التطبيق Application Appearance
يجب تقديم بعض المعلومات للمستخدم الذي يرغب بتنزيل تطبيقك من المتجر، وهي:
- اسم التطبيق (Application Name) : هو الذي يظهر في المتجر وعلى هاتفك في قائمة تطبيقاتك.
- وصف التطبيق (Application Description): النص الذي يُعطي لمحة موجزة عن التطبيق.
- شعار التطبيق (Application Logo): أيقونة الشعار الذي تظهر في المتجر وعلى هاتفك.
حزم التطبيق Application Package
لتثبيت تطبيقك على هاتف محمول، عليك تحويل البرنامج الذي أنشأته في مخترع التطبيقات (App Inventor) إلى ملف يمكن تثبيته بواسطة أجهزة الأندرويد.
يوجد نوعان من الحزم لتطبيقات الأجهزة المحمولة بنظام الأندرويد:
- تنسيق حزمة الأندرويد القياسية (Standard Android Package) وهو التنسيق الذي تم استخدامه منذ إنشاء نظام تشغيل أندرويد، ويعد هذا التنسيق أبسط طريقة لتوزيع تطبيقات أندرويد.
يمكن للمستخدم تنزيل ملفات APK مباشرة من رابط موقع الويب أو تحميلها من متجر (Google Play).
- حزم تطبيقات الأندرويد (Android App Bundles – AABs) هي نوع جديد من تنسيق الملفات يتم استخدامها لحزم تطبيقات الأندرويد، تحتوي الحزمة على ملف APK، إضافة إلى بيانات وصفية تسمح للتطبيق العمل بسلاسة على مجموعة واسعة من الأجهزة.
لا يُمكن توزيع هذه الحزم أو تنزيلها إلا من متجر (Google Play).
بإمكانك مراجعة محتوى موضوع “اختبار التطبيقات ونشرها” بدايةً من عنوان “تخطيط الاختبار” وحتى نهاية الموضوع، من خلال الرابط التالي:
اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:
الواجب الإلكتروني
إلى هنا يكون قد انتهى موضوع “اختبار التطبيقات ونشرها”، لا تنسوا مراجعة أهداف التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!