قاعدة البيانات (البيانات) اختبار البرنامج التعليمي
ما هو اختبار قاعدة البيانات؟
اختبار قاعدة البيانات هو نوع من اختبارات البرمجيات التي تتحقق من المخطط والجداول والمشغلات وما إلى ذلك لقاعدة البيانات قيد الاختبار. كما تتحقق من سلامة البيانات وتناسقها. وقد تتضمن إنشاء استعلامات معقدة لتحميل/اختبار قاعدة البيانات والتحقق من استجابتها.
ما أهمية اختبار قاعدة البيانات؟
اختبار قاعدة البيانات مهم in اختبار البرمجيات لأنه يضمن أن قيم البيانات والمعلومات الواردة والمخزنة في قاعدة البيانات صالحة أم لا. يساعد اختبار قاعدة البيانات على تجنب فقدان البيانات، وحفظ بيانات المعاملات المجهضة وعدم السماح بالوصول غير المصرح به إلى المعلومات. تعد قاعدة البيانات مهمة لأي تطبيق برمجي، وبالتالي يجب أن يكون لدى المختبرين معرفة جيدة بـ SQL لاختبار قاعدة البيانات.
عادةً ما يتم التركيز على واجهة المستخدم الرسومية بشكل أكبر من قبل أعضاء فريق الاختبار والتطوير نظرًا لأن واجهة المستخدم الرسومية هي الجزء الأكثر وضوحًا في التطبيق. ومع ذلك، المهم أيضًا هو التحقق من صحة المعلومات التي تشكل قلب التطبيق، والمعروفة أيضًا باسم DATABASE.
لنتأمل تطبيقًا مصرفيًا يقوم فيه المستخدم بإجراء معاملات. والآن من وجهة نظر اختبار قاعدة البيانات، فإن الأمور التالية مهمة:
- يقوم التطبيق بتخزين معلومات المعاملة في قاعدة بيانات التطبيق ويعرضها بشكل صحيح للمستخدم.
- لا يتم فقدان أي معلومات في هذه العملية.
- لا يتم حفظ معلومات العملية التي تم إجراؤها جزئيًا أو تم إلغاؤها بواسطة التطبيق.
- لا يُسمح لأي فرد غير مصرح له بالوصول إلى معلومات المستخدم.
لضمان كل هذه الأهداف المذكورة أعلاه، نحتاج إلى استخدام التحقق من صحة البيانات أو اختبار البيانات.
الاختلافات بين اختبار واجهة المستخدم واختبار البيانات
اختبار واجهة المستخدم | قاعدة البيانات أو اختبار البيانات |
---|---|
يُعرف هذا النوع من الاختبارات أيضًا باسم اختبار واجهة المستخدم الرسومية أو اختبار الواجهة الأمامية. | يُعرف هذا النوع من الاختبار أيضًا باسم اختبار الواجهة الخلفية أو اختبار البيانات. |
يتعامل هذا النوع من الاختبارات بشكل أساسي مع جميع العناصر القابلة للاختبار والمتاحة للمستخدم للمشاهدة والتفاعل مثل النماذج والعروض التقديمية والرسوم البيانية والقوائم والتقارير وما إلى ذلك (التي تم إنشاؤها من خلال VB وVB.net وV)C++دلفي – أدوات الواجهة الأمامية) | يتعامل هذا النوع من الاختبارات بشكل أساسي مع جميع العناصر القابلة للاختبار والتي تكون مخفية عمومًا عن المستخدم من أجل نسبة المشاهدة. وتشمل هذه العمليات الداخلية والتخزين مثل Assembly، نظم إدارة قواعد البيانات مثل Oracle، SQL Server، MYSQL، وما إلى ذلك. |
يتضمن هذا النوع من الاختبارات التحقق من صحة
|
يتضمن هذا النوع من الاختبارات التحقق من صحة:
|
يجب أن يكون المُختبر على دراية كاملة بمتطلبات العمل بالإضافة إلى استخدام أدوات التطوير واستخدام أطر وأدوات التشغيل الآلي. | لكي يتمكن المختبر من إجراء اختبارات خلفية، يجب أن يكون لديه خلفية قوية في مفاهيم خادم قاعدة البيانات ولغة الاستعلام المنظم. |
أنواع اختبار قاعدة البيانات
الأنواع الثلاثة لاختبار قاعدة البيانات هي
في هذا البرنامج التعليمي لاختبار قاعدة البيانات، سننظر في كل نوع وأنواعه الفرعية واحدًا تلو الآخر.
اختبار قاعدة البيانات الهيكلية
اختبار قاعدة البيانات الهيكلية هي تقنية اختبار قاعدة البيانات التي تتحقق من صحة جميع العناصر الموجودة داخل مستودع البيانات والتي تستخدم بشكل أساسي لتخزين البيانات والتي لا يسمح للمستخدمين النهائيين بمعالجتها مباشرة. يعد التحقق من صحة خوادم قاعدة البيانات أيضًا أحد الاعتبارات المهمة في اختبار قاعدة البيانات الهيكلية. يتطلب إكمال هذا الاختبار بنجاح إتقان استعلامات SQL.
ما هو اختبار المخطط؟
اختبار المخطط في اختبار قاعدة البيانات، يتم التحقق من صحة تنسيقات المخططات المختلفة المرتبطة بقاعدة البيانات والتحقق مما إذا كانت تنسيقات تعيين الجداول/طرق العرض/الأعمدة متوافقة مع تنسيقات تعيين واجهة المستخدم. الغرض الرئيسي من اختبار المخطط هو التأكد من تشابه تعيين المخطط بين الواجهة الأمامية والخلفية. وبالتالي، يشار إليه أيضًا باسم اختبار رسم الخرائط.
دعونا نناقش أهم نقاط التفتيش لاختبار المخطط.
- التحقق من صحة تنسيقات المخططات المختلفة المرتبطة بقواعد البيانات. في كثير من الأحيان قد لا يكون تنسيق التعيين الخاص بالجدول متوافقًا مع تنسيق التعيين الموجود في مستوى واجهة المستخدم الخاصة بالتطبيق.
- هناك حاجة للتحقق في حالة الجداول/طرق العرض/الأعمدة غير المعينة.
- هناك أيضًا حاجة للتحقق مما إذا كانت قواعد البيانات غير المتجانسة في بيئة ما متوافقة مع تعيين التطبيق الإجمالي.
دعونا نلقي نظرة أيضًا على بعض أدوات اختبار قاعدة البيانات المثيرة للاهتمام للتحقق من صحة مخططات قاعدة البيانات.
- تعتبر DBUnit المدمجة مع Ant مناسبة جدًا لاختبار رسم الخرائط.
- يسمح SQL Server للمختبرين بالقدرة على التحقق من مخطط قاعدة البيانات والاستعلام عنه عن طريق كتابة استعلامات بسيطة وليس من خلال التعليمات البرمجية.
على سبيل المثال، إذا أراد المطورون تغيير بنية الجدول أو حذفه، فقد يرغب المختبر في التأكد من أن كافة الإجراءات المخزنة وطرق العرض التي تستخدم هذا الجدول متوافقة مع التغيير المعين. قد يكون المثال الآخر هو أنه إذا أراد المختبرون التحقق من تغييرات المخطط بين قاعدتي بيانات، فيمكنهم القيام بذلك باستخدام استعلامات بسيطة.
جدول قاعدة البيانات، اختبار العمود
دعونا نلقي نظرة على عمليات التحقق المختلفة لاختبار قاعدة البيانات والأعمدة.
- ما إذا كان تعيين حقول وأعمدة قاعدة البيانات في الواجهة الخلفية متوافقًا مع تلك التعيينات في الواجهة الأمامية؟
- التحقق من صحة الطول واصطلاح التسمية لحقول وأعمدة قاعدة البيانات كما هو محدد في المتطلبات.
- التحقق من وجود أي جداول/أعمدة قاعدة بيانات غير مستخدمة/غير معينة.
- التحقق من توافق
- نوع البيانات
- أطوال المجال
من أعمدة قاعدة البيانات الخلفية مع تلك الموجودة في الواجهة الأمامية للتطبيق.
- ما إذا كانت حقول قاعدة البيانات تسمح للمستخدم بتوفير مدخلات المستخدم المطلوبة كما هو مطلوب في مستندات مواصفات متطلبات العمل.
اختبار المفاتيح والفهارس
فحوصات مهمة للمفاتيح والفهارس -
- تحقق مما إذا كان المطلوب
- المفتاح الأساسي
- مفتاح غريب
تم إنشاء القيود على الجداول المطلوبة.
- تحقق مما إذا كانت مراجع المفاتيح الخارجية صالحة.
- تحقق مما إذا كان نوع بيانات المفتاح الأساسي والمفاتيح الخارجية المقابلة متماثلين في الجدولين.
- تحقق مما إذا كان قد تم اتباع اصطلاحات التسمية المطلوبة لجميع المفاتيح والفهارس.
- التحقق من حجم وطول الحقول والفهارس المطلوبة.
- ما إذا كان المطلوب
- Clusterفهارس إد
- ليس Clusterفهارس إد
تم إنشاؤها على الجداول المطلوبة كما تحددها متطلبات العمل.
اختبار الإجراءات المخزنة
الاختبارات الهامة للتحقق من الإجراءات المخزنة هي:
- ما إذا كان فريق التطوير قد اعتمد المتطلبات المطلوبة أم لا، أ) اصطلاحات معيار التشفير، و ب) معالجة الاستثناءات والأخطاء. لجميع الإجراءات المخزنة لجميع وحدات التطبيق قيد الاختبار.
- ما إذا كان فريق التطوير قد قام بتغطية جميع الشروط/الحلقات من خلال تطبيق بيانات الإدخال المطلوبة على التطبيق قيد الاختبار؟
- هل قام فريق التطوير بتطبيق عملية TRIM بشكل صحيح عند جلب البيانات من الجداول المطلوبة في قاعدة البيانات؟
- ما إذا كان التنفيذ اليدوي للإجراء المخزن يوفر للمستخدم النهائي النتيجة المطلوبة؟
- ما إذا كان التنفيذ اليدوي للإجراء المخزن يضمن تحديث حقول الجدول كما هو مطلوب بواسطة التطبيق قيد الاختبار؟
- ما إذا كان تنفيذ الإجراءات المخزنة يتيح الاستدعاء الضمني للمشغلات المطلوبة؟
- التحقق من وجود أي إجراءات مخزنة غير مستخدمة.
- التحقق من صحة شرط السماح بالخالي والذي يمكن إجراؤه على مستوى قاعدة البيانات.
- التحقق من حقيقة أن جميع الإجراءات والوظائف المخزنة قد تم تنفيذها بنجاح عندما تكون قاعدة البيانات قيد الاختبار فارغة.
- التحقق من التكامل الشامل لوحدات الإجراءات المخزنة وفقًا لمتطلبات التطبيق قيد الاختبار.
بعض أدوات اختبار قاعدة البيانات المفيدة لاختبار الإجراءات المخزنة هي LINQ وأداة اختبار SP وما إلى ذلك.
اختبار الزناد
- ما إذا كان قد تم اتباع اصطلاحات التشفير المطلوبة أثناء مرحلة تشفير المشغلات؟
- تحقق مما إذا كانت المشغلات التي تم تنفيذها لمعاملات DML المعنية قد استوفت الشروط المطلوبة.
- ما إذا كان المشغل يقوم بتحديث البيانات بشكل صحيح بمجرد تنفيذها؟
- يؤدي التحقق من صحة التحديث/الإدراج/الحذف المطلوب إلى تشغيل الوظيفة في مجال التطبيق قيد الاختبار.
التحقق من صحة خادم قاعدة البيانات
- تحقق من تكوينات خادم قاعدة البيانات كما هو محدد بواسطة متطلبات العمل.
- تحقق من ترخيص المستخدم المطلوب لتنفيذ مستويات الإجراءات التي يتطلبها التطبيق فقط.
- تأكد من أن خادم قاعدة البيانات قادر على تلبية احتياجات الحد الأقصى المسموح به من معاملات المستخدم كما هو محدد في مواصفات متطلبات العمل.
اختبار قاعدة البيانات الوظيفية
اختبار قاعدة البيانات الوظيفية هو نوع من أنواع اختبار قواعد البيانات الذي يستخدم للتحقق من صحة المتطلبات الوظيفية لقاعدة البيانات من وجهة نظر المستخدم النهائي. والهدف الرئيسي من اختبار قواعد البيانات الوظيفية هو اختبار ما إذا كانت المعاملات والعمليات التي يقوم بها المستخدمون النهائيون والتي تتعلق بقاعدة البيانات تعمل كما هو متوقع أم لا.
فيما يلي الشروط الأساسية التي يجب مراعاتها للتحقق من صحة قاعدة البيانات.
- هل الحقل إلزامي مع السماح بقيم NULL في هذا الحقل؟
- ما إذا كان طول كل حقل بالحجم الكافي؟
- ما إذا كانت جميع الحقول المتشابهة لها نفس الأسماء عبر الجداول؟
- ما إذا كانت هناك أي حقول محسوبة موجودة في قاعدة البيانات؟
هذه العملية المحددة هي التحقق من صحة تعيينات الحقول من وجهة نظر المستخدم النهائي. في هذا السيناريو المحدد، سيقوم المُختبر بإجراء عملية على مستوى قاعدة البيانات ثم ينتقل إلى عنصر واجهة المستخدم ذي الصلة لمراقبة والتحقق من صحة ما إذا كانت عمليات التحقق من الحقول المناسبة قد تم تنفيذها أم لا.
يجب أيضًا تنفيذ الشرط العكسي، حيث يتم تنفيذ العملية الأولى بواسطة المختبر في واجهة المستخدم، ثم يتم التحقق من صحة نفس العملية من الواجهة الخلفية.
التحقق من سلامة البيانات واتساقها
الفحوصات التالية مهمة
- ما إذا كانت البيانات منظمة بشكل جيد منطقيا؟
- هل البيانات المخزنة في الجداول صحيحة وحسب متطلبات العمل؟
- ما إذا كانت هناك أي بيانات غير ضرورية موجودة في التطبيق قيد الاختبار؟
- هل تم تخزين البيانات وفقًا لمتطلبات البيانات التي تم تحديثها من واجهة المستخدم؟
- هل تم إجراء عمليات TRIM على البيانات قبل إدخال البيانات في قاعدة البيانات قيد الاختبار؟
- هل تم تنفيذ المعاملات حسب مواصفات متطلبات العمل وهل النتائج صحيحة أم لا؟
- ما إذا كان قد تم الالتزام بالبيانات بشكل صحيح إذا تم تنفيذ المعاملة بنجاح؟
- ما إذا كان قد تم استعادة البيانات بنجاح إذا لم يتم تنفيذ المعاملة بنجاح من قبل المستخدم النهائي؟
- هل تم إرجاع البيانات إذا لم يتم تنفيذ المعاملة بنجاح وتم إشراك قواعد بيانات متعددة غير متجانسة في المعاملة المعنية؟
- هل تم تنفيذ كافة المعاملات باستخدام إجراءات التصميم المطلوبة كما هو محدد في متطلبات عمل النظام؟
تسجيل الدخول وأمن المستخدم
يجب أن تأخذ عمليات التحقق من صحة بيانات تسجيل الدخول وأمان المستخدم الأمور التالية في الاعتبار.
- ما إذا كان التطبيق يمنع المستخدم من المضي قدمًا في التطبيق في حالة أ
- اسم مستخدم غير صالح ولكن كلمة المرور صالحة
- اسم مستخدم صالح ولكن كلمة المرور غير صالحة.
- اسم مستخدم غير صالح وكلمة مرور غير صالحة.
- هل يُسمح للمستخدم بإجراء تلك العمليات المحددة فقط وفقًا لمتطلبات العمل؟
- ما إذا كانت البيانات مؤمنة من الوصول غير المصرح به؟
- ما إذا كانت هناك أدوار مستخدم مختلفة تم إنشاؤها بأذونات مختلفة؟
- ما إذا كان جميع المستخدمين لديهم مستويات الوصول المطلوبة إلى قاعدة البيانات المحددة كما هو مطلوب بموجب مواصفات العمل؟
- تأكد من تشفير البيانات الحساسة مثل كلمات المرور وأرقام بطاقات الائتمان وعدم تخزينها كنص عادي في قاعدة البيانات. من الجيد التأكد من أن جميع الحسابات يجب أن تحتوي على كلمات مرور معقدة ولا يمكن تخمينها بسهولة.
اختبار غير وظيفي
اختبار غير وظيفي في سياق اختبار قاعدة البيانات يمكن تصنيفها إلى فئات مختلفة حسب ما تتطلبه متطلبات العمل. يمكن أن تكون هذه اختبارات الحمل، واختبار الإجهاد، اختبار الأمان, اختبار قابلية الاستخدامو اختبار التوافق، وما إلى ذلك وهلم جرا. يخدم اختبار الحمل، بالإضافة إلى اختبار التحمل، والذي يمكن تجميعه ضمن نطاق اختبار الأداء غرضين محددين عندما يتعلق الأمر بدور الاختبار غير الوظيفي.
تقدير المخاطر- يساعد القياس الكمي للمخاطر أصحاب المصلحة على التأكد من متطلبات وقت استجابة النظام المختلفة في ظل مستويات الحمل المطلوبة. هذا هو القصد الأصلي لأي ضمان الجودة مهمة. نحن بحاجة إلى ملاحظة أن اختبار الحمل لا يخفف المخاطر بشكل مباشر، ولكن من خلال عمليات تحديد المخاطر وتقدير المخاطر، يقدم فرصًا تصحيحية وحافزًا للمعالجة التي من شأنها تخفيف المخاطر.
الحد الأدنى من متطلبات معدات النظام- الحد الأدنى من تكوين النظام الذي يسمح للنظام بتلبية توقعات الأداء المعلنة رسميًا من قبل أصحاب المصلحة. بحيث يمكن تقليل الأجهزة والبرامج غير الضرورية وتكاليف الملكية المرتبطة بها. يمكن تصنيف هذا المتطلب على وجه الخصوص كمتطلب لتحسين الأعمال بشكل عام.
اختبار الحمل
يجب أن يكون الغرض من أي اختبار تحميل مفهومًا وموثقًا بشكل واضح. تعد الأنواع التالية من التكوينات ضرورية لـ اختبار الحمل.
- تتمتع معاملات المستخدم الأكثر استخدامًا بالقدرة على التأثير على أداء جميع المعاملات الأخرى إذا لم تكن فعالة.
- يجب تضمين معاملة مستخدم واحدة على الأقل غير قابلة للتحرير في مجموعة الاختبار النهائية، بحيث يمكن التمييز بين أداء هذه المعاملات والمعاملات الأخرى الأكثر تعقيدًا.
- وينبغي إدراج المعاملات الأكثر أهمية التي تسهل الأهداف الأساسية للنظام، حيث أن الفشل تحت وطأة هذه المعاملات له، بحكم التعريف، الأثر الأكبر.
- يجب تضمين معاملة واحدة قابلة للتحرير على الأقل أداء يمكن تمييز هذه المعاملات عن المعاملات الأخرى.
- وقت الاستجابة الأمثل في ظل عدد كبير من المستخدمين الافتراضيين لجميع المتطلبات المحتملة.
- الأوقات الفعالة لجلب السجلات المختلفة.
أدوات اختبار الحمل الهامة هي برنامج LoadRunner الاحترافي، فوز عداء و JMeter.
ما هو اختبار ضغط قاعدة البيانات؟
اختبار ضغط قاعدة البيانات هي طريقة اختبار تستخدم للضغط على نظام قاعدة بيانات الاختبار مع التحميل الثقيل بحيث يفشل في مرحلة ما. وهذا يساعد في تحديد نقطة انهيار نظام قاعدة البيانات. يتطلب التخطيط المناسب والجهود لتجنب الإفراط في استخدام الموارد. بيانات اختبار الإجهاد يُعرف أيضًا باسم اختبار التعذيب أو اختبار التعب.
أدوات اختبار الإجهاد الهامة هي برنامج LoadRunner الاحترافي JMeter.
المشكلات الأكثر شيوعًا التي تحدث أثناء اختبار قاعدة البيانات
A significant amount of overhead could be involved to determine the state of the database transactions
حل: ينبغي تنظيم التخطيط الشامل للعملية وتوقيتها بحيث لا تظهر مشكلات تتعلق بالوقت والتكلفة.
New test data have to be designed after cleaning up of the old test data.
حل: ينبغي أن تكون في متناول اليد خطة ومنهجية مسبقة لتوليد بيانات الاختبار.
An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.
حل: تعد صيانة استعلامات SQL وتحديثها المستمر جزءًا مهمًا من عملية الاختبار الشاملة التي يجب أن تكون جزءًا من العملية الشاملة استراتيجية الاختبار.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
حل: يجب أن يكون هناك توازن دقيق بين الجودة ومدة الجدول الزمني للمشروع بشكل عام.
الخرافات أو المفاهيم الخاطئة المتعلقة باختبار قاعدة البيانات
Database Testing requires plenty of expertise and it is a very tedious job
واقع: يوفر اختبار قواعد البيانات الفعال والكفء في اختبار البرامج استقرارًا وظيفيًا طويل المدى للتطبيق العام، وبالتالي من الضروري بذل عمل شاق خلفه.
Database testing adds extra work bottleneck
واقع: على العكس من ذلك، يضيف اختبار قاعدة البيانات قيمة أكبر إلى العمل الإجمالي من خلال اكتشاف المشكلات المخفية وبالتالي المساعدة بشكل استباقي في تحسين التطبيق العام.
Database testing slows down the overall development process
واقع: يساعد قدر كبير من اختبار قاعدة البيانات في التحسين الشامل لجودة تطبيق قاعدة البيانات.
Database testing could be excessively costly
واقع: أي إنفاق على اختبار قاعدة البيانات هو استثمار طويل الأجل يؤدي إلى استقرار التطبيق ومتانته على المدى الطويل. وبالتالي الإنفاق على اختبار قاعدة البيانات أو SQL الاختبار ضروري.
أفضل الممارسات
- يجب التحقق من صحة جميع البيانات بما في ذلك البيانات التعريفية وكذلك البيانات الوظيفية وفقًا لتخطيطها من خلال وثائق مواصفات المتطلبات.
- التحقق من بيانات الاختبار التي تم إنشاؤها بواسطة / بالتشاور مع فريق التطوير تحتاج إلى التحقق من صحتها.
- التحقق من صحة بيانات المخرجات باستخدام الإجراءات اليدوية والأتمتة.
- نشر تقنيات مختلفة مثل تقنية الرسم البياني للسبب والنتيجة، وتقنية تقسيم التكافؤ، وتقنية تحليل القيمة الحدودية لتوليد شروط بيانات الاختبار المطلوبة.
- يجب أيضًا التحقق من صحة قواعد التحقق من التكامل المرجعي لجداول قاعدة البيانات المطلوبة.
- يعد تحديد قيم الجدول الافتراضية للتحقق من صحة تناسق قاعدة البيانات مفهومًا مهمًا للغاية سواء تمت إضافة أحداث السجل بنجاح في قاعدة البيانات لجميع أحداث تسجيل الدخول المطلوبة
- هل يتم تنفيذ المهام المجدولة في الوقت المناسب؟
- أخذ نسخة احتياطية من قاعدة البيانات في الوقت المناسب.
تحقق أيضًا- أسئلة وأجوبة مقابلة اختبار قاعدة البيانات