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

اختبار التطبيقات
عبدالله عبدالرحيم الكندي
يوم الإطلاق مو اليوم اللي تكتشف فيه إن زر التسجيل ما يشتغل على جوال قديم، أو إن الشاشة تنقص لما المستخدم يكبّر الخط. هذي أشياء مكانها أسابيع قبل. عبدالله عبدالرحيم الكندي يبني تطبيقات Flutter لآيفون وأندرويد، وتعلّم إن السؤال مو «هل اختبرنا؟»، السؤال «مين اختبر وش؟». لأن كل طرف يشوف نوعاً مختلفاً من الأخطاء، وغياب طرف واحد يعني فئة كاملة منها توصل للمستخدم.
المطوّر: اختبارات تشتغل لحالها
أول طبقة يكتبها المطوّر نفسه، وتشتغل آلياً مع كل تعديل. في Flutter فيه ثلاث مستويات: اختبارات الوحدة (unit) للمنطق الخالص، مثل حساب الخصم والضريبة. واختبارات الودجات (widget) اللي تبني شاشة في بيئة وهمية وتتأكد إن الضغط على زر يطلّع النتيجة المتوقعة. واختبارات التكامل (integration) اللي تشغّل التطبيق كاملاً على جهاز أو محاكي وتمشي رحلة مستخدم من أولها لآخرها. ما يحتاج تغطي كل سطر. ركّز على المنطق اللي فيه فلوس أو قرارات: الأسعار، والصلاحيات، وحالات الطلب. خطأ في لون زر ينلاحظ بسرعة، أما خطأ في حساب الضريبة فممكن يعيش شهوراً.
المختبر المستقل: عين ما تعرف الكود
المطوّر يختبر الطريق اللي بناه، والمختبر يدوّر على الطرق اللي ما خطرت على باله. يمشي بخطة مكتوبة، ويسجّل كل خطأ بخطوات تكراره، والجهاز، ونظام التشغيل، ولقطة شاشة. وهذي القائمة اللي يمشي عليها في تطبيق عربي:
- أجهزة متنوعة: جوال بشاشة صغيرة وآخر كبير، وجهاز أندرويد متوسط مو بس الأحدث، وأقدم إصدار نظام تدعمه رسمياً.
- الخط الكبير: كبّر حجم الخط من إعدادات الجوال، وشوف هل النصوص تنقص أو تتداخل أو تطلع من حدود الأزرار.
- الوضع الداكن: نص أسود على خلفية صارت سوداء خطأ أشهر مما تتوقع.
- الاتجاه: الأرقام والأسماء الإنجليزية داخل جمل عربية، والأسهم، والتمرير الأفقي.
- الشبكة السيئة: فعّل محاكاة الشبكة البطيئة، واقطع الإنترنت في نص عملية، وشوف هل التطبيق يعرض رسالة واضحة أو يعلق للأبد.
- المقاطعات: مكالمة تجي وقت الدفع، والتطبيق يروح للخلفية ويرجع، والجهاز ينقفل في نص نموذج طويل.
- الصلاحيات المرفوضة: المستخدم رفض الكاميرا أو الموقع. هل فيه بديل، أو يتوقف التطبيق؟
- البيانات الغريبة: اسم طويل جداً، وحقل فاضي، ونص فيه إيموجي، ورقم جوال بصيغة دولية، وقائمة ما فيها ولا عنصر.
وفيه نوعين اختبار يغيبون عن أغلب الخطط. الأول اختبار الحدود بين الحسابات: سجّل بحسابين، وخذ رابط طلب أو ملف من الحساب الأول، وحاول تفتحه من الثاني. لو انفتح، عندك ثغرة أخطر من أي خطأ شكلي. والثاني الأداء على جهاز متوسط: كم ثانية ياخذ التطبيق من الضغط على أيقونته لين تظهر أول شاشة مفيدة؟ وهل التمرير في قائمة طويلة فيها صور يتقطّع؟ الأرقام هذي على جوال المطوّر الحديث تطلع مثالية، وعلى جوال عميلك ممكن تطلع شي ثاني تماماً.
صاحب المشروع: هل هذا اللي طلبته؟
دورك مو تدوّر على أخطاء برمجية، دورك تتأكد إن التطبيق يحل المشكلة اللي دفعت عشانها. خذ قائمة المتطلبات اللي اتفقتم عليها، وامشِ عليها بنداً بنداً على جوالك أنت، بحساب حقيقي، مو بعرض يسويه المطوّر قدامك، لأن العرض المباشر يمشي دائماً على الطريق السعيد. وجرّب الرحلات الكاملة من منظور كل نوع مستخدم: العميل، والموظف، والمدير. كثير من الفجوات تظهر بين الأدوار، مثل طلب ينشئه العميل وما يوصل إشعاره للموظف.
واكتب ملاحظاتك بطريقة تختصر على المطوّر: بدل «صفحة الطلبات فيها مشكلة»، اكتب وش ضغطت بالترتيب، ووش توقعت، ووش صار فعلاً، ونوع جوالك، مع لقطة شاشة أو تسجيل قصير. ملاحظة بهذا الشكل تنحل في ساعة، والملاحظة الغامضة تاخذ يومين من الأسئلة رايح جاي. وبعد كل جولة إصلاحات، أعد تجربة الرحلات الأساسية كاملة، مو بس النقاط اللي انصلحت، لأن الإصلاح في مكان يكسر أحياناً مكاناً ثانياً ما كان فيه مشكلة.
المستخدمون الحقيقيون: النسخة التجريبية المغلقة
قبل الإطلاق العام، وزّع نسخة على مجموعة صغيرة من جمهورك الفعلي: TestFlight في آيفون، ومسارات الاختبار الداخلي والمغلق في Google Play. هؤلاء يكتشفون شي ما يكتشفه أي فريق: وين يتوهون. راقب وش يسوون أكثر مما تسمع وش يقولون، لأن المستخدم غالباً يلوم نفسه ويسكت بدل ما يقول إن الشاشة مربكة. وفعّل أداة تسجيل الأعطال من هذي المرحلة، عشان أي انهيار على جهاز ما عندك يوصلك بتفاصيله بدل ما يضيع.
قبل الضغط على «نشر»: الفحص الأخير
- اختبر نسخة الإنتاج نفسها، مو نسخة التطوير. عنوان الخادم والمفاتيح والتشويش تختلف بينهم، وأخطاء كثيرة ما تظهر إلا في نسخة الإنتاج.
- تثبيت نظيف: احذف التطبيق، وثبّته من جديد، وسجّل كمستخدم جديد تماماً. فيه مطوّرون ما جرّبوا هذي الرحلة من شهور.
- التحديث فوق نسخة قديمة: لو هذا تحديث، ثبّت النسخة السابقة وحدّث فوقها، وتأكد إن البيانات المحفوظة ما ضاعت.
- كل خطأ مفتوح له تصنيف: معطّل يمنع الإطلاق، أو مزعج يُصلح في التحديث الجاي. قرار واعٍ لكل واحد، مو نسيان.
في منصة أزهل الرقمية الاختبار له وقت محجوز في الخطة من البداية، مو الأيام اللي تبقى إذا بقي شي. وعبدالله عبدالرحيم بن سنكر الكندي يذكّر كل عميل بنقطة وحدة: المستخدم ما يقارن تطبيقك بخطة المشروع، يقارنه بأفضل تطبيق في جواله. وأول انطباع، اللي ينبني في أول دقيقتين، ما له نسخة ثانية.
عندك فكرة؟ الاستشارة الأولى علينا
كلّم عبدالله مباشرة على واتساب — رسالتك توصل له هو، مو لرد آلي. نسمع فكرتك ونقول لك وش تحتاج وكم تكلّف، ببلاش.
مقالات ذات صلة
كل المقالات
قياس نجاح المحتوى
عبدالله الكندي
عبدالله الكندي: خرافات قياس المحتوى، والأرقام اللي تعني شي فعلاً
عبدالله الكندي يفكك ست خرافات في قياس نجاح المحتوى، من المشاهدات إلى معدل الارتداد، ويقترح بدلها مقاييس من Search Console و GA4 والسوشال تربط المحتوى بقرار العميل.
اقرأ المقال
تحليل بيانات المبيعات
عبدالله الكندي
عبدالله الكندي: حلّل بيانات مبيعاتك بالذكاء الاصطناعي بدون فريق بيانات
دليل عملي من عبدالله الكندي لتحليل بيانات المبيعات بالذكاء الاصطناعي بدون فريق بيانات: تجهيز الملف، والأسئلة الصحيحة، والتحقق من الأرقام، وحماية بيانات العملاء قبل الرفع.
اقرأ المقال
تكلفة اكتساب العميل
عبدالله سنكر
عبدالله سنكر يشرح CAC و ROAS و LTV: الأرقام اللي تحكم ميزانيتك
عبدالله سنكر يشرح ثلاثة أرقام تحكم ميزانية الإعلانات: العائد على الإنفاق الإعلاني ROAS وتكلفة اكتساب العميل CAC وقيمة العميل LTV، بمثال افتراضي محسوب وقرارات تطلع منه.
اقرأ المقال