سؤال

عند تطوير برنامج، يتم تطوير أنواع مختلفة من الاختبارات - وحدة، تكامل، وظيفية، دليل. في مشروعي الحالي (WinForms مع SQL Server)، والذي يحتوي على رمز Legacy (لا اختبارات)، لدينا الكثير من الأخطاء. نحن نحاول إزالتها باستخدام مجموعة من الاختبارات اليدوية + (في الغالب التكامل)

ولكن لا يزال بعض الأخطاء يمكن الهروب.

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

ولكن، لسبب ما (علة في الكود) لا يفعل النظام كذلك، كيف يجب علينا معالجة مثل هذه السيناريوهات؟ هل يجب أن يكون لدينا برنامج نصي يعمل على قاعدة البيانات التي تبحث عن سيناريوهات مثل الموصوفة؟ يمكن أن يكون امتداد آخر من السيناريو، يجب أن يرسل العميل هدية بمجرد امتيازه، لكن النظام مفقود للقيام بذلك.

أفكار؟

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

المحلول

"هل يجب أن يكون لدينا برنامج نصي يعمل على قاعدة البيانات التي تبحث عن سيناريوهات مثل الموصوفة؟"

هل تقصد "ضع برنامج نصي في قاعدة البيانات لتصحيح المشكلة"، ثم رقم.

رقم. أبدا. تحت أي ظرف من الظروف. العمل حول خطأ عن طريق إضافة منطق حالة خاصة خاصة هو حقا فكرة سيئة للغاية.

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

  2. عند محاولة تحسين النظام، لديك هذا المنطق المميز الخاص بحالة خاصة لا معنى له.

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

    ب. خلاف ذلك، سوف يتناقض مع رمز آخر. ماذا الان؟ وهو الحق؟

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

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

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

نصائح أخرى

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

بمجرد أن تكون لديك مجموعة من الاختبارات بأكملها جاهزة، إذا مررت جميع الاختبارات بعد (كما كان من قبل) إعادة ضبط التعليمات البرمجية / تغيير الرمز، فقد يتأكد المرء من كسر أي ميزة بسبب إعادة الإنفاق.

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