يوم الأتمتة ، أو كيف نبني طبقة الاختبارات التلقائية

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

  • لم يكن لديه وقت / لم يكن لديه وقت كافي ، ثم نسيته ؛
  • لا خبرة كافية ؛
  • تبين أن مهمة التشغيل الآلي كبيرة جدًا ، وتتطلب عمليات تكامل الجهات الخارجية.

مستوحاة من فكرة الزملاء من Avito ، في منتصف شهر أيار (مايو) ، عقدت أنا و Yaromudr يوم الأتمتة الأول ، والغرض من هذا الحدث هو أتمتة الاختبار حيث ، للأسباب المذكورة أعلاه ، لم نقم بذلك.


على ذلك ، جمعنا جميع المهندسين QA المهتمين ، وأعدنا أيضا مقدما:

  • تراكم المهام ؛
  • قواعد السلوك
  • وافق على كومة التكنولوجيا ؛
  • أدوات معدة
  • أمر بالوصول اللازم.

للتشغيل الآلي ، تم اختيار طبقة اختبار تكامل API. كل مهمة في تراكم الواردة:

  • رابط لنقطة النهاية ، وكذلك معلمات المدخلات والمخرجات من طلب الراحة في شكل json ؛
  • جوهر الاختبار ، وكيف ولماذا نحن التحقق من ذلك.

في بداية المشروع ، اخترنا المجموعة التالية للتشغيل الآلي ، لقد قمنا بإعداد قالب المشروع ، والذي سنملؤه باختبارات تلقائية:

  • Java8
  • JUnit5
  • ربيع
  • Unirest

يمكن العثور على نموذج مشروع قالب هنا .

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

القواعد


كانت قواعد المشاركين يوم الأتمتة بسيطة قدر الإمكان. قبل البدء في التطوير ، أظهرنا بنية المشروع المصممة مسبقًا وأجرى إيجازًا موجزًا. عند التطوير ، كان على المشاركين الالتزام بهيكل مشروع معين.
من 10 إلى 19 ، يصرف المشاركون أحيانًا على الغداء والعشاء ، يكتب المشاركون اختبارات في Java + JUnit5. تم تنظيم تنفيذ منطق الاختبارات في Java كمكالمات API باستخدام مكتبة Unirest.

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

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

النتائج


ما حصلنا عليه لمدة 8 ساعات عمل من التطوير المكثف:

  • + 12 طلب سحب ؛
  • 12 مهمة مغلقة من الأعمال المتراكمة ؛
  • + 14 autotests التكامل.
  • > 99٪ من الاختبارات التلقائية التي تم اجتيازها بنجاح لكل عملية إطلاق ؛
  • 12 من QA- المهندسين الذين يتوجهون بشكل جيد في المشروع.

بعد شهر واحد


عندما اتخذنا مقاييس الاختبار بعد شهر تقريبًا ، حصلنا على مؤشرات مهمة للغاية:

  • + 30 طلب سحب ؛
  • 30 مهمة مغلقة من الأعمال المتراكمة ؛
  • + 48 autotests التكامل.
  • استبدال Unirest مع التحديثية.
  • > 97٪ من الاختبارات التلقائية التي تم اجتيازها بنجاح لكل عملية إطلاق.

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

التعليقات


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

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

لقد جمعنا أيضًا رغبات من المشاركين ، ولن ندرج كل شيء ، ولكن الأكثر شعبية هو عقد يوم الأتمتة على أساس منتظم.

استنتاج


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

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



نخطط لتخصيص يوم الأتمتة الثالث لكتابة اختبارات مكونات نظام التشغيل iOS باستخدام أداة EarlGrey.

Source: https://habr.com/ru/post/ar458546/


All Articles