ما هي أفضل طريقة لتقديم اختبار الوحدة إلى الإدارة؟[مغلق]

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

  •  25-09-2019
  •  | 
  •  

سؤال

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

هل لديكم أي اقتراحات حول كيفية التعامل بشكل أفضل مع الإدارة بشأن هذا الأمر؟ما هي بعض الأشياء التي جربتها في الماضي ونجحت؟ما هي الأشياء التي لم تنجح؟

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

المحلول

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

لاختبار الوحدة ، يمكنك محاولة مقارنته باختبار جودة مكونات المنزل المختلفة بشكل فردي قبل تجميعها (الطوب ، الأسمنت ، الأبواب ، النوافذ ، السباكة)

بالنسبة لأولئك الذين لديهم أي فهم تقني على الإطلاق ، أذكر أن 30 ٪ إلى 50 ٪ تتعامل مع شروط الخطأ والاسترداد (في الأنظمة المدمجة المهمة المهمة) وأنك لا يمكنك اختبار ذلك دون اختبار الوحدة. على سبيل المثال ، إذا كنت فقط اختبار تكامل blackbox ، فكيف يمكنك - بطريقة محكومة وقابلة للتكرار - قم باختبار ما يحدث عندما لا يمكن تخصيص الذاكرة A في نقطة معينة ، أو تنتهي مهلة عميقة في الوحدة C عند انتظار رسالة الرد من مكان ما ، أو قراءة قاعدة بيانات والتي ستنجح عادة. اشرح أنه من خلال إزالة الوحدات النمطية لتواصل ، يمكنك محاكاة سلوكها الخاطئ في الإرادة.

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

ليس فقط اختبار الوحدة - يجب عليك إقناع الإدارة - وزملائك المطورين - أن "النفقات العامة غير الضرورية" للوثائق والمراجعات والاختبار ... عمليات/W بشكل عام (وتشمل تعلم أدوات جديدة) ... في الواقع يوفر الوقت بدلاً من إضافة الوقت إلى المشروع. بمعنى آخر ، يستغرق الأمر وقتًا أطول ويكلف أكثر لخطأه. قياس مرتين ، قطع مرة واحدة ، إلخ

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

إذا لم ينجح أي من هذا ، فابحث عن وظيفة جديدة (إذا كنت في سنغافورة ، أو تريد أن تكون ، تحدث معي ؛-)

نصائح أخرى

أظهر لهم مثالًا على المكان الذي اشتعلت فيه الاختبار بالفعل وإنقاذ اليوم.

لا تضلل.

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

المشكلة هي أنه لا يمكنك وضع قيمة بالدولار على المسار الذي لم يسلكه ("لقد تجنبنا 1000 عيب من شأنه أن يكلف 1 مليون دولار لإصلاحه!").

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

ستحصل وسيطتك على دفعة عندما تذهب لإضافة ميزات جديدة وهي أسهل لأنك حافظت على الكود نظيفًا.

أعتقد أن الإحصائيات ستجعل أفضل حالة فيما يتعلق بالمديرين غير الفنيين. رمز كامل ، 2nd الطبعة. لديه ملخص لبعض الدراسات التي تبين أن اختبار الوحدة يؤدي إلى معدل الكشف عن عيوب بنسبة 30 ٪ (الجدول 20-2 ، ص 470). أعتقد أنه يجب أن يكون من السهل أخذها من هناك وجعل الحالة تترجم أقل من الأخطاء إلى المزيد من الأموال المحفوظة.

في بعض الحالات ، وجدت أن انتظار الفرصة المناسبة أمر أساسي.

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

لذلك أعتقد أن هذا يعتمد كثيرًا على الظروف.

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

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

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

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

وبعبارة أخرى ، فإنه يقلل من التكاليف ويزيد من موثوقية البرنامج.

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

  1. انخفاض الدوران
  2. تخفيض تكلفة $
  3. انخفاض الانحدارات
  4. إلخ

خاصة التكاليف ، تحب الشركات توفير المال :)

من المفترض أن يتم اختبار الوحدة، إذا تم إجراؤه بشكل جيد

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

هل هناك أي إحصائيات ذات صلة تم جمعها داخل شركتك والتي يمكن أن تدعم هذه الادعاءات بشكل ملموس؟أي.عدد الأخطاء التي اكتشفها ضمان الجودة / المستخدمون في منتجات مختلفة، أو متوسط ​​تكاليف إصلاح الأخطاء / تنفيذ الميزات، ...

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

حظا سعيدا واسمحوا لنا أن نعرف كيف تحصل. قون

قدمها كما تطور السلوك أو اختبار التنمية مدفوعة, ، ليس فقط كاختبار الوحدة.

كل من BDD و TDD لهما جوانب التي يمكن فهمها بسهولة من قبل غير تقنيين. في الواقع ، واحدة من مزاياهم الرئيسية هي أنها تركز على غير التقنية.

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

ارسم تشبيهًا على شيء ربما يستخدمه المديرون بشكل منتظم - مثل المدقق الإملائي في عميل البريد أو محرر المستندات الخاص بهم ....

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