Test Data - بيانات الاختبار

مقال مجاني 4 دقيقة

مقدمة

أهلاً وسهلاً فيكم في درس جديد، ويعطيكم العافية!

تخيّل معي: فتحت Amazon، وتريد أن تختبر الـ Checkout. جهّزت كل شيء، لكن... لا تملك بيانات!

لا تملك User للـ Login، ولا منتج بالـ Cart، ولا عنوان، ولا Credit Card.

ما الذي ستفعله؟ لن تستطيع أن تختبر!

هذا هو موضوعنا اليوم: Test Data — البيانات التي تشغّل اختباراتك.

Test Data هو الوقود الذي يشغّل اختباراتك. بدون بيانات صحيحة، الاختبار لا يفيد!


ما هو Test Data؟

Test Data = أي معلومة تحتاجها حتى تختبر.

أمثلة:

  • Username و Password للـ Login
  • Email و Phone Number للتسجيل
  • عنوان للتوصيل
  • بيانات بطاقة للدفع
  • صورة للـ Upload

Test Data مهم جداً لأي Test Case

Test Case بدون Test Data = سيارة بدون نزين!

مثال — Test Case خاطئ

Title: Test Login
Steps:
1. Enter username
2. Enter password
3. Click Login

ليش خاطئ؟ لأننا لم نحدّد ما هو الـ Username والـ Password.


مثال — Test Case صحيح

Title: Test Login
Test Data:
- Username: ahmad@test.com
- Password: Test1234

Steps:
1. Enter username: ahmad@test.com
2. Enter password: Test1234
3. Click Login

ليش صحيح؟ لأنه البيانات واضحة ومحدّدة.


تحديات Test Data — ليش هي صعبة؟

التحدي الأول: إنشاء بيانات جديدة يأخذ وقتاً

كلما أردت أن تختبر الـ Login، هل لازم تسجّل User جديد؟ هذا يأخذ وقتاً طويلاً.

مثال: تريد أن تختبر Delete Account في Instagram:

  1. سجّل user جديد ← دقيقتان
  2. فعّل الـ Email ← دقيقة
  3. حمّل صورة ← دقيقة
  4. وبعدها تختبر الـ Delete

خمس دقائق في كل مرة.


التحدي الثاني: البيانات تتغيّر أو تُحذف

استخدمت User معيّناً اليوم. وغداً جئت لتختبر — والـ User محذوف!

Developer آخر مسح الـ Database، والبيانات ذهبت معها.


التحدي الثالث: بيانات معقّدة ومترابطة

حتى تختبر الـ Checkout في Amazon، تحتاج:

  • User موجود
  • Product في الـ Cart
  • Address مرتبط بالـ User
  • Payment Method

أربعة أنواع بيانات مترابطة. ولو كان واحد منها خطأ، الاختبار يفشل.


حلول ذكية

الحل الأول: إذا كان عندك Access على الـ Database، استخدمه

الفكرة: بدلاً من أن تسجّل User جديد من الموقع، غيّر البيانات مباشرة في الـ Database.

مثال واقعي: تريد أن تختبر صلاحيات Admin User أو Premium User.

من الـ UI:

  • سجّل user جديد
  • تواصل مع الـ Admin ليعطيك صلاحيات
  • أو ادفع اشتراك Premium
  • = وقت طويل ومعقّد

من الـ Database:

  • غيّر الـ Role للـ User الموجود من user إلى admin أو premium
  • ارجع للموقع واعمل Refresh
  • = خمس ثوانٍ

مثال ثانٍ: تريد أن تختبر ميزات Netflix Premium؟ بدلاً من أن تدفع اشتراكاً، غيّر الـ subscription_type في الـ Database إلى premium، ثم اعمل Refresh — وستجد نفسك Premium.

نصيحة
إذا كان عندك access على الـ Database، استغلّه — ستوفّر وقتاً كثيراً. غيّر الـ Role أو الـ Subscription وجرّب مباشرة.

الحل الثاني: Mocking — بيانات وهمية

الفكرة: بدلاً من أن تنتظر API حقيقياً، استخدم جواباً وهمياً.

مثال: تريد أن تختبر الـ Payment في Amazon، لكنك لا تريد أن تدفع أموالاً حقيقية في كل مرة.

الحل: استخدم Payment Gateway وهمياً يرجّع Success دايماً.

ليش هذا مفيد؟

  • تتحكّم بالنتيجة مئة بالمئة
  • لا تعتمد على الـ Backend
  • أسرع
  • تستطيع أن تختبر حالات صعبة، مثل Payment Failure

الحل الثالث: جهّز البيانات مسبقاً

الفكرة: قبل أن تبدأ الاختبار، جهّز كل البيانات التي تحتاجها.

اعمل ملفاً (Excel أو Note) فيه:

  • Users جاهزون للاختبار
  • Products IDs
  • Addresses
  • بيانات Test Credit Cards

وشارك الملف مع الفريق — ليستخدم الجميع نفس البيانات.


نصائح عملية

1. جهّز Test Data قبل أن تبدأ

لا تبدأ الاختبار وأنت لا تملك بيانات.

نصيحة
خصّص عشر دقائق في أول اليوم لتجهيز الـ Test Data. ستوفّر ساعات.

2. وثّق البيانات التي استخدمتها

اكتب في الـ Test Case ما هي البيانات التي استخدمتها.

هكذا، لو نفّذ الاختبار شخص آخر، سيعرف ما الذي يستخدمه.


3. لا تستخدم بيانات Production حقيقية

تحذير
أبداً لا تستخدم بيانات عملاء حقيقيين: - لا أسماء حقيقية - لا أرقام بطاقات حقيقية - لا عناوين حقيقية هذا مخالف للقانون.

4. شارك الـ Test Data مع الفريق

لا تجعل كل شخص يستخدم بيانات مختلفة.

اعمل ملفاً مشتركاً فيه كل الـ Test Data، ليستخدم الجميع نفس البيانات.


خلاصة الدرس

Test Data هو الوقود الذي يشغّل الاختبارات. بدونه لا يوجد اختبار.

Test Case بدون Test Data = سيارة بدون نزين.

التحديات الثلاثة: إنشاء البيانات يأخذ وقتاً، البيانات تتغيّر أو تُحذف، والبيانات المترابطة معقّدة.

الحلول الذكية:

  • عندك Database Access؟ غيّر البيانات مباشرة بدلاً من الـ UI
  • Mocking — استخدم بيانات وهمية لتتحكّم بالنتيجة
  • جهّز البيانات مسبقاً ووفّر وقتك

نصائح مهمة:

  • جهّز الـ Test Data قبل أن تبدأ
  • وثّق البيانات في الـ Test Case
  • أبداً لا تستخدم بيانات Production
  • شارك البيانات مع الفريق

تذكّر: البيانات الصحيحة تعني اختبارات صحيحة.


يعطيكم العافية، ونلتقي في الدرس الجاي!