كيفية تصميم وبناء مكدس أتمتة اختبار Hyper-Fast

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

عداء الروبوتية بدء سباق

بصفتي مستشارًا ومدربًا ومؤلفًا ومطورًا متخصصًا في جودة البرمجيات والاختبار الآلي ، غالبًا ما أطلب آرائي ونصائح حول كيفية التعامل مع تصميم مكدس أتمتة الاختبار.

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

ما الذي يجعل مكدس أتمتة اختبار جيد؟

يتغير رأيي حول المنتجات الفردية والبائعين مع مرور الوقت ، تمامًا مثل المنتجات نفسها. لكن ما لن يتغير أبدًا هو القواعد الأربعة الخاصة بي حول أتمتة الاختبار ، وهي:

1. الغرض من أتمتة الاختبار هو تقديم ملاحظات سريعة للغاية للمطورين.

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

لماذا هذا بغاية الأهمية؟

نظرًا لقاعدتي الذهبية الثانية التي تتعلق بالتعليقات نفسها ، والتي تنص على:

2. كلما طالت التغذية المرتدة في نظام ما ، زادت تكلفة معالجته.

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

بالاضافة،

3. كلما زادت ردود الفعل التي لم يتم حلها والتي تتراكم في المنتج ، قلت جودة المنتج نفسه.

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

جميع المبالغ المذكورة أعلاه لقاعدتي الرابعة ، وهي:

4. كلما تمكنت من اكتشاف التعليقات والتعامل معها بشكل أسرع ، انخفضت تكلفة التطوير ، وارتفعت جودة منتجك.

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

الذي ينبغي أن تصميم المكدس أتمتة الاختبار الخاص بك؟

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

يجب على المطورين أنفسهم امتلاك اختبار المكدس.

لفهم السبب ، فكر مرة أخرى في القاعدة الذهبية المذكورة سابقًا - "الأولوية الأولى لأتمتة الاختبار هي تقديم تعليقات سريعة للغاية للمطورين."

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

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

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

حماية الجودة في كل خطوة

فكيف يمكنك بناء حلقة ردود الفعل السريعة؟

يمكنك زيادة ردود الفعل في كل مرحلة من مراحل البناء.

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

  1. نظيف
    تتمثل الخطوة الأولى في إزالة أي ملفات تم إنشاؤها من عمليات الإنشاء السابقة ، مثل الملفات المترجمة ، وبدء دورة حياة الإنشاء من الأساس الأساسي الجديد.
    هذا مثل مسح طاولة عملك لجميع القطع والقطع قبل البدء في بناء شيء جديد.
  2. ترجمة التعليمات البرمجية
    تأخذ هذه الخطوة ملفات التعليمات البرمجية المصدر وتحولها إلى تعليمات برمجية قابلة للتنفيذ. منتج هذه الخطوة هو إنشاء رمز لمكون معين.
    هذه الخطوة تعادل إنتاج المكونات اللازمة لبناء التيار المتردد ، مثل المروحة اللازمة لدفع الهواء والمحرك الذي يدور المروحة.
  3. تشغيل اختبارات الوحدة
    اختبارات الوحدة ليست سوى اسم آخر للمواصفات القابلة للتنفيذ للمكونات التي تخبرنا ما إذا كانت المكونات تعمل كما هو محدد. إذا لم تكن هناك مكونات ، فلا يوجد سبب لمواصلة بناء النظام. تذكر أن القيمة يتم إنشاؤها باستخدام مكونات ، لذلك سيؤدي المكون الخاطئ إلى وجود قيمة خاطئة.
    في مثال التيار المتردد ، سيضمن اختبار وحدة واحدة التأكد من قدرة شفرات المروحة على دفع الهواء عند تشغيله. إذا لم تعمل شفرات المروحة ، فمن الأفضل أولاً إصلاح شفرات المروحة ثم إعادة تشغيل عملية البناء.
  4. تشغيل اختبارات التكامل
    بمجرد أن نعرف أن المكونات تعمل بشكل فردي ، يمكننا تجميعها والتحقق مما إذا كانت تعمل على خلق قيمة في انسجام تام. هذا هو الغرض من اختبارات التكامل. تجمع هذه الاختبارات بين وحدات كافية فقط لإنشاء قيمة ، وكما هو الحال في الخطوة السابقة ، إذا وجدنا أن المكونات لا تعمل معًا كما هو محدد ، فلا يوجد سبب لمواصلة بناء النظام لأن القيمة غير صحيحة.
    عد إلى مثال AC ، إذا قمنا بتجميع المروحة والمحرك واكتشفنا أن الهواء لا يتم دفعه بسبب عدم تركيب المغزل ، فلا فائدة من وضع التجميع مع بقية AC.
  5. نشر التطبيق
    إذا وصلنا إلى هذه النقطة ولدينا تغطية اختبار كبيرة ، فهذا يعني أن جميع المكونات تعمل بشكل فردي وفي انسجام تام لخلق قيمة. هذا يعطينا ثقة كبيرة لتجميع النظام الكامل. لكننا ما زلنا غير واثقين تمامًا من أنها ستنجح ، لأن شيئًا آخر قد يحدث خطأ في عملية التجميع من طرف إلى طرف. لهذا السبب نحتاج إلى إجراء مزيد من الاختبارات بعد نشر التطبيق.
    مع استعارة التيار المتردد ، تدور هذه المرحلة حول تجميع كل المكونات والتجميعات معًا وتوصيلها بالطاقة الرئيسية.
  6. تشغيل اختبارات نهاية إلى نهاية
    مع نشر النظام بالكامل ، يمكننا الآن التأكد من أنه يوفر القيمة المقصودة للمستهلك. تضمن هذه الاختبارات تحقيق مواصفات القيمة.
    اضغط على الزر "تشغيل" ، وأدِّل مفتاح التحكم في درجة الحرارة إلى الإعدادات الباردة ، وتأكد من دفع الهواء البارد.

في هذه المرحلة ، لدينا ثقة كبيرة في أن الرمز الجديد يوفر القيمة المقصودة ، ويمكننا شحن AC إلى العميل.

ومع ذلك…

إذا تم تنفيذ هذه الخطوات بالتسلسل في نهاية كل ميزة (كما هو الحال عادة) ، فلن يحصل المطور على تعليقات حقيقية حتى تكتمل هذه العملية بالكامل. وهذا يستغرق وقتًا طويلاً ، وبالتالي فهو مكلف للغاية.

ولكن مع مكدس اختبار سريع للغاية ، ستحصل على ثقة كبيرة أثناء قيامك بكتابة التعليمات البرمجية في الواقع!

نعم فعلا! من الممكن تمامًا تقديم تعليقات مطورة للمطورين في الوقت الفعلي أثناء التطوير. تابع القراءة لمعرفة كيف.

تطابق اختبار المكدس الخاص بك إلى تكدس تك

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

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

إذا كنت لا تستخدم Node.js

يجب أن تكون هذه المقالة مفيدة لأن المفاهيم هي نفسها. ابحث فقط في Google عن الأدوات المكافئة لمجموعتك التقنية ، واسمحوا لي أن أعرف ما الذي تجده في التعليقات أدناه أو على Twitter.

أفضل المنتجات لمجموعة اختبار فرط سريع

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

في الوقت الحقيقي وحدة الاختبارات محليا

أوصي Wallaby.js
يخبرك Wallaby.js إذا نجح أي اختبار أو فشل في الوقت الفعلي ، في كل ضغطة مفتاح!

مع كل مفتاح أضغط عليه ، يتيح لي الوالبي معرفة ما إذا كان هناك شيء ما قد تم كسره أم لا. يستخدم تقنية ذكية للغاية لمعرفة بالضبط الاختبارات التي سيتم تشغيلها ، ويتم تشغيلها جميعًا بشكل متوازٍ. النتيجة سوف تجعلك تقول "واو!"

يرسم الفيديو مليون كلمة (من موقع Wallaby.js):

مزيد من المعلومات: https://wallabyjs.com

في الوقت الحقيقي اختبارات التكامل محليا

أوصي Chimp.js
يقوم Chimp بالتحقق من منطق مجال عملك في كل مرة تقوم فيها بحفظ ملف.

يمكنني استخدام وضع اختبار مجال Chimp. إنها أداة كتبناها في شركتي تشاهد نظام الملفات وتعيد تشغيل اختبارات الخدمة مع كل تغيير. والنتيجة هي ردود فعل سريعة على حالة منطق المجال لتطبيقات Node.js.

مزيد من المعلومات: http://chimpjs.com

في الوقت الحقيقي نهاية إلى نهاية الاختبارات محليا

أنا أوصي أيضا Chimp.js
يقوم Chimp بالتحقق من صحة الميزة الشاملة التي تعمل عليها حاليًا في كل مرة تقوم فيها بحفظ ملف.

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

يعمل Chimp أيضًا على أي تطبيق ويب - بغض النظر عن الواجهة الخلفية.

مزيد من المعلومات: http://chimpjs.com

للتنسيق

أوصي Gulp.js
غالب هو قائد الأوركسترا.

يمكن أن يمثل تحدي جميع القطع للعمل بسلاسة تحديا وتحتاج إلى أداة يمكن أن تعمل بأسرع ما يمكن. هذا هو المكان الذي يأتي فيه Gulp.js.

Gulp.js هو نظام للبث المباشر يعد رائعًا للتنسيق. يمكنني استخدامه لتشغيل المهام المعقدة محليًا - على سبيل المثال: بدء تشغيل خادم التطبيق ، وانتظر رسالة ، ثم بدء تشغيل Chimp. على خادم التكامل المستمر ، فإنه يقوم بإجراء اختبارات وحدة باستخدام Mocha & Karma ، ويجمع تغطية الرمز ويقوم بإجراء اختبارات الدخان.

يمكنك أيضًا استخدام Gulp مع تقنيات غير Node.js أيضًا. لقد استعملت Gulp مؤخرًا للتحكم في مهام Maven لمشروع Java نظرًا لقدرة Gulp المتفوقة على مراقبة الملفات.

مزيد من المعلومات: http://gulpjs.com

اريد معرفة المزيد؟

هذه المعلومات مقتطفة من قاعدة المعارف الخاصة بي التي سيتم إصدارها قريبًا ودليل "Quality Faster". وفيها ، أصف بالتفصيل كيفية تنفيذ هذه التقنيات وغيرها كجزء من نهج متكامل متكامل لفريق كامل. إلى أعلى جودة البرمجيات.

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

تعال وتحقق منه الآن.

في منصبي المقبل

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

موافق أو غير موافق؟

إذا كنت لا توافق على توصياتي للأدوات ، أو تعرف أدوات أو تقنيات مختلفة تعتقد أنها أفضل في ردود الفعل السريعة للغاية ، فأنا دائماً أريد أن أسمع عنها! لذا أرجو أن تخبرني عن طريق مربع التعليقات هنا ، أو عن طريق الاتصال على twitter علىsam_hatoum

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

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

سام.

مقالات أخرى كتبت: