ضمان الجودة بمساعدة الذكاء الاصطناعي

ضمان الجودة بمساعدة الذكاء الاصطناعي (AI-assisted QA) يعني استخدام نموذج ذكاء اصطناعي، وغالباً نموذج لغوي كبير (LLM)، مساعداً في عملك أنت كمختبِر: صياغة مسودة حالات اختبار من قصة مستخدم، واقتراح الحالات الطرفية (edge cases)، وكتابة أسئلة عن متطلب غامض، وتنظيم تقرير خطأ. ولا يلزم أن يحتوي المنتج قيد الاختبار على أي ذكاء اصطناعي. هذا هو الاتجاه المعاكس لبقية هذه الوحدة، حيث كان نظام الذكاء الاصطناعي هو موضوع الاختبار.

مثال: تحوّل أداة لتوليد حالات الاختبار بالذكاء الاصطناعي قصة مستخدم عن رموز الخصم إلى ست حالات اختبار مرتبة في ثوانٍ. إحداها تتوقع رسالة خطأ لم يذكرها المتطلب قط، وأخرى مبهمة لا يمكن تنفيذها، وقاعدة «استخدام واحد لكل عميل» بلا أي اختبار. ومراجعتك هي التي تقرر ما تحتفظ به، وما تسأل عنه مالك المنتج، وما تضيفه.

لماذا يهم

ينتج النموذج اللغوي نصاً سلساً ومقنعاً. لكنه لم يرَ منتجك، ولا يعرف مستخدميك ولا مخاطرك، وقد يذكر تفصيلاً مختلَقاً بالثقة نفسها التي يذكر بها تفصيلاً صحيحاً: إنها الهلوسة التي اختبرتها في هذه الوحدة، ويسميها ملف الذكاء الاصطناعي التوليدي من NIST (⁦NIST AI 600-1⁩) «التلفيق» (confabulation). وحالة الاختبار ذات النتيجة المتوقعة المختلَقة أسوأ من غيابها: فقد تنجح مع سلوك خاطئ أو تفشل مع سلوك صحيح.

وهناك خطر ثانٍ: كل ما تلصقه في أداة ذكاء اصطناعي تعمل عبر الإنترنت يغادر جهازك، ومن ذلك رقم هاتف عميل في ملاحظة خطأ أو رمز وصول (access token) في سجل طلب. ومع المراجعة والمدخلات النظيفة يوفّر الذكاء الاصطناعي وقتاً حقيقياً في الصياغة؛ ومن دونهما يضيف عيوباً وتسريبات للبيانات.

مساعد في المسودات لا بديل عن الحكم المهني

تخيّل أداة الذكاء الاصطناعي زميلاً سريعاً واسع الاطلاع، لكنه لم يستخدم منتجك قط ولا يمكن أن يُحاسَب على شيء. وهي ليست مرجعاً للاختبار (test oracle): فالنتائج المتوقعة تأتي من أساس الاختبار (test basis)، أي المتطلبات ومعايير القبول والتصاميم، أو من مالك المنتج، ولا تأتي أبداً من تخمين النموذج. ويتناول منهج ISTQB للاختبار باستخدام الذكاء الاصطناعي التوليدي (CT-GenAI) هذا الاستخدام موضوعاً مستقلاً، والأساسيات لا تتغير: أنت من يختار ما يُختبر بناءً على المخاطر، ويطبّق تقنيات تصميم الاختبار، ويلاحظ المنتج الحقيقي، ويتحمّل مسؤولية النتيجة.

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

الخصوصية: قرّر ما تلصقه قبل أن تلصقه

تعمل معظم أدوات الذكاء الاصطناعي كخدمة عبر الإنترنت: يُرسَل إدخالك إلى مزوّد الخدمة لينتج الإجابة. فقبل أن تلصق أي شيء، راجع سياسة مؤسستك بشأن أدوات الذكاء الاصطناعي المعتمدة والبيانات المسموح بإدخالها فيها. فالبيانات الشخصية في مواد الاختبار تبقى بيانات شخصية؛ وفي المملكة العربية السعودية مثلاً تخضع معالجتها لنظام حماية البيانات الشخصية (PDPL). والنموذج يحتاج إلى بنية المشكلة لا إلى القيم الحقيقية، فنظّف المدخل أولاً.

  • البيانات الشخصية (الأسماء وأرقام الهواتف وعناوين البريد الإلكتروني وأرقام الهوية الوطنية وأرقام البطاقات): ضع مكانها قيماً اصطناعية من مولّد بيانات اختبار.
  • الأسرار (كلمات المرور ومفاتيح API ورموز الوصول وملفات تعريف الارتباط للجلسات وترويسات Authorization): اكتب <redacted> مكانها.
  • التفاصيل الداخلية (أسماء الخوادم وعناوين IP وأسماء العملاء والميزات غير المعلنة): لا تُدرجها ما لم تسمح بها السياسة.
  • السرّ الحقيقي الذي لُصق خطأً يجب إبلاغ مالكه به وإلغاؤه؛ فحذف الرسالة لا يكفي.
قبل التنظيف: لا تلصق هذا
POST https://orders.int.example-shop.local/v2/checkout
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI0NDIxIn0.Xk2...
{"customer": "Sara Al-Harbi", "phone": "+966 55 012 3456", "code": "SAVE20"}
-> 500 Internal Server Error

بعد التنظيف: يكفي ليساعدك الذكاء الاصطناعي
POST /v2/checkout
Authorization: Bearer <redacted>
{"customer": "Test User 01", "phone": "+966 50 000 0001", "code": "SAVE20"}
-> 500 Internal Server Error

جرّبها: مصنع بيانات الاختبار

تحقّق من كل مسودة قبل استخدامها

عامِل مخرجات الذكاء الاصطناعي كأي منتَج عمل لم يُراجَع بعد. فالصياغة السلسة ليست دليلاً على الصحة، وقد يعيد الطلب نفسه مسودة مختلفة في المرة التالية، فراجع النسخة التي ستستخدمها فعلاً، وبترتيب ثابت.

  • التتبّع: اربط كل بند بأساس الاختبار. والبند الذي لا يمكنك تتبّعه إما فجوة في المتطلب (سؤال لمالك المنتج) وإما اختلاق (احذفه).
  • تدقيق الحقائق: الحدود ورسائل الخطأ ورموز الحالة وأسماء الحقول والمعايير، مقابل المتطلب أو عقد الواجهة البرمجية (API contract) أو المنتج.
  • قابلية التنفيذ: بيانات محددة ونتيجة متوقعة يمكن ملاحظتها. و«تحقّق من أن الميزة تعمل بشكل صحيح» ليست اختباراً.
  • البحث عن الناقص: طبّق تقنياتك أنت (أقسام التكافؤ وجانبي كل حدّ وقواعد القرار والمخاطر)، واحذف الحالات المكررة من القسم نفسه.
  • الشيفرة المولَّدة: شغّلها، وتأكد أن كل تحقق يفشل حين يجب أن يفشل، واقرأ كل محدِّد (selector) وكل تأكيد (assertion). أما سؤال الأداة نفسها عن صحة مخرجاتها فليس تحققاً.
  • التسجيل: علّم المادة بأنها مُعدّة بمساعدة الذكاء الاصطناعي، واذكر اسم المراجِع.
استخدام الذكاء الاصطناعي في ضمان الجودة في خمس خطوات: جهّز مدخلاً بلا بيانات شخصية أو أسرار، وصُغ مسودة بالذكاء الاصطناعي، وتتبّع كل بند ودقّقه، وأضف ما فاتته المسودة، ثم استخدمها مع ذكر اسم المراجِع. نموذج مفاهيمي
  1. 1جهّز المدخلأساس الاختبار والحدود والأدوار؛ دون بيانات شخصية أو أسرار أو أسماء داخلية

    بوابة: ما تسمح به السياسة فقط

  2. 2صُغ مسودة بالذكاء الاصطناعيأفكار اختبار أو حالات اختبار أو أسئلة مراجعة أو صياغة تقرير خطأ: مسودة لا نتيجةأداة ذكاء اصطناعي
  3. 3تتبّع ودقّق الحقائقكل بند مقابل أساس الاختبار؛ والحدود والرسائل مقابل المتطلب أو المنتج

    فرع: مختلَق أو بلا سند: صحّحه أو اسأل مالك المنتج أو احذفه

  4. 4أضف الناقصأقسامك وحدودك وقواعدك ومخاطرك أنت
  5. 5استخدمها مع ذكر اسم المراجِعفي حزمة الاختبارات أو تقرير الخطأ أو المراجعة، مع وسمها بأنها بمساعدة الذكاء الاصطناعي

طوال الخطوات 3–4 مراجعة المختبِر

سير عمل توضيحي من هذا الدرس؛ ولا يفرض أي معيار هذه الخطوات بعينها.

مثال تطبيقي: مراجعة مسودة من الذكاء الاصطناعي لرمز خصم

معايير القبول لقصة الدفع: (⁦1⁩) الرمز SAVE20 يمنح خصم ⁦20%⁩ على الطلبات بقيمة ⁦200.00⁩ ريال فأكثر؛ (⁦2⁩) يمكن لكل عميل استخدام الرمز مرة واحدة؛ (⁦3⁩) يُرفض الرمز المنتهي برسالة «انتهت صلاحية هذا الرمز». والرمز SAVE20 صالح حتى الساعة ⁦23:59⁩ يوم ⁦31⁩ ديسمبر ⁦2026⁩ بتوقيت الرياض. وأعادت أداة ذكاء اصطناعي المسودة أدناه؛ راجعها بنداً بنداً.

  • TC-01: احتفظ بها؛ فهي ترتبط بالمعيار ⁦1⁩، و⁦250.00⁩ بعد خصم ⁦20%⁩ تساوي ⁦200.00⁩.
  • TC-02: احتفظ بالمدخل وتوقّع عدم تطبيق الخصم، لكن الرسالة مختلَقة: فالمعيار ⁦1⁩ لا يقول هل يُرفض الرمز تحت ⁦200.00⁩ ريال ولا ما الذي يراه العميل. اسأل مالك المنتج.
  • TC-03: احتفظ بها مع بيانات محددة: SAVE20 في الساعة ⁦00:00⁩ يوم ⁦1⁩ يناير ⁦2027⁩ بتوقيت الرياض، في بيئة اختبار يمكنك ضبط ساعتها.
  • TC-04: افترضت المسودة أن الرمز لا يميّز بين الأحرف الكبيرة والصغيرة؛ والمتطلب ساكت عن ذلك، فهذا سؤال.
  • TC-05 وTC-06: احذفهما. فـTC-05 بلا بيانات ولا نتيجة متوقعة، وTC-06 من القسم نفسه الذي تمثله TC-01.
  • أضف: ⁦199.99⁩ ريال (بلا خصم)، و⁦200.00⁩ ريال (الإجمالي ⁦160.00⁩)، واستخداماً ثانياً من العميل نفسه (مرفوض)، واستخداماً أول من عميل آخر (مقبول)، وSAVE20 في الساعة ⁦23:59⁩ يوم ⁦31⁩ ديسمبر (مقبول). فقد فاتت المسودة المعيارَ ⁦2⁩ تماماً.
  • النتيجة: حالتان محفوظتان، وسؤالان، وحالتان محذوفتان، وخمس حالات مضافة. وفّر الذكاء الاصطناعي الكتابة، أما تغطية القواعد فجاءت من المراجعة.
TC-01  طبّق SAVE20 على طلب بقيمة 250.00 ريال
       المتوقع: الإجمالي 200.00 ريال
TC-02  طبّق SAVE20 على طلب بقيمة 150.00 ريال
       المتوقع: رسالة «الحد الأدنى للطلب 200 ريال»
TC-03  طبّق رمزاً منتهي الصلاحية
       المتوقع: رسالة «انتهت صلاحية هذا الرمز»
TC-04  طبّق "save20" بأحرف صغيرة
       المتوقع: قبول الرمز
TC-05  طبّق SAVE20 وتحقق من أن الخصم يعمل بشكل صحيح
TC-06  طبّق SAVE20 على طلب بقيمة 300.00 ريال
       المتوقع: تطبيق خصم 20%

جرّبها: تحليل القيم الحدّية

استخدام أدوات متقن للذكاء الاصطناعي بمسؤولية

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

  • حيث للتقنية قواعد ثابتة، فضّل أداة من متقن لا تعتمد على الذكاء الاصطناعي، مثل تحليل القيم الحدّية: فهي تعمل في متصفحك ولا تحتاج إلى تسجيل الدخول.
  • حلّل بنفسك أولاً، ثم استخدم أداة الذكاء الاصطناعي رأياً ثانياً وقارن بين الاثنين.
  • أعطِ مدخلاً دقيقاً: القصة ومعايير القبول وحدود الحقول وأدوار المستخدمين.
  • عامِل الخطورة أو الأولوية المقترحة مدخلاً لفرز العيوب (triage)، لا قراراً.

جرّبها: مولّد حالات الاختبار بالذكاء الاصطناعي جرّبها: كاشف غموض المتطلبات بالذكاء الاصطناعي جرّبها: مولّد وصف الأخطاء بالذكاء الاصطناعي جرّبها: قصة المستخدم ← حالات اختبار

أخطاء شائعة

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

من منظور ضمان الجودة

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

المختبِر الذي يعتمد مسودة من الذكاء الاصطناعي يتحمّل مسؤوليتها كما لو كتبها بنفسه. سجّل في حالة الاختبار أو في التذكرة أنها أُعدّت بمساعدة الذكاء الاصطناعي، وبأي أداة، ومن راجعها، واحمل أي نقطة جديدة تثيرها إلى مالك المنتج سؤالاً لا نتيجةً مكتشَفة. ويذكر ملف الذكاء الاصطناعي التوليدي من NIST الاعتماد المفرط (over-reliance) على الذكاء الاصطناعي التوليدي ضمن مخاطره، تحت بند تهيئة التفاعل بين الإنسان والذكاء الاصطناعي (human-AI configuration)، فواصل التدرب على التقنيات: إن لم تستطع تصميم الاختبارات دون الأداة، فلن تستطيع الحكم على مخرجاتها.

تمرين عملي

راجع مسودة من الذكاء الاصطناعي ونظّف ملاحظة خطأ

المطلوب

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

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

المادة
المتطلب: يمكن للعميل حجز من 1 إلى 6 تذاكر في الطلب الواحد.
يُغلق الحجز قبل ساعتين من بدء الفعالية.

مسودة الذكاء الاصطناعي:
TC-1  احجز 3 تذاكر
      المتوقع: تأكيد الحجز
TC-2  احجز 0 تذاكر
      المتوقع: رسالة «اختر تذكرة واحدة على الأقل»
TC-3  احجز 7 تذاكر
      المتوقع: رسالة «الحد الأقصى 6 تذاكر لكل طلب»
TC-4  احجز 10 تذاكر
      المتوقع: رسالة «الحد الأقصى 6 تذاكر لكل طلب»
TC-5  احجز قبل ساعة واحدة من بدء الفعالية
      المتوقع: رفض الحجز
TC-6  احجز تذاكر وتحقق من أن كل شيء يعمل

ملاحظة الخطأ:
العميلة: نورة القحطاني، noura.q@example.com، +966 55 987 6543
POST https://booking.int.tickets.local/v2/orders
Cookie: session=7f3a9c2e41b84d0f
الاستجابة: 500 Internal Server Error الساعة 19:42 يوم 14 أكتوبر
الخطوات
  1. تتبّع كل حالة في المسودة إلى المتطلب، وصنّفها: احتفظ أو صحّح أو سؤال أو احذف، مع ذكر السبب.
  2. جِد الحالات الناقصة بتقسيم التكافؤ (Equivalence Partitioning) وتحليل القيم الحدّية.
  3. اكتب ما لا يجوز لصقه من ملاحظة الخطأ، ثم اكتب نسخة منظَّفة.
  4. اكتب ما ستسجله عن مساعدة الذكاء الاصطناعي.
إظهار الإجابة النموذجية
الإجابة النموذجية

احتفظ بـTC-1 (قيمة صالحة معتادة) وTC-5 (مع أوقات محددة). وTC-2 وTC-3: احتفظ بالمدخلين، فهما الجاران غير الصالحين للحدّين، لكن الرسالتين مختلَقتان؛ توقّع «الرفض» واسأل مالك المنتج عن الصياغة. واحذف TC-4 (القسم نفسه الذي تمثله TC-3) وTC-6 (بلا بيانات ولا نتيجة متوقعة).

الناقص: ⁦1⁩ و⁦6⁩ تذاكر (مقبولة)، وهما القيمتان الحدّيتان الصالحتان اللتان لم تختبرهما المسودة. ولنافذة الحجز، بخطوة دقيقة واحدة: قبل البدء بساعتين ودقيقة (مقبول)، وقبله بساعتين بالضبط (سؤال مفتوح لمالك المنتج)، وقبله بساعة و⁦59⁩ دقيقة (مرفوض). واسأل أيضاً: أي منطقة زمنية تحدد وقت البدء؟

ملاحظة الخطأ: احذف الاسم والبريد الإلكتروني ورقم الهاتف (بيانات شخصية)، وملف تعريف ارتباط الجلسة (بيانات اعتماد؛ واطلب إبطال تلك الجلسة)، واسم الخادم الداخلي، واحتفظ بالطريقة والمسار والحالة والوقت. ملاحظة منظَّفة: «ظهر لعميلة الخطأ 500 Internal Server Error الساعة ⁦19:42⁩ يوم ⁦14⁩ أكتوبر أثناء حجز تذاكر؛ POST /v2/orders؛ ملف تعريف ارتباط الجلسة محذوف». ولا تلصقها إلا في أداة تعتمدها مؤسستك؛ والأفضل أن تعيد إنتاج الإخفاق أولاً بحساب اختبار.

التسجيل: علّم الحالات النهائية بأنها مُعدّة بمساعدة الذكاء الاصطناعي، واذكر الأداة واسمك مراجِعاً، واربط الأسئلة المفتوحة بالحالات.

أسئلة شائعة

هل سيحلّ الذكاء الاصطناعي محل المختبِرين؟

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

هل من الآمن لصق تتبّع مكدّس (stack trace) أو سجل في أداة ذكاء اصطناعي؟

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

لماذا أستخدم أداة تصميم اختبار دون ذكاء اصطناعي ما دامت هناك أداة بالذكاء الاصطناعي؟

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

هل أذكر أن حالة الاختبار أو تقرير الخطأ كُتب بمساعدة الذكاء الاصطناعي؟

نعم. سجّل ذلك بالطريقة التي يتفق عليها فريقك، مع اسم المراجِع. فهذا يخبر القارئ التالي كيف أُعدّت المادة ومن راجعها، ويُظهر للفريق أين توفّر مساعدة الذكاء الاصطناعي الوقت وأين تسبّب إعادة العمل.

المراجع

تدرّب بأدوات متقن

حوّل قصة مستخدم إلى حالات اختبار احترافية ومنظّمة (المعرّف والعنوان والنوع والأولوية والشروط المسبقة والبيانات والخطوات والنتيجة المتوقّعة) باستخدام الذكاء الاصطناعي من متقن.

توليد الاختبارات ذكاء اصطناعي

حوّل الملاحظات الأولية إلى تقرير خطأ كامل: خطوات إعادة الإنتاج، والمتوقّع مقابل الفعلي، والبيئة، ودرجة الخطورة، وقائمة تحقق للمرفقات.

تحليل الأخطاء ذكاء اصطناعي

حوّل قصة مستخدم (As a / I want / So that) إلى حالات اختبار منظّمة باستخدام القوالب والقواعد الاستدلالية.

تصميم الاختبارات

نفّذ تحليلاً كاملاً للقيم الحدّية (ثنائي القيم وثلاثي القيم) مع فئات التكافؤ والنتائج المتوقّعة.

تصميم الاختبارات

مصنع متكامل لبيانات الاختبار الاصطناعية: مستخدمون وعملاء وشركات وعناوين وأرقام وتواريخ وسلاسل نصية بصيغة JSON أو CSV أو SQL أو XML.

بيانات الاختبار

للتعمّق أكثر

تقدّمك في هذا الموضوع

جزء من مسار تعلم ضمان الجودة