QA The Other Wayضمان الجودة لعصر الاختبارات المكتوبة بالذكاء الاصطناعي. QA The Other Way.
عملي QA

التحقق من التنزيل، وليس فقط الزر.

حدث التنزيل هو بداية الأدلة المصطنعة. التحقق من المحتوى المحفوظ مقابل عقد صغير وصريح.

7 دقائق للقراءةQA The Other Way
حزمة مؤلفة ومخطط فحص يميز التنزيل عن محتواه.
التوضيح التحريري المؤلف.
فيديو توضيحي لهذه المقالة. النص الإنجليزي الذي يظهر على الشاشة؛ حدد ترجمات لهذه اللغة.

طبعة مترجمة. تظل المعرفات الفنية في شكلها الأصلي.

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

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

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

سجل الانتظار قبل الإجراء

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

import { readFile } from 'node:fs/promises';

const pendingDownload = page.waitForEvent('download');
await page.getByRole('button', { name: 'Export demo' }).click();
const download = await pendingDownload;
const output = testInfo.outputPath('demo-export.csv');
await download.saveAs(output);
const text = await readFile(output, 'utf8');
expect(text).toBe('name,status\nDemo task,ready\n');

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

اختر عقد محتوى، وليس تأكيدًا مناسبًا

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

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

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

امنح سجل الاختبار مكانًا آمنًا للعيش فيه

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

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

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

اختبار المسارات الفارغة والمرفوضة عمدا

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

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

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

الأسئلة الشائعة

هل اسم الملف المقترح كافي؟

لا. تحقق من التنسيق المحفوظ ومحتوى الأعمال؛ استخدم مسار إخراج متحكم فيه.

هل سينجو الملف المؤقت من إغلاق السياق؟

تقول الوثائق أنه يتم حذف تنزيلات السياق عند الإغلاق. احفظ الأدلة المطلوبة قبل التدمير.

مصادر