سؤال

أنا أكتب تطبيق ويب بسيط باستخدام Linq to Sql كطبقة بيانات خاصة بي لأنني أحب Linq2Sql كثيرًا.لقد قرأت قليلاً عن DDD وTDD مؤخرًا وأردت تجربتها.

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

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

المحلول

يعد اكتشاف حالات الاختبار فنًا أكثر من كونه علمًا.ومع ذلك، تتضمن الإرشادات البسيطة ما يلي:

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

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

نصائح أخرى

حسنا، تسير وفقا لتفسير موحد لTDD هو أن الاختبارات <م> محرك الأقراص تطوير الخاص بك. لذلك، في جوهرها عليك أن تبدأ مع الاختبار. وسوف تفشل، وسوف كتابة التعليمات البرمجية حتى يمر هذا الاختبار. حتى انها مدفوعة من نوع من الاحتياجات الخاصة بك، ولكن يمكنك أن تذهب نحو جمع تلك. عليك أن تقرر ما تحتاجه لديك التطبيق / ميزة القيام به، كتابة اختبار، ثم التعليمات البرمجية حتى يمر. بالطبع، هناك العديد من التقنيات الأخرى، ولكن هذا هو مجرد بيان مقتضب حول ما يعتقد عادة في العالم TDD.

يفكر.اقرأ الكود.اسأل نفسك:على سبيل المثالهل يمكن أن يكون هذا المؤشر فارغًا هنا أبدًا؟ماذا يحدث إذا تم استدعاء هذه الطريقة قبل التهيئة؟

لا تضع افتراضات مثل "سيكون هذا الملف موجودًا دائمًا".امتحان.

فكر في حالات الحافة، والحدود، والقيم السلبية، والفيضانات ...

غالبًا ما يتم تجميع الأخطاء حسب المجموعة.انظر حولك عندما تجد واحدة.ابحث أيضًا عن نفس النوع من الأخطاء في مواقع أخرى.

وتعيين عقلك إلى الهدف الفعلي للاختبار: العثور على البق

وتكون خلاقة في تخيل ما يمكن أن تجعل البرنامج تفشل.

والاختبارات الخاصة بك يجب أن يجد الخلل، وليس تأكيد أن البرنامج ما يرام.

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

أعتقد أن هذه تقنية مفيدة:

استخدام العقود والاستعلامات المنطقية لتحسين جودة إنشاء الاختبار التلقائي


مرجع:ليزا (لينغ) ليو ، بيرتراند ماير وبرند شويلر ، استخدام العقود والاستعلامات المنطقية لتحسين جودة توليد الاختبار التلقائي, ، في إجراءات مقبض:الاختبارات والإثبات, ، ETH زيوريخ، 5-6 فبراير 2007، محرران.Yuri Gurevich و Bertrand Meyer ، ملاحظات المحاضرة في علوم الكمبيوتر ، Springer- verlag ، 2007.

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