ما هي المهام الأولى لتنفيذ اختبار الوحدة في تطبيقات Brownfield؟

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

سؤال

هل تقوم بإعادة بناء SQL الخاص بك أولاً؟الهندسة المعمارية الخاصة بك؟أو قاعدة التعليمات البرمجية الخاصة بك؟هل تغير اللغات؟هل ترمي كل شيء وتبدأ من الصفر؟[عدم إعادة البناء]

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

المحلول

أقوم بإضافة اختبار الوحدة إلى قاعدة بيانات السباغيتي القديمة الكبيرة.

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

ولكن بما أنني أختبر الأمر بشكل جيد إلى حد ما، أشعر أنني مسيطر على الأمور.

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

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

تحديث :سأل Penguinix :"ما هي اللغات التي تعمل بها؟هل هناك أداة اختبار محددة توصي بها؟"

حاليا أعمل في...إيه ...النكاف!ولكن نفس المبدأ يعمل في أي مكان.

الشيء الذي غير فهمي لـ UT كان MinUnit : http://www.jera.com/techinfo/jtns/jtn002.html

عندما رأيت MinUnit، كان ذلك بمثابة لحظة تنوير "زن" بالنسبة لي.لقد جردني من سوء الفهم الذي كان لدي حول كون اختبار الوحدة شيئًا معقدًا يتطلب أطر عمل OO متطورة وما إلى ذلك.لقد فهمت أن UT كان يتعلق فقط بكتابة مجموعة من الاختبارات."الحزام" يمكنك أن تكتبه بنفسك، في حوالي 3 دقائق، بأي لغة تريدها.فقط قم وافعل ذلك.

نصائح أخرى

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

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

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