الخلاصة

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

قد يسهل عدّ مخرجات الترحيل أكثر مما يسهل قبول نتيجته. ملفات قابلة للبناء واختبارات إضافية تعطي المشروع أرقاماً واضحة، لكن العميل يشتري تطبيقاً يؤدي العمل المطلوب. أضافت AWS في 10 سبتمبر توليد الاختبارات الوحدوية إلى Transform for .NET. تقيم الأداة قابلية الاختبار، وتخطط للتغطية، وتكتب اختبارات لفئات مناسبة مثل منطق الأعمال ووحدات التحكم. تتاح الميزة اختيارياً في AWS Toolkit for Visual Studio، ويبقى السؤال التجاري عما تثبته هذه المخرجات الجديدة.

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

أما الاختبارات الموجودة مسبقاً فلها مسار آخر. ينقل Transform مشاريع MSTest وNUnit وxUnit المدعومة، ثم يشغل الاختبارات المنقولة ويلخص نتائجها. يتيح ذلك فحص توقعات كُتبت قبل التغيير. لكنه لا يثبت أن المجموعة القديمة كانت شاملة أو أنها مثلت كل حالة تجارية. زيادة عدد الاختبارات الجديدة لا تمنحها صفة المرجع السابق للتعديل.

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

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

وتطلب إرشادات AWS السابقة للتحويل خطة تحقق تشمل السلوك والمظهر وضوابط الأمن ومنطق الأعمال وتخزين البيانات. وتفصل كذلك بين تحديث .NET وإعادة هيكلة معمارية التطبيق. لا ينبغي لشراء توليد الاختبارات أن يوسع الوعد المتفق عليه ضمناً أو يلغي عملاً بقي ضرورياً للتحقق.

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