هل TDD فعال؟

خلال مناقشة مثيرة للاهتمام ، "شخص" محترم للغاية "تفوق" على الحجة "غير قابل للتدمير":
هناك العديد من الدراسات التي تثبت فعالية TDD.

هل حقا. إذا ذهبت إلى الباحث العلمي من Google ، فاستعن بالكلمات الرئيسية "TDD" و "الكفاءة" - سيكون هناك العديد من المقالات العلمية ، ولكن هل الأمر بهذه البساطة؟ على الرغم من أنني نفسي من أكبر المعجبين بـ TDD ، إلا أنني أعتبر نفسي متشككًا ، وقررت التحقق مما إذا كان قد ثبت علمياً أن TDD رائع للغاية.

أجد افتقارك إلى التشكك مزعجًا

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

بعض المطورين على ثقة من أن TDD يحسن الكفاءة والجودة بنسبة 146٪ ​​على الأقل. يعرف بعض المطورين على وجه اليقين أن TDD هراء كامل ، وكتابة الاختبارات قبل كتابة التعليمات البرمجية مثل التزلج على الأسفلت. الحل الوسط بين هذه المجموعات التنموية لا يستحق الانتظار.

ولكن نعود إلى العلم. بمصادفة محظوظة ، حدث أن كنت أدرس في برنامج الماجستير في جامعة Wrexham Glyndŵr في علوم الكمبيوتر مع تحليلات البيانات الكبيرة (بالمناسبة - أوصي به للجميع ، وسأكتب عنه بشكل منفصل) والآن أنا بصدد دراسة وحدة البحث النقدي ، حيث يعلمونك قراءة المقالات العلمية وتحليل صلاحيتها.
ما هو دليلنا؟

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

على سبيل المثال ، في تقرير "تقييم تجريبي لفعالية وكفاءة التطوير القائم على الاختبار" ، نشر في عام 2007 ، خلص إلى أن TDD يحسن إنتاجية المطورين دون التأثير على الجودة [1].

في تقرير آخر ، فحص نتائج العديد من الدراسات الأخرى وأجرى دراسته الخاصة ، "تقييم فعالية التطوير القائم على الاختبار: المزايا والمخاطر" ، خلص 2017 إلى أن TDD يمكن أن يحسن جودة المنتج ، ولكنه يؤدي إلى انخفاض الإنتاجية. بالإضافة إلى ذلك ، لوحظ أن معظم المطورين يجدون TDD غير طبيعي [2].

وفقًا لدراسة أخرى ، "تجربة منسوخة حول فعالية تطوير الاختبار الأول" ، 2013 ، لم يتمكن الباحثون من العثور على تأثير مقنع وملموس لنهج الاختبار الأول أو الاختبار الأخير على إنتاجية المطورين أو جودة المنتج [3].

لتطويق مسمار في نعش "الدليل" على فعالية وفائدة TDD ، يمكنك قراءة تقرير النظرة العامة "نظرة عامة على مشاريع وتجارب البحث والتطوير المدفوعة باختبار" ، 2012 [4] ، حيث حاولوا ، بناءً على عدد كبير من الدراسات المتاحة ، التوصل إلى استنتاج حول الدليل الكفاءة والتأثير الإيجابي لـ TDD. استنتج المؤلفون أنه لا يوجد دليل مقنع على الآثار المفيدة لـ TDD. الاختلافات في نتائج الدراسات السابقة ، أثبت المؤلفون تحيز التأكيد - كانت الدراسات التي أظهرت فعالية TDD في الأصل تستند إلى الفرضية القائلة بأن TDD فعالة.
فلماذا يعتبر الناس (بمن فيهم أنا) TDD ممارسة عظيمة؟
بعد قراءة البحث ، لدي إجابة منطقية واحدة فقط - تعتمد فعالية TDD وقابلية تطبيقه بشكل أساسي على المطور المحدد. يبدو أن الدراسات حول فعالية TDD لم تأخذ في الاعتبار بما فيه الكفاية أن المطورين ليسوا روبوتات ، وأن TDD ليس برنامجًا. بالنسبة لبعض المطورين ، ستحقق TDD نتائج جيدة ، بالنسبة للبعض - لن يكون هناك فرق كبير بين TDD واختبارات وحدة الكتابة البسيطة ، بالنسبة للبعض - سيؤدي TDD إلى انخفاض في الجودة والإنتاجية والتحفيز.

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

إذا كنت ترغب فجأة في مشاركة هذا المنشور مع زملائك المتحدثين باللغة الإنجليزية ، فهناك نسخة إنجليزية أكثر رسمية قليلاً: medium.com/@alexspush/is-tdd-effective-2474c0471ac4

قائمة المصادر

[1] A. Gupta، P. Jalote "تقييم تجريبي فعالية وكفاءة التطوير القائم على الاختبار "المقدم في الندوة الدولية الأولى لهندسة البرمجيات التجريبية والقياس ، مدريد ، إسبانيا ، 2007
[2] Z. Khanam، M. Ahsan،" تقييم فعالية التطوير القائم على الاختبار: المزايا والمخاطر " المجلة الدولية للبحوث الهندسية التطبيقية المجلد. 12 ، رقم 18 ، ص. 7705 ، 2017. متاح: www.ripublication.com/ijaer17/ijaerv12n18_81.pdf . [تم الوصول إليه في 13 مايو 2020].
[3] D. Fucci، B. Turhan، "تجربة منسوخة حول فعالية تطوير الاختبار الأول" تم تقديمها في الندوة الدولية ACM / IEEE حول هندسة البرمجيات التجريبية وقياسها ، بالتيمور ، دكتوراه في الطب ، الولايات المتحدة الأمريكية ، 2013
[4] A. Bulajic ، S. Sambasivam و R. Stojic "نظرة عامة على مشاريع وتجارب أبحاث التنمية المدفوعة باختبار" المقدمة في وقائع مؤتمر إعلام العلوم وتعليم تكنولوجيا المعلومات (InSITE) ، 2012. متاح: pdfs.semanticscholar.org/3278/971bb53a25822171df127d47a57243dd3bbd.pdf . [تم الوصول إليه في 13 مايو 2020].

All Articles