سؤال

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

لذلك، أنا مهتم بآراء الآخرين على هذا الموقع.من الواضح أنني سأضيف خطأً إلى تتبع العيوب لدينا للتأكد من إصلاح سلوك الخطأ هذا.ولكن هل هناك أي أسباب مقنعة (في كلتا الحالتين) إما لتغيير اختبار الانحدار للإشارة إلى الفشل باستمرار أو ترك اختبار الانحدار مكسورًا وعدم الفشل حتى نتمكن من إصلاح السلوك المعيب؟أعتقد أن هذا هو 6 من واحد ونصف من النوع الآخر من الأسئلة ولكني أسأل هنا لأنني اعتقدت أن الآخرين قد يرونه بشكل مختلف.


@ بول تومبلين،

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

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

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

هل كانت مفيدة؟

المحلول

أود أن أقول "الجحيم نعم!".الحقيقة البسيطة هي، هل هو فاشل؟نعم!ثم يجب أن يتم تسجيله.أنت تخاطر إلى حد كبير باختبارك من خلال السماح باجتياز اختبار فاشل.

الشيء الوحيد الذي قد يقلقني شخصيًا هو أنني إذا فعلت ذلك وذهبت تحت الحافلة، فقد لا تتم إزالة "التصحيح"، مما يعني أنه حتى بعد "إصلاح الأخطاء" قد يظل الخطأ قائمًا.

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

نصائح أخرى

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

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

يجب أن يظل فاشلاً إذا لم يفعل ما هو متوقع.

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

-- كيفن فيرتشايلد

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

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

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

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

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

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

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

إذا كان مكسورًا، فيجب عليك إصلاحه عاجلاً وليس آجلاً.إذا كان الأمر غير مكتمل، تعامل معه عندما يكون لديك الوقت.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top