كيف تكتب حالات اختبار جيدة لقواعد البيانات (Database Testing)
هذا الموضوع للدخول في مجال اختبار قواعد البيانات (Database Testing) وتعلّم كيفية كتابة سيناريوهات اختبار أفضل لضمان عمل اختبارات قواعد البيانات بأعلى كفاءة.
عند تطوير البرمجيات، ستحتاج إلى كتابة حالات اختبار لضمان عمل الكود كما هو متوقّع. أيضًا بالنسبة لقواعد البيانات، كتابة سيناريوهات اختبار جيّدة لقواعد البيانات تُسهِم بشكل كبير في تحسين موثوقية التطبيق وتسهيل صيانته مستقبلًا. سنتعلّم ذلك من خلال أربع نصائح أساسية حول كيفية كتابة حالات الاختبار لقواعد البيانات.
أولًا: تحديد نطاق وهدف الاختبار (Scope and Purpose)
قبل البدء بكتابة أي حالات اختبار (test cases)، من المُسْتَحْسَن تحديد نطاق كل حالة اختبار وهدفها. عادة يَهدِف كل اختبار إلى تغطية وظائف الكود والتأكّد من أنه يعمل كما هو متوقّع ويشمل ذلك التعامل مع قواعد البيانات سواءً بإضافة البيانات أو استرجاعها أو حذفها.
عند التفكير في نطاق حالة الاختبار والهدف منها، حاول أن تجعلها وصفيّة قدر الإمكان. أثناء التطوير، ستجد على الأرجح أنك بحاجة إلى كتابة حالات اختبار متنوّعة لكل منها نطاق وهدف مختلف بناءً على وظائف الكود الخاص بك وقاعدة البيانات. على سبيل المثال، لنفترض أن لديك نموذجًا يحتوي على معلومات حول العملاء ونموذجًا آخر ويب (web) يسمح للعملاء بتقديم طلب. في هذه الحالة، ستحتاج إلى كتابة حالات اختبار للتأكّد من أن المعلومات الموجودة في النموذج الخاص بك صحيحة وأن النموذج يعمل كما هو مطلوب من خلال التعامل مع قاعدة البيانات بشكل صحيح.
ثانيًا: تحديد كيفية تنفيذ أنشطة الاختبار (Testing Activities)
بعد تحديد نطاق وهدف الاختبار الخاص بك، حان الوقت لوضع الأساس لكتابة حالات اختبار جيّدة. من أجل ذلك قُمْ بتحديد كيف تنوي اختبار كل جزء من الكود بوضوح وكيفية التعامل مع قاعدة البيانات. صحيح أن كل حالة اختبار يجب أن تغطّي جزءًا محدّدًا من الوظائف (functionality)، ولكن من المهم بنفس القَدْر وصف الشكل الذي من المفترض أن تبدو عليه تلك الوظائف.
ثالثًا: تحديد إطار عمل حالات الاختبار (Test Cases Framework)
سيساعدك وجود إطار عمل مُحكَم لحالات الاختبار على كتابة حالات اختبار أفضل وأكثر كفاءة. يمكنك استخدام أنواع مختلفة من أُطُر عمل حالات الاختبار مثل النمذجة (stubbing) والمحاكاة (mocking) وغيرها.
يشير مصطلح النمذجة إلى ملء الفراغات ببيانات وهميّة مما يسمح لك بمحاكاة مسارات استدعاء الدوال المختلفة (call stacks) مع ملاحظة أنه قد لا تحتاج إلى محاكاة كل مسار استدعاء.
بالنسبة لميزة المحاكاة عند الطلب (mock-on-demand)، يمكنك استخدامها في العديد من الأدوات لإنشاء نماذج أوليّة لبعض أجزاء التعليمات البرمجية (blocks of code). تُعدّ هذه النماذج الأولية مفيدة لتوفير بيانات وهمية يمكن استبدالها لاحقًا كما يُساعِد إطار العمل المُصمّم بشكل جيد لحالات المحاكاة على ضمان دقّة كل حالة اختبار وفائدتها.
رابعًا: استخدام أداة لتحليل أداء قاعدة البيانات (Database Performance Analyzer)
من أفضل الطرق لضمان تغطية حالات الاختبار لجميع وظائف تطبيقك استخدام أداة لتحليل أداء قواعد البيانات. تساعدك هذه الأدوات في تحديد نقاط الضعف في تطبيقك وتحديد مواطن الخلل في الأداء. تتوفّر العديد من محلّلات أداء قواعد البيانات، ولكن أكثرها شيوعًا بين مطوّري قواعد البيانات هو محلّل استعلامات MySQL (query profiler).
يساعدك محلّل الاستعلامات في تحديد أجزاء تطبيقك المسؤولة عن التباطؤ ويمنحك نظرة ثاقبة حول أسباب هذا التباطؤ. أيضًا تتشابه هذه الأدوات في وظائفها، مثل أداة إنشاء استعلامات SQL وأداة تحسين Teradata. وبحسب نوع التطبيق الذي تقوم بإنشائه وقاعدة البيانات التي تستخدمها، قد تحتاج إلى استخدام أداة تحليلية خاصة بقاعدة بياناتك.
* المصدر والصورة: https://www.softwaretestingmagazine.com/knowledge/how-to-write-good-test-cases-for-database-testing


لا توجد تعليقات