الفرق بين تصحيح أخطاء التطبيق والاختبار - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: الفرق بين تصحيح أخطاء التطبيق والاختبار

📚 معلومات الصفحة

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تتناول هذه الصفحة الفروق الأساسية بين تصحيح الأخطاء (Debugging) والاختبار (Testing) في تطوير البرمجيات، حيث يُعرّف التصحيح بأنه عملية إزالة الأخطاء المكتشفة بعد الاختبار، بينما الاختبار هو عملية التحقق من صحة البرمجيات. على سبيل المثال، قد يكشف الاختبار عن خطأ في عرض المعلومات بواجهة المستخدم، بينما يتضمن التصحيح تحديد وتصحيح الخطأ في منطق البرنامج.

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

أخيرًا، تذكر الصفحة الاختبار المؤتمت (Automated Testing) كأداة مهمة لاختبار البرمجيات المعقدة بعد التعديلات، مع الإشارة إلى أن الاختبار لا يضمن صحة البرنامج بنسبة 100% ولكنه يكشف عن الأخطاء المحتملة.

📄 النص الكامل للصفحة

الفرق بين تصحيح أخطاء التطبيق والاختبار Difference between Application Debugging and Testing التصحيح (Debugging) هو عملية إزالة الأخطاء والأعطال من البرمجيات التي يتم اكتشافها عادةً بعد الاختبار. في حين أن الاختبار (Testing) هو عملية التحقق من صحة البرمجيات. على سبيل المثال، قد يحدث أثناء الاختبار ألا يعرض مكون محدد في واجهة المستخدم (UI) لتطبيق المعلومات الصحيحة للمستخدم. ستجد خلال عملية التصحيح أن هناك عملية حسابية خاطئة في منطق البرنامج (Program Logic) هي المتسببة في الخطأ السابق أثناء عرضه، وبذلك سيتم تصحيح تلك العملية فقط وليس مكون واجهة المستخدم. يجب إجراء الاختبار المناسب للوصول إلى مرحلة التصحيح. لا يضمن الاختبار صحة البرنامج بشكل كامل، أو بنسبة %100، ولكنه يكشف عن الأخطاء المحتملة. --- SECTION: من ينفذ الاختبارات؟ --- من ينفذ الاختبارات؟ Who Performs Tests? غالباً ما يقوم المبرمج أو المطور باختبار البرنامج الذي يُنشئه، ولكن اختبار المبرمج لبرنامجه لا يُعد الخيار الأفضل من حيث ضمان الجودة؛ نظراً لأنه يصعب عليه أحياناً ملاحظة أخطائه؛ ولذلك سيكون في حاجة إلى تكليف شخص آخر بإجراء الاختبار، والذي يطلق عليه لقب المختبر. يقوم المختبر بإجراء الاختبارات على البرنامج مع التركيز على وظائفه، حيث يتم اختبار النتائج باستخدام مجموعات بيانات الإدخال المختلفة. وهكذا فإن المبرمجين يقومون بإجراء الاختبارات الأولية، ولكن المختبر هو المخول بالحكم على جودة البرمجيات وعملها كما هو متوقع. تتضمن بعض شركات تطوير البرمجيات قسماً خاصاً للاختبار مهمته التحقق من صحة عمل البرنامج، ويطلق عليه عادة اسم قسم ضمان الجودة (Quality Assurance Department). --- SECTION: اختيار بيانات الاختبار --- اختيار بيانات الاختبار Choosing Test Data إن أفضل طريقة لاختبار البرنامج هي حساب مخرجاته المتوقعة يدوياً قبل تشغيله، ثم معرفة ما إذا كانت نتائج تنفيذه تتطابق مع ما تم حسابه أم لا. وبمعنى آخر، عليك كتابة المخرجات المتوقعة من البرنامج قبل تشغيله ومقارنتها مع المخرجات الحقيقية له. ويجب أن يعمل البرنامج بشكل صحيح بغض النظر عن البيانات التي يُدخلها المستخدم. ولكن في حالة إدخال بيانات غير صالحة، يجب تنبيه المستخدم إلى أن البيانات غير مقبولة ويُطلب منه إعادة الإدخال، ويحتاج المطور أن يأخذ بالاعتبار جميع القيم الممكنة للبيانات المدخلة، ولاختبار البرنامج بشكل صحيح، تحتاج إلى اختيار بيانات الاختبار التي تمثل جميع احتمالات مدخلات المستخدم. تنقسم بيانات الاختبار إلى الفئات التالية: • بيانات عادية (Normal Data): تُستخدم البيانات العادية عند تعامل المستخدم مع البرنامج بشكل طبيعي، وتتضمن مجموعات من القيم من نفس نوع البيانات المتوقعة. على سبيل المثال، إذا كان عليك إدخال قيمة الشهر كعدد صحيح من 1 إلى 12، فإن البيانات العادية هي عدد صحيح من 1 إلى 12. • بيانات حدودية (Boundary Data): هي البيانات الموجودة على القيم المتطرفة (Outliers) لنطاق القيم المتوقعة. على سبيل المثال، إذا كنت تتوقع إدخال قيمة العام بين 1900 و 2020، فإن القيم المتطرفة هي 1900 و 2020؛ لذا فأنت تختبر البرنامج عند إدخال 1900 أو 2020 كأرقام في البرنامج لمعرفة ما إذا كانت هناك أية أخطاء. • بيانات خاطئة (Erroneous Data): هي البيانات الواقعة خارج نطاق القيم المتوقعة. في المثال السابق، إذا أدخل المستخدم قيمة الشهر بالرقم 0 أو 13، أو أدخل كلمة يناير بدلاً من العدد الصحيح 1، فسيكون هناك خطأ. --- SECTION: الاختبار المؤتمت --- الاختبار المؤتمت Automated Testing تصبح كثير من البرمجيات أكثر تعقيداً بعد إصدارها التجريبي، وبشكل خاص عند خضوعها للتحسينات والتعديلات التي قد تُغير وظائفها أو تضيف عليها مزيداً من الوظائف. في هذه الحالة، يجب تنفيذ الاختبارات الشاملة نفسها، وعمل بعض 186 وزارة التعليم Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **IMAGE**: شعار وزارة التعليم Description: شعار وزارة التعليم السعودية يتضمن نص 'وزارة التعليم' باللغة العربية و 'Ministry of Education' باللغة الإنجليزية، مع تاريخ '2025 - 1447' أسفله. يظهر بجانبه تصميم نقطي باللون الأخضر. Context: يشير إلى المصدر الرسمي للكتاب المدرسي.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 8 بطاقة لهذه الصفحة

ما الفرق بين عملية التصحيح (Debugging) وعملية الاختبار (Testing) في هندسة البرمجيات؟

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

الشرح: الاختبار يكتشف الأخطاء المحتملة، بينما التصحيح يعالج الأخطاء التي تم اكتشافها بالفعل، وغالباً ما يكون التصحيح خطوة تالية للاختبار.

تلميح: فكر في التسلسل الزمني والهدف من كل عملية. إحداهما تكتشف والأخرى تعالج.

التصنيف: فرق بين مفهومين | المستوى: متوسط

لماذا لا يُعد اختبار المبرمج لبرنامجه الخاص هو الخيار الأفضل لضمان الجودة؟

الإجابة: لأنه يصعب على المبرمج أحياناً ملاحظة أخطائه الخاصة؛ ولذلك يحتاج إلى تكليف شخص آخر (المختبر) لإجراء الاختبار.

الشرح: يؤدي وجود طرف ثالث محايد (المختبر) إلى تقليل التحيز وزيادة فعالية اكتشاف الأخطاء.

تلميح: تذكر أن الشخص قد يكون غير موضوعي أو غير قادر على رؤية أخطائه الخاصة.

التصنيف: تفكير ناقد | المستوى: سهل

ما هي أفضل طريقة لاختبار البرنامج وفقاً للنص؟

الإجابة: حساب مخرجات البرنامج المتوقعة يدوياً قبل تشغيله، ثم مقارنة نتائج تنفيذه الفعلية مع ما تم حسابه.

الشرح: هذه الطريقة تسمح بإنشاء معيار مرجعي (مخرجات متوقعة) يمكن مقارنة النتائج الفعلية به، مما يجعل اكتشاف التناقضات أسهل.

تلميح: تتضمن هذه الطريقة إعداداً مسبقاً للمخرجات المتوقعة قبل تشغيل الكود.

التصنيف: مفهوم جوهري | المستوى: متوسط

ما هي البيانات العادية (Normal Data) في سياق اختيار بيانات الاختبار؟

الإجابة: هي البيانات التي تُستخدم عند تعامل المستخدم مع البرنامج بشكل طبيعي، وتتضمن مجموعات من القيم من نفس نوع البيانات المتوقعة ضمن النطاق الصحيح.

الشرح: تمثل البيانات العادية الحالات الأكثر شيوعاً واستخداماً للبرنامج، وتختبر وظائفه الأساسية.

تلميح: هي القيم التي يتوقعها البرنامج في الاستخدام اليومي العادي.

التصنيف: تعريف | المستوى: سهل

ما هي البيانات الحدودية (Boundary Data) في سياق اختيار بيانات الاختبار؟

الإجابة: هي البيانات الموجودة على القيم المتطرفة (Outliers) لنطاق القيم المتوقعة للبرنامج.

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

تلميح: تختبر هذه البيانات الحالات عند أطراف النطاق المسموح به.

التصنيف: تعريف | المستوى: متوسط

ما هي البيانات الخاطئة (Erroneous Data) في سياق اختيار بيانات الاختبار؟

الإجابة: هي البيانات الواقعة خارج نطاق القيم المتوقعة أو من نوع خاطئ، والتي يجب أن يتعامل معها البرنامج بشكل مناسب (كإظهار رسالة خطأ).

الشرح: اختبار البيانات الخاطئة يتحقق من متانة البرنامج وقدرته على التعامل مع المدخلات غير الصحيحة بطريقة آمنة وواضحة للمستخدم.

تلميح: هي بيانات غير صالحة أو غير مقبولة من حيث النطاق أو النوع.

التصنيف: تعريف | المستوى: متوسط

ما هو دور قسم ضمان الجودة (Quality Assurance Department) في شركات تطوير البرمجيات؟

الإجابة: هو قسم خاص مهمته التحقق من صحة عمل البرنامج وضمان جودته قبل إطلاقه.

الشرح: يمثل قسم ضمان الجودة عملية منهجية مستقلة للتحقق من أن البرنامج يلبي المواصفات المطلوبة ويعمل كما هو متوقع.

تلميح: يركز هذا القسم على الجودة النهائية للمنتج البرمجي.

التصنيف: تعريف | المستوى: سهل

لماذا يصبح الاختبار المؤتمت (Automated Testing) مهماً بشكل خاص بعد إصدار البرنامج التجريبي وخضوعه للتعديلات؟

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

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

تلميح: فكر في الحاجة إلى إعادة الاختبار بعد كل تغيير، وكيفية جعل هذه العملية فعالة.

التصنيف: تفكير ناقد | المستوى: صعب