كيفية احياء الوثائق؟

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



تستخدم مشاريع الويب الخاصة بـ Alfa-Bank إطار عمل أتمتة اختبار Akita ، والذي يستخدم لنصوص BDD. حتى الآن ، اكتسب إطار العمل شعبية كبيرة بسبب عتبة الدخول المنخفضة وسهولة الاستخدام والقدرة على اختبار التصميم. لكننا قررنا المضي قدمًا - على أساس سيناريوهات الاختبار الموصوفة لإنشاء الوثائق ، مما يقلل بشكل كبير من الوقت الذي يقضيه المحللون في المشكلة الأبدية المتمثلة في تحديث الوثائق.

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

  • لقطات.
  • قيم المتغيرات (ملف التكوين ، حسابات المستخدمين ، إلخ) ؛
  • الحالات ومعلمات الاستعلام.

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

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

داخل هذا الملف يحتوي على الكائنات التالية:


اسم حالة الاختبار والكلمة الرئيسية:


صفائف العناصر - البرامج النصية والخطوات نفسها:


يحتوي حقل الإخراج على معلومات إضافية ، على سبيل المثال ، المتغيرات - العناوين ، الروابط ، حسابات المستخدمين ، إلخ:


تحتوي الزخارف على لقطات تأخذ السيلينيوم خلال الاختبارات:


وبالتالي ، نحتاج فقط إلى الاطلاع على ملفات cucumber.json ، وجمع أسماء مجموعات الاختبار ، واختبار البرامج النصية ، وسحب الخطوات ، وجمع معلومات إضافية ولقطات الشاشة.

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

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

لتحويل Asciidoc الناتج إلى تنسيقات أخرى ، نستخدم Ascii doctorj ، وهي النسخة الرسمية لأداة Java AsciiDoctor. نتيجة لذلك ، نحصل على وثائق جاهزة بتنسيق html ، والتي يمكن تنزيلها بالتقاء ، أو إرسالها إلى زميل أو وضعها في المستودع.



كيف تتصل


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

ما الذي نريد تحسينه؟


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


ما الفرق المناسبة لتنفيذنا؟


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

النتيجة:


أظهر اختبار تجريبي على العديد من الفرق أنه بمساعدة المكون الإضافي الذي نجحنا في الحفاظ على تحديث المستندات ، لم يعد المحللون بحاجة إلى قضاء وقتهم في الاحتفاظ بها. بالإضافة إلى ذلك ، فإن تنفيذ هذه الميزة جعلنا نفكر في الاستمرار في تنفيذ BDD كامل ضمن فرق. اليوم ، نجري تجربة - يقوم المحللون بصياغة مسار إيجابي للعميل ، ويشيرون إلى قيود العمل باستخدام خطوات BDD الخاصة بـ Akita ، ويقوم المختبرون ، بدورهم ، بكتابة خطوات مخصصة وفحوصات إضافية لهذه السيناريوهات.
بالمناسبة ، حول holivar ، سواء كانت BDD مطلوبة أم لا ، يوم الاثنين سنعقد اجتماعًا خاصًا .

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


All Articles