تخطّ إلى المحتوىتواصل معنا
دليل عملي

ما هو اختبار البرمجيات؟

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

فريق فنّان11 أكتوبر 202611 دقيقة قراءة
الإجابة المختصرة

اختبار البرمجيات هو أن تجرّب تطبيقك عن قصد كما سيستخدمه عملاؤك، وتقارن ما يحدث فعلاً بما يجب أن يحدث، قبل أن يفعلوا هم ذلك. كل تجربة مكتوبة تسمّى حالة اختبار: خطوات واضحة ونتيجة متوقّعة. ما خالف المتوقّع يُسجَّل خللاً بدليله، ثم يُصلح ويُعاد اختباره. الهدف ليس إثبات أن التطبيق بلا أخطاء، فهذا مستحيل، بل أن تعرف حالته الحقيقية قبل الإطلاق وبعد كل تعديل.

ما هو الاختبار، وما الذي ليس اختباراً؟

تخيّل أنك تفتتح مطعماً. قبل يوم الافتتاح تدعو بعض الأصدقاء، وتطلب منهم أن يحجزوا ويطلبوا ويدفعوا، وتراقب أين يتعثّر كل شيء. هذا بالضبط هو الاختبار: تجربة مقصودة بعين ناقدة، غرضها أن تجد المشكلة أنت قبل أن يجدها ضيف حقيقي.

في البرمجيات، الاختبار يجيب عن سؤال واحد يتكرّر: هل يفعل التطبيق ما وعدنا به العميل؟ إذا ضغط «احجز»، هل يُسجَّل الحجز؟ إذا أدخل رقماً خاطئاً، هل تظهر رسالة مفهومة؟ إذا حجز شخصان الموعد نفسه، ماذا يحدث؟

ليس اختباراً
  • أن تفتح الصفحة الرئيسية وتقول «شكلها تمام».
  • أن يجرّب المطوّر ما بناه بالطريقة التي يعرف أنها تعمل.
  • أن تنتظر شكاوى العملاء لتعرف ما تعطّل.
  • أن تجرّب مرة واحدة قبل الإطلاق ثم لا تعود.
اختبار فعلي
  • خطوات مكتوبة ونتيجة متوقّعة معروفة قبل أن تبدأ.
  • تجربة الطريق الصحيح والطرق الخاطئة معاً.
  • دليل على كل نتيجة: لقطة شاشة أو ردّ مسجَّل.
  • إعادة التجارب نفسها بعد كل تعديل.

وهناك أمر يجب أن يُقال بصراحة: الاختبار لا يثبت أن تطبيقك خالٍ من الأخطاء. هو يثبت أن ما جرّبته يعمل، ويكشف ما لا يعمل ممّا جرّبته. لهذا قيمة الاختبار في اختيار ما تجرّبه، لا في عدد التجارب.

لماذا يكلّف الخلل أكثر كلما تأخّر اكتشافه؟

الخلل نفسه له ثمن مختلف بحسب من يجده ومتى. فكّر في خلل يسمح بحجز الطاولة نفسها مرتين:

  1. أثناء البناء: يُصلح في دقائق، ولا يعلم به أحد.
  2. قبل الإطلاق بيوم: يُصلح على عجل، وقد يتأخّر الإطلاق قليلاً.
  3. بعد الإطلاق، ووجده موظفك: إصلاح، واعتذار لضيف أو اثنين، وتصحيح يدوي للحجوزات.
  4. بعد الإطلاق، ووجده العملاء: ضيفان يقفان أمام طاولة واحدة، وتقييم سيّئ، وعملاء لن يخبروك بل لن يعودوا.

كلفة الكود لم تتغيّر كثيراً بين الحالات. الذي تضاعف هو ما حول الكود: وقت فريقك، وبيانات يجب تصحيحها، وثقة عميل يصعب استرجاعها. والعميل الذي يصادف خللاً في الدفع لا يكتب لك في الغالب، بل يغلق الصفحة.

القاعدة العملية

اختبر أقرب ما يمكن إلى لحظة التغيير. كل تعديل، ولو صغيراً، هو فرصة لخلل جديد، واكتشافه في اليوم نفسه أرخص ما يكون.

أنواع الاختبار التي تهمّ صاحب المشروع

كتب الاختبار تعدّد عشرات الأنواع. أنت لا تحتاج إلى حفظها. هذه خمسة تغطّي معظم ما يهمّ مشروعاً صغيراً أو متوسطاً:

١. اختبار المسارات: هل يكمل العميل ما جاء لأجله؟

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

٢. الاختبار بعد كل تعديل: هل ما كان يعمل ما زال يعمل؟

تضيف كوبون خصم، فيتعطّل حساب الضريبة. هذا أكثر خلل شيوعاً في أي منتج يتطوّر: تعديل في مكان يكسر مكاناً آخر. الحل أن تحفظ حالات الاختبار وتعيدها كلها بعد كل تغيير. اسمه الشائع «اختبار الانحدار»، وشرحناه في صفحة الاختبار بعد كل تعديل.

٣. اختبار الـ API: هل يتفاهم نظامك مع الأنظمة الأخرى؟

إن كان تطبيق الجوال، أو شريك التوصيل، أو نظام المحاسبة يتصل بنظامك، فهو يتصل عبر الـ API لا عبر الشاشات. هنا تتحقّق من أن كل طلب يعيد البيانات الصحيحة، ويرفض من لا يملك الصلاحية، ويعيد رسالة خطأ مفهومة. التفاصيل في صفحة اختبار الـ API.

٤. مقاس الجوال: هل يعمل كل شيء على شاشة صغيرة؟

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

٥. اختبار القبول: هل هذا ما طلبتُه فعلاً؟

هذا اختبارك أنت. قد يعمل كل شيء تقنياً ولا يطابق طريقة عملك: النظام يسمح بالإلغاء حتى آخر دقيقة وأنت تريد إيقافه قبل الموعد بساعتين. لا أحد يعرف قواعد عملك غيرك، فخصّص وقتاً لتجرّب بنفسك قبل أن توافق.

أنواع تحتاج إلى مختصّين

اختبار التحمّل (آلاف الزوّار في لحظة واحدة)، والفحص الأمني واختبار الاختراق، وتجربة تطبيقات الجوال على أجهزة حقيقية مختلفة: هذه تخصّصات قائمة بذاتها، لها أدواتها وخبراؤها. لا تفترض أن اختبار المسارات يغطّيها، واسأل أي جهة تختبر لك ماذا يشمل عملها وماذا لا يشمل.

الاختبار اليدوي والآلي: ما الفرق، ومتى يكفي كلٌّ منهما؟

اليدوي أن يمشي إنسان في الخطوات بنفسه. الآلي أن تُكتب الخطوات مرة، ثم ينفّذها برنامج في متصفح حقيقي كلما طلبت. لا أحد منهما «أفضل»؛ لكلٍّ مكانه:

الاختبار اليدويالاختبار الآلي
يبرع فيملاحظة ما يبدو غريباً أو مربكاً، وتجربة ما لم يخطر على بال أحدإعادة الخطوات نفسها بالدقة نفسها في كل مرة
نقطة ضعفهيملّ الإنسان، فيتخطّى خطوات في المرة العاشرةلا يلاحظ إلا ما طُلب منه أن يتحقّق منه
الكلفةقليلة في البداية، وتتكرّر كاملة مع كل جولةجهد في كتابة الحالات أولاً، ثم إعادة شبه مجانية
يناسبمنتجاً جديداً يتغيّر شكله كل يوم، واختبار القبولالمسارات الأساسية التي يجب أن تعمل بعد كل تعديل

متى يكفي اليدوي؟ حين يكون المنتج صغيراً، والتعديلات قليلة، وعندك قائمة مكتوبة تمرّ عليها. ابدأ من قائمة فحص الموقع قبل الإطلاق.

متى لا يكفي؟ حين تعدّل كل أسبوع، أو حين صارت قائمة التجارب أطول من أن يكملها أحد بتركيز، أو حين يمرّ عبر التطبيق مال أو مواعيد. عندها يصبح تخطّي الاختبار «هذه المرة فقط» هو العادة، وهنا تأتي الأخطاء.

ما هي حالة الاختبار، وكيف تُكتب؟

حالة الاختبار هي أصغر وحدة في الاختبار: تجربة واحدة مكتوبة بحيث ينفّذها أي شخص ويصل إلى الحكم نفسه. إن احتاج منفّذها أن يسألك «وماذا أقصد بالضبط؟» فهي ناقصة. مكوّناتها خمسة:

  • العنوان: ما الذي نتحقّق منه، في سطر.
  • المتطلبات المسبقة: ما يجب أن يكون جاهزاً قبل البدء (حساب تجريبي، موعد متاح).
  • الخطوات: أفعال محدّدة بالترتيب، فعل واحد في كل خطوة.
  • النتيجة المتوقّعة: ما يجب أن يراه العميل أو يُسجَّل في النظام.
  • الأولوية: ما مدى سوء الأمر إن فشلت هذه الحالة؟
مثال: حالة اختبار لعيادة أسنان
العنوان
لا يمكن حجز موعد محجوز مسبقاً عند الطبيب نفسه
المتطلبات المسبقة
حسابا مريضين تجريبيان، وموعد متاح غداً الساعة 10:00 صباحاً
الخطوات
١) ادخل بحساب المريض الأول واحجز موعد 10:00. ٢) اخرج وادخل بحساب المريض الثاني. ٣) افتح صفحة الحجز للطبيب نفسه واليوم نفسه. ٤) حاول اختيار 10:00.
النتيجة المتوقّعة
موعد 10:00 يظهر غير متاح للمريض الثاني، ولا يُنشأ حجز ثانٍ
الأولوية
عالية: مريضان في موعد واحد مشكلة يراها العميل مباشرة

لاحظ أن الحالة لا تقول «تأكّد من أن الحجز يعمل». هذه أمنية وليست حالة اختبار. الحالة الجيدة تحدّد الموقف، والفعل، وما يجب أن يحدث بعده. وحين تفشل، تتحوّل خطواتها مباشرة إلى تقرير خلل جاهز.

ماذا تعني نتائج الاختبار؟

جولة الاختبار لا تنتهي بـ«نجح» أو «فشل» فقط. التقرير الصادق يفرّق بين خلل في تطبيقك ومشكلة في الاختبار نفسه أو في ظروفه:

النتيجةمعناهاماذا تفعل
نجحتحدث ما كان متوقّعاً بالضبطلا شيء. أعِدها بعد التعديل القادم
فشلتالتطبيق فعل شيئاً غير المتوقّعسجّل خللاً بدليله، ثم أصلح وأعد الاختبار
محجوبةلم تبدأ أصلاً لأن خطوة قبلها تعطّلت، كتسجيل الدخولعالج السبب الأول؛ ليست خللاً جديداً بحدّ ذاتها
غير حاسمةتعذّر الحكم: انقطع الاتصال، أو تغيّرت الصفحة فلم تعد الخطوات تطابقهاحدّث الحالة أو أعد المحاولة قبل أن تستنتج شيئاً
متذبذبةفشلت مرة ونجحت عند الإعادة دون أي تغييرلا تتجاهلها: قد يكون خللاً يظهر تحت ظرف معيّن

رسم توضيحي: حكم «جاهز / غير جاهز» في نهاية جولة اختبار. الأرقام أمثلة.

اسأل دائماً: ما الذي لم يُختبر؟

عشرون حالة ناجحة لا تقول شيئاً عن الحالة الحادية والعشرين التي لم تُكتب. التقرير الجيد يذكر حدوده صراحة: ما الذي غطّاه، وما الذي بقي خارجه.

كم اختباراً يحتاج مشروع صغير؟

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

  1. 1
    أين يمرّ المال؟

    الدفع، والاسترجاع، والخصومات، والضريبة، والفاتورة. أي خلل هنا خسارة مباشرة أو نزاع مع عميل.

  2. 2
    من يدخل، وماذا يرى؟

    التسجيل، والدخول، واستعادة كلمة المرور، والصلاحيات: هل يرى الموظف ما لا يخصّه؟ هل يرى عميل بيانات عميل آخر؟

  3. 3
    أين يمكن أن تضيع بيانات أو تتكرّر؟

    حجز لا يُحفظ، أو طلب يُسجَّل مرتين، أو تعديل يمحو ما قبله. هذه أخطاء صامتة لا تظهر إلا بعد أن تتراكم.

  4. 4
    ما المسار الذي يسلكه أكثر عملائك؟

    المسار الواحد الذي يمرّ به تسعة من كل عشرة زوّار يستحق اختباراً أدقّ من عشر صفحات لا يفتحها أحد.

اكتب من خمس إلى عشر حالات اختبار تغطّي إجابات هذه الأسئلة، بطريقها الصحيح وأشهر طرقها الخاطئة. هذه «مجموعتك الأساسية»: تعيدها قبل كل إطلاق وبعد كل تعديل. ثم تضيف إليها حالة جديدة كلما ظهر خلل، حتى لا يعود الخلل نفسه مرتين.

  • المسار الأساسي يكتمل من أوله إلى آخره على الجوال.
  • النماذج ترفض الإدخال الخاطئ برسالة مفهومة.
  • الدفع ينجح، وفشله لا يُنشئ طلباً معلّقاً.
  • كل دور يرى ما يخصّه فقط.
  • الضغط المتكرّر أو الطلب المتزامن لا يكرّر الحجز أو الطلب.
  • رسائل التأكيد تصل، بالعربية الصحيحة.

أين يقع مهندس الجودة بالذكاء الاصطناعي، وما حدوده؟

الاختبار الآلي كان يحتاج تقليدياً إلى من يكتب الحالات ويصونها، وهذا ما أبعده عن المشاريع الصغيرة. مهندس الجودة بالذكاء الاصطناعي يسدّ هذه الفجوة: تصف له ما تريد التأكّد منه بكلامك، فيقترح حالات الاختبار، وينفّذها، ويوثّق ما وجد.

في فنّان، مهندس الجودة يعمل بهذه الطريقة: يستكشف تطبيقك، ويعرض عليك خطة اختبار تراجعها قبل التنفيذ، ثم ينفّذها في متصفح حقيقي، ويتحقّق من الـ API إن وُجد. كل خلل يصلك بلقطة شاشة وخطوات تعيده والمتوقّع مقابل الفعلي، ولا يُعدّ مُصلَحاً إلا بعد أن تنجح إعادة الاختبار. وفي النهاية حكم واضح: جاهز، أو غير جاهز، أو غير حاسم، مع ذكر ما لم يُغطَّ. يعمل على التطبيقات المبنيّة بفنّان، وعلى المواقع الخارجية بمجرّد إضافة رابطها.

رسم توضيحي: تقرير خلل موثّق بلقطة شاشة وخطوات إعادته. البيانات أمثلة.

حدود يجب أن تعرفها

مهندس الجودة يرى تطبيقك كما يراه الزائر. لا يستطيع تخمين قاعدة عمل لم تذكرها: إن كان الإلغاء ممنوعاً قبل الموعد بساعتين فقل له ذلك. وجولة ناجحة ليست دليلاً على تطبيق بلا أخطاء؛ هي دليل على أن ما اختُبر يعمل. ويبقى اختبار القبول عليك أنت.

أخطاء شائعة في الاختبار

  • اختبار الطريق الصحيح فقط. العملاء يخطئون ويستعجلون ويضغطون مرتين. جرّب ما سيفعلونه، لا ما تتمنّى أن يفعلوه.
  • الاختبار على الحاسوب والعملاء على الجوال. اختبر حيث يكون عملاؤك.
  • الاختبار ببيانات مثالية. اسم طويل جداً، رقم يبدأ بصفر، نص عربي وإنجليزي في الحقل نفسه: الواقع أقلّ ترتيباً من بياناتك التجريبية.
  • اعتبار الخلل مُصلَحاً لأن أحداً قال ذلك. الخلل يُغلق حين تنجح الحالة التي كشفته، لا قبل.
  • تجربة التعديل الجديد فقط. ما انكسر غالباً ليس ما عدّلته، بل ما يجاوره. أعد المجموعة الأساسية كاملة.
  • الاختبار على بيانات العملاء الحقيقية بلا حذر. استخدم حسابات تجريبية، وحدّد ما لا يجوز تغييره قبل أن تبدأ.
  • تأجيل الاختبار إلى ليلة الإطلاق. لن يبقى وقت للإصلاح، فتطلق وأنت تعرف أن هناك خللاً.
السؤال ليس «هل في تطبيقي أخطاء؟» فالجواب دائماً نعم. السؤال: «هل أعرفها أنا قبل عملائي؟»

الخلاصة

  • الاختبار تجربة مقصودة بخطوات مكتوبة ونتيجة متوقّعة، لا نظرة سريعة على الصفحة الرئيسية.
  • الخلل نفسه يكلّف أكثر كلما تأخّر اكتشافه، وأغلى ما يكون حين يجده العميل.
  • رتّب بحسب الخطر: المال، والدخول والصلاحيات، وضياع البيانات، والمسار الأكثر استخداماً.
  • احفظ حالات الاختبار وأعدها بعد كل تعديل؛ معظم الأخطاء تأتي من تعديل كسر شيئاً مجاوراً.
  • الخلل لا يُعدّ مُصلَحاً إلا بعد إعادة اختبار ناجحة.
  • جولة ناجحة تثبت أن ما اختُبر يعمل، لا أن التطبيق بلا أخطاء. اسأل دائماً عمّا لم يُختبر.

أسئلة شائعة

ما هو اختبار البرمجيات باختصار؟
هو تجربة التطبيق أو الموقع عن قصد بخطوات محدّدة، ومقارنة ما يحدث بما يجب أن يحدث، لاكتشاف الأخطاء قبل أن يصادفها العملاء. كل تجربة مكتوبة تسمّى حالة اختبار، وكل مخالفة للمتوقّع تُسجَّل خللاً بدليله.
ما الفرق بين الاختبار اليدوي والاختبار الآلي؟
في اليدوي ينفّذ إنسان الخطوات بنفسه، وهو يبرع في ملاحظة ما يبدو مربكاً أو غير منطقي. في الآلي تُكتب الخطوات مرة وينفّذها برنامج في متصفح حقيقي كلما طلبت، وهو يبرع في إعادة التجارب نفسها بدقة بعد كل تعديل. معظم المشاريع تحتاج إلى الاثنين: الآلي للمسارات الأساسية، واليدوي لاختبار القبول.
هل أحتاج إلى اختبار موقعي إن كان صغيراً؟
نعم إن كان العملاء يحجزون منه أو يدفعون أو يسجّلون. حجم الاختبار يتبع الخطر لا حجم الموقع: خمس إلى عشر حالات تغطّي الدفع والدخول والمسار الأكثر استخداماً تكفي بدايةً، بشرط أن تعيدها بعد كل تعديل.
ما هي حالة الاختبار؟
تجربة واحدة مكتوبة: عنوان، ومتطلبات مسبقة، وخطوات مرتّبة، ونتيجة متوقّعة، وأولوية. تُكتب بحيث ينفّذها أي شخص ويصل إلى الحكم نفسه دون أن يسأل كاتبها.
ما هو اختبار الانحدار، ولماذا يهمّني؟
هو إعادة حالات الاختبار المحفوظة بعد كل تعديل للتأكّد من أن ما كان يعمل ما زال يعمل. يهمّك لأن أكثر الأخطاء شيوعاً في منتج يتطوّر تأتي من تعديل في مكان يكسر مكاناً آخر دون أن ينتبه أحد.
هل يغني الذكاء الاصطناعي عن مختبِر بشري؟
يتولّى الجزء المتكرّر والمُجهد: اقتراح حالات الاختبار، وتنفيذها في متصفح حقيقي، وتوثيق الأخطاء بالدليل، وإعادة الاختبار بعد الإصلاح. لكنه لا يعرف قواعد عملك التي لم تذكرها له، ولا يحلّ محلّ حكمك في اختبار القبول. والاختبارات المتخصّصة كالتحمّل والفحص الأمني تحتاج إلى مختصّين.
متى أعتبر تطبيقي جاهزاً للإطلاق؟
حين تنجح حالات الاختبار التي تغطّي المال والدخول والمسار الأساسي على الجوال، ولا يبقى خلل مفتوح يمنع العميل من إتمام ما جاء لأجله، وتكون قد جرّبته بنفسك وتعرف ما الذي لم يُختبر. «جاهز» لا تعني بلا أخطاء، بل بلا أخطاء معروفة تؤذي عملاءك.
مهندس الجودة

من القراءة إلى الاختبار

ما قرأته هنا ينفّذه مهندس الجودة من فنّان لك: خطة تراجعها، واختبار في متصفح حقيقي، وتقارير بالدليل.

مهندس الجودة

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

تعرّف على مهندس الجودة

اختبار المواقع

موقعك مبنيّ خارج فنّان؟ أضف رابطه واطلب من مهندس الجودة اختبار صفحاته ونماذجه ومساراته في متصفح حقيقي.

اقرأ التفاصيل

اختبار الـ API

ارفع ملف وصف الـ API، ومهندس الجودة يتحقّق من أن كل طلب يعيد ما يجب: الحالة، والحقول، والصلاحيات، ورسائل الخطأ.

اقرأ التفاصيل

الاختبار بعد كل تعديل

كل حالة اختبار تُحفظ وتُعاد. بعد أي تعديل تعرف في دقائق هل ما كان يعمل ما زال يعمل، ومتى انكسر.

اقرأ التفاصيل

تتبّع الأخطاء

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

اقرأ التفاصيل

اختبر قبل النشر

تطبيقك مبنيّ بفنّان؟ اختبره من نافذة النشر نفسها، واطلب من فنّان إصلاح ما ظهر، ثم انشر وأنت تعرف حالته.

اقرأ التفاصيل

للمطاعم وأنظمة الحجز

ضيفان، طاولة واحدة، الساعة السابعة مساءً: كيف يكتشف مهندس الجودة الحجز المزدوج قبل أن يكتشفه ضيوفك.

اقرأ التفاصيل

أدلة تقرؤها قبل أن تختبر

اعرف حالة تطبيقك قبل عملائك.

قل لمهندس الجودة ما تريد التأكّد منه بكلامك. يخطّط الاختبارات وينفّذها في متصفح حقيقي، ويوثّق كل خلل بالدليل، ويخبرك هل أنت جاهز للإطلاق. ضمن الخطط المدفوعة، والتسجيل مجاني.