بالإضافة إلى الاستفادة من استخدام المصانع في جناح اختبار القضبان؟

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

سؤال

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

نحن نعتمد تماما على التركيبات ونحن لا نمركش واقتباس بقدر ما يجب أن نكون.

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

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

هل يمكن لأي شخص أن يعجبني لماذا أو لماذا لا يجب أن أستخدم المصانع؟

شكرا!

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

المحلول

يمكن أن يكون هناك بعض المشكلات مع إعداد جميع التبعيات بين الكيانات من أجل جناح اختبار جيد. على أي حال، لا يزال أسهل بكثير من الحفاظ على الكثير من المباريات.

تركيبات:

  • من الصعب الحفاظ على العلاقات (خاصة كثير إلى كثير)؛
  • وقت تشغيل جناح الاختبار هو عادة أبطأ بسبب الزيارات DB؛
  • الاختبارات حساسة للغاية للتغيرات في مخطط.

المصانع:

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

لذلك، تبدو المصانع طريقة جيدة للذهاب. العيوب الوحيدة المحتملة التي أراها هي:

  • الوقت الذي قضيته في الهجرة من التجهيزات؛
  • إبقاء مجموعة سيناريوهات عاقلة يمكن أن تتطلب بعض الجهد.

نصائح أخرى

إجابة Oleg رائعة، لكن اسمحوا لي أن أقدم منظور شخص يستخدم كلاهما.

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

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

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

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

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

إذن ما هي أفضل ممارساتي للتركيبات؟

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

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

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