الجيل التلقائي من حالات الاختبار وحدة ل. NET و Java [مغلقة]

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

سؤال

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

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

المحلول

ل.NET، ومايكروسوفت البورصة والتي سوف تذهب نأمل التيار الرئيسي لل NET 4.0، جنبا إلى جنب مع href="http://research.microsoft.com/en-us/projects/contracts/" . أنا أوصي مشاهدة فيديو قناة 9.

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

نصائح أخرى

لC # (أو صافي بشكل عام)، PEX قد يكون تلك الأداة. وهو يعمل على مستوى IL، ومحاولات لإجبار طريقها في كل فرع. كشفت بنجاح مجموعة واسعة من الحشرات (في BCL الخ).

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

Randoop على حد سواء ل. NET و Java. وهو يعمل عن طريق توليد تسلسل أكثر أو أقل عشوائية من استدعاءات الأسلوب، والعقود والشيكات، تعطل وما إلى ذلك هي التلقائي بالكامل.

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

ولقد وجدت أن هذه الطريقة "parametrized" وحدة الاختبارات الكتابة هي في الواقع أكثر من ذلك بكثير الطبيعية في لا يقل عن 60٪ من الحالات، ويجد غيرها الكثير البق.

لجافا، يمكنك التحقق من EvoSuite ، وهو مفتوح المصدر ونشط حاليا (العقد، وأنا واحد من المساهمين فيها). انظر أيضا للحصول على قائمة المزيد من الأدوات .

لجافا، حاول أداة JUnit-أدوات . لديها المساعد كسوف الخاص جنبا إلى جنب مع وثائق جيدة.

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