إعادة بيع ديون لقابلية الاختبار على النظام القائم ،

StackOverflow https://stackoverflow.com/questions/20262

سؤال

لقد انضم إلى الفريق الذي يعمل على المنتج.هذا المنتج قد حول لفترة ~5 سنوات أو نحو ذلك ، يستخدم ASP.NET WebForms.لمسات بارزة من الفن المعماري قد تلاشى مع مرور الوقت ، أصبحت الأمور نسبيا غير منظم في جميع أنحاء الحل.إنه لا يعني الرهيبة, ولكن بالتأكيد يمكن استخدام بعض العمل ؛ تعرفون ما أعني.

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

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

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

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

المحلول

الخاص بك PM مخاوف صالحة - تأكد من الحصول على النظام الخاص بك تحت الاختبار قبل اتخاذ أي refactorings.

وأود أن نوصي بشدة الحصول على نسخة من مايكل ريشة كتاب العمل بفعالية مع التعليمات البرمجية القديمة (من "التعليمات البرمجية القديمة" الريش يعني أي نظام لا مشمولة في وحدة الاختبارات).هذا هو الساندة الكامل من الأفكار الجيدة حول كيفية كسر تلك الروابط و تبعيات تتكلمين بطريقة آمنة لا خطر إدخال الانحدار البق.

حظا سعيدا مع إعادة بيع ديون البرنامج ؛ في تجربتي انها ممتعة و الشافية العملية التي يمكنك من خلالها تعلم الكثير.

نصائح أخرى

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

كما أود أن رمي في اقتراح لزيارة إعادة بيع ديون الموقع من قبل مارتن فاولر.قال حرفيا كتب الكتاب على هذه الأشياء.

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

اختبار وحدة ASP.Net يمكن أن تكون صعبة ، ولكن هناك الكثير من الأطر التي تجعل من السهل القيام به. ASP.Net MVC, ، WCSF إلى اسم قليلة.

مجرد القذف خارجا التوصية الثانية على العمل بفعالية مع التعليمات البرمجية القديمة, كتاب ممتاز فعلا فتحت عيني على حقيقة أن ما يقرب من أي القديم / كربي / غير قابل للفحص رمز يمكن أن يكون اصطحبت!

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

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