مقالات وتدوينات
(0)

الفرق بين Testing و Debugging

825 قراءة
0 تعليق
alt
التصنيف مقالات وتدوينات
وقت النشر
2022/06/21
الردود
0

السلام عليكم ورحمة الله وبركاته 


حاليًا يعد اختبار البرامج (Testing) أحد أكثر المهن المرغوبة بين عشاق تكنولوجيا المعلومات، وهناك سؤال يتكرر ما هو  الفرق بين تصحيح الأخطاء (Debugging) والاختبار (Testing

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

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



ما هو الاختبار (Testing)؟ 
في الأساس يعد الاختبار عملية لمعرفة ما إذا كان النظام يعمل بشكل مثالي أو بطريقة منتظمة وفقًا للمتطلبات المتوقعة حيث يتم إجراء الاختبار في المقام الأول لمعرفة أوجه القصور في البرنامج ويتم تنفيذ هذه العملية من قبل فريق الاختبار في مرحلة الاختبار وبعد ذلك سيقومون بتعيينها إلى فريق المطور لتصحيح الأخطاء ويمكن للمختبِر إجراء الاختبار بمساعدة الطرق اليدوية المعتادة وفي نفس الوقت باستخدام الطرق الآلية حيث يمكن رؤية العيوب في أي مرحلة من مراحل تطوير البرامج والتي يجب تحديدها في أقرب وقت ممكن للإدخال والانتظار حتى لا يُنصح باختبار البرامج على طول هذه الخطوط فإذا تم اختبار كل مرحلة على حدة وعندما يتم إنجاز المرحلة يمكن تحديد العيوب في وقت مبكر
وبالتالي تقليل إجمالي النفقات ويزيد التخطيط الجيد والاختبار في الوقت المحدد من فرصة المنتج أو الخدمة لتلبية متطلبات العميل وهناك نوعان من الاختبارات أحدهما إيجابي والآخر سلبي ويتمثل العمل الأساسي للاختبار الإيجابي في التأكد من أن المنتج المطور يعمل أو يؤدي كما هو متوقع ويضمن الاختبار السلبي موثوقية المنتج وعدم تعطله حتى إذا تم إدخال مدخلات غير متوقعة في المنتج. 



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



ما هو تصحيح الأخطاء (Debugging)؟ 

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



خطوات التصحيح:    

  • تعرف على العيوب.    
  • تصميم وتخطيط تقرير الخطأ.    
  • افحص العيوب.    
  • أدوات التصحيح مكتوبة بالأحرف الكبيرة.    
  • حل الأخطاء.    
  • بدء اختبار الانحدار. 



تقنيات التصحيح: 

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

  • التصحيح بمساعدة القوة الغاشمة.    
  • استراتيجية الاستقراء.    
  • استراتيجية الاستنتاج.    
  • استراتيجية التراجع.    
  • التصحيح عن طريق الاختبار. 



مميزات التصحيح:    

  • يدعم تصحيح الأخطاء المطور في تعظيم المعلومات المفيدة لهياكل البيانات ويسمح بالتفسير السهل.    
  • أثناء عملية التصحيح يمكن للمطور تجنب كود الاختبار المعقد الذي يستخدم مرة واحدة والذي يساعد المطور في توفير الطاقة والوقت ويكون كود الاختبار المعقد عمليًا فقط إذا كانت الأجزاء الصعبة من الكود قابلة لإعادة الاستخدام.    
  • يتم قضاء الكثير من وقت التصحيح في معرفة سبب الأخطاء فكلما تم اكتشاف خطأ مبكرًا أصبح العثور على السبب أسهل. 
  • إذا تم الكشف عن حالة وحدة نمطية غير صحيحة بمجرد رؤيتها فيمكن غالبًا اكتشاف الثغرة بجهد ضئيل جدًا وإذا لم يتم اكتشافه حتى تظهر الأعراض في واجهة العميل فقد يكون من الصعب تضييق قائمة الأسباب المعقولة.    
  • يحاول تصحيح الأخطاء مطابقة الإشارة مع سبب الخطأ وبالتالي يؤدي إلى تصحيح الخطأ.    
  • اعتمادًا على نوع خطأ الرمز هناك أنواع مختلفة من المكونات الإضافية لمجموعة الأدوات فمن الضروري قياس نوع الأداة المستخدمة في التصحيح وهناك نوعان من تصحيح الأخطاء لحل أي مشكلة شائعة للمكوِّن الإضافي لمجموعة الأدوات وتقديم المعلومات التقنية.    
  • في PHP يمكن تصحيح كود PHP لإرفاق عميل مصحح الأخطاء باستخدام أي من هذه الأدوات فغالبًا ما تُستخدم أدوات تصحيح الأخطاء مثل Xdebug و Zendbugger للعمل مع PHPstorm ويستخدم Kint كأداة تصحيح أخطاء PHP حيث إن تصحيح أخطاء JavaScript يستخدم أداة مصحح أخطاء المتصفح ووحدة تحكم JavaScript.



الفرق بين الاختبار والتصحيح:

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

  • يتم إجراء الاختبار بناءً على نوع الاختبار الذي نحتاجه لإجراء اختبار الوحدة واختبار التكامل واختبار قبول النظام والضغط ، واختبار الأداء وغيرها ويتم إجراء التصحيح مع مراعاة نوع الخطأالذي وصل إلى المطورين للتصحيح.
  • يمكن الاستعانة بمصادر خارجية لعملية الاختبار ويمكن أن يقوم بها شخص خارجي ويمكن للمطورين فقط إجراء عملية التصحيح
     نتيجة عملية الاختبار هي قائمة بالأخطاء.
  • يتم إجراء الاختبار في معظم الأوقات دائمًا في مساحة المستخدمين حيث تقوم بتشغيل الكود كما يقوم المستخدم النهائي بتشغيلها ومحاولة كسرها أما نتيجة عملية التصحيح هي برمجيات خالية من الأخطاء.
  • يمكن إنجاز معظم الاختبارات دون أي معرفة بالتصميم أما التصحيح لا يمكن إجراءه بدون معرفة دقيقة بالتصميم.
  • يمكن ويجب بالتأكيد التخطيط للاختبار وتصميمه وجدولته ويحتاج التصحيح إلى التجريب والتخمين وبعض الحرية أيضًا.
  • الاختبار هو عرض للعيوب أو الدقة الواضحة لعملية الاختبار أما التصحيح هو شرح المبرمج للخطأ في البرنامج.
  • يعتبر الاختبار مرحلة في SDLC (دورة حياة تطوير البرمجيات) أما التصحيح ليس جزءًا من دورة SDLC في الواقع هو النتيجة النهائية للاختبار.



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


المصدر هنا.

التعليقات (0)

قم بتسجيل الدخول لتتمكن من إضافة رد