تست پایگاه داده

**تست پایگاه داده** معمولاً شامل یک فرایند لایه ای است، از جمله لایهٔ رابط کاربری (UI)، لایه تجاری، لایه دسترسی به داده‌ها و خود پایگاه داده. لایهٔ رابط کاربری با طراحی رابط پایگاه داده سر و کار دارد، در حالی که لایهٔ تجاری شامل پایگاه داده‌هایی است که از استراتژی‌های تجاری پشتیبانی می‌کنند.

## اهداف
پایگاه داده‌ها، مجموعه ای از فایل‌های به هم پیوسته در یک سرور، ذخیره‌سازی اطلاعات، ممکن است با داده‌های از نوع مشابه سروکار نداشته باشند، به عنوان مثال پایگاه‌های داده ممکن است ناهمگن باشند. در نتیجه، بسیاری از انواع خطاهای پیاده‌سازی و یکپارچه سازی ممکن است در سیستم پایگاه داده‌های بزرگ اتفاق بیفتند که بر عملکرد، قابلیت اطمینان، سازگاری و امنیت سیستم تأثیر منفی بگذارد؛ بنابراین، انجام **[[آزمون نرم‌افزار|آزمون]]** برای به دست آوردن یک سیستم پایگاه داده که دارای خواص اسید (تجزیه ناپذیری، سازگاری، انزوا، دوام) یک سیستم مدیریت پایگاه داده باشد، مهم است.

یکی از مهم‌ترین لایه‌ها، لایه دسترسی به داده‌ها است که به‌طور مستقیم در طول فرایند ارتباط، با پایگاه داده‌ها سر و کار دارد. تست پایگاه داده عمدتاً در این لایه صورت می‌گیرد و شامل استراتژی‌هایی نظیر کنترل کیفیت و تضمین کیفیت پایگاه داده‌های حاصل می‌شود. تست در این لایه‌های مختلف اغلب برای حفظ سازگاری سیستم‌های پایگاه داده استفاده می‌شود و اغلب در نمونه‌های زیر دیده می‌شود:
* داده‌ها از نظر کسب و کار حیاتی هستند. شرکت‌هایی مانند گوگل یا سیمانتک، که با ذخیره‌سازی داده‌ها مرتبط هستند، نیاز به یک سیستم پایگاه داده با دوام و سازگار دارند. اگر عملیات پایگاه داده مانند درج، حذف و به روزرسانی بدون آزمایش پایگاه داده برای سازگاری انجام شود، در هم شکستن کل سیستم، این شرکت را به خطر می‌اندازد.
* بعضی از شرکت‌ها انواع مختلفی از پایگاه‌های داده را دارند، همچنین اهداف و مأموریت‌های مختلفی دارند. برای رسیدن به سطحی از عملکردها برای رسیدن به اهداف گفته شده، آن‌ها باید سیستم پایگاه داده خود را آزمایش کنند.
* رویکرد فعلی آزمایش ممکن است کافی نباشد که در این صورت توسعه دهندگان به‌طور رسمی پایگاه‌های داده را آزمایش کنند. با این حال، این رویکرد به اندازه کافی مؤثر نیست زیرا توسعه دهندگان پایگاه داده‌ها به دلیل شکاف‌های ارتباطی ممکن است سرعت روند تست را کاهش دهند. به نظر می‌رسد تیم آزمایشی جداگانه مورد نیاز است.
* تست پایگاه داده عمدتاً با یافتن خطاها در پایگاه‌های داده به منظور حذف آنها، سر و کار دارد. این باعث بهبود کیفیت پایگاه داده یا سیستم مبتنی بر وب می‌شود.
* تست پایگاه داده باید از استراتژی‌ها متمایز باشد تا با مشکلات دیگر مانند در هم شکستن پایگاه داده، درج‌ها یا حذف‌ها یا به روز رسانی‌ها ی ناقص مقابله کند. در اینجا، اصلاح پایگاه داده یک روش تکاملی است که ممکن است اعمال شود.

## انواع تست‌ها و فرایندها

این تصویر حوزه‌های آزمایش که در طول روش‌های مختلف آزمون پایگاه داده مانند تست جعبه سیاه و تست جعبه سفید شرکت دارند را نشان می‌دهد.

### جعبه سیاه
تست جعبه سیاه شامل تست رابط‌ها و یکپارچگی پایگاه داده‌است که شامل موارد زیر است:
# نگاشت داده‌ها (شامل متادیتا)
# تأیید اطلاعات ورودی
# تأیید داده‌های خروجی از توابع پرس و جو
# تکنیک‌های مختلفی نظیر تکنیک نمودار علت و معلول، تقسیم‌بندی مساوی و تحلیل مقادیر مرزی.

با کمک این تکنیک‌ها، عملکرد پایگاه داده را می‌توان به‌طور کامل آزمایش کرد.

مزایا و معایب تست جعبه سیاه عبارتند از: تولید مورد آزمایش در تست جعبه سیاه نسبتاً ساده است. تولید آن کاملاً مستقل از توسعه نرم‌افزار است و می‌تواند در مرحله اولیه توسعه انجام شود. در نتیجه، برنامه‌نویس اطلاعات بهتری در مورد نحوه طراحی برنامه پایگاه داده دارد و زمان کمتری برای اشکال زدایی صرف می‌کند. هزینه توسعه موارد آزمون جعبه سیاه کمتر از توسعه موارد آرمون جعبه سفید است. اشکال عمده تست جعبه سیاه این است که مشخص نیست که چقدر از برنامه مورد آزمایش قرار گرفته‌است. همچنین، خطاهای خاصی را نمی‌توان تشخیص داد.

### جعبه سفید
تست جعبه سفید عمدتاً با ساختار داخلی پایگاه داده ارتباط دارد. جزئیات مشخصات از کاربر پنهان می‌شوند.
# این، شامل تست عوامل محرک پایگاه داده و دیدگاه‌های منطقی است که در حال پشتیبانی از اصلاح پایگاه داده هستند.
# این، ماژول توابع پایگاه داده، محرک‌ها، نمایش‌ها، پرس و جوهای SQL و غیره را آزمایش می‌کند.
# این، جداول پایگاه داده، مدل داده‌ها، طرح پایگاه داده و غیره را معتبر می‌کند.
# این، قوانین یکپارچگی مرجع را بررسی می‌کند.
# این، مقادیر پیش فرض جدول را برای بررسی سازگاری پایگاه داده انتخاب می‌کند.
# تکنیک‌های مورد استفاده در آزمایش‌های جعبه سفید عبارتند از پوشش دستورهای شرطی، پوشش تصمیم‌گیری‌ها، پوشش دستورها، پیچیدگی سیکلوماتیک.

مزیت اصلی آزمایش‌های جعبه سفید در تست پایگاه داده این است که خطای برنامه‌نویسی شناسایی شده‌است، بنابراین خطاهای داخلی در پایگاه داده می‌توانند حذف شوند. محدودیت تست جعبه سفید این است که دستورهای SQL پوشش داده نمی‌شوند.

### رویکرد WHODATE
بندانگشتی| رویکرد WHODATE برای تبدیل بیانیه SQL
هنگامی که موارد آزمون برای تست پایگاه داده تولید می‌شوند، معناشناسی دستورهای SQL باید در موارد تست منعکس شود. برای این منظور، از تکنیکی به نام "WHite bOx Database Application Technique" یا "WHODATE" استفاده می‌شود. همان‌طور که در شکل نشان داده شده‌است، دستورهای SQL به‌طور مستقل به دستور زبان‌های همه منظوره GPL " General-Purpose Language " تبدیل می‌شوند، و سپس با استفاده از تست جعبه سفید مرسوم برای تولید موارد آزمون که شامل معناشناسی دستورهای SQL است دنبال می‌شود.

## چهار مرحله
* پایهٔ دقیق
* آزمون اجرا
* تأیید نتیجه
* از بین بردن

یک پایهٔ دقیق، وضعیت اولیه پایگاه داده قبل از ورود به آزمایش را توصیف می‌کند. بعد از تنظیم پایه‌ها، رفتار پایگاه داده برای موارد آزمون تعریف شده، تست شده‌است. بسته به نتیجه، موارد آزمون تغییر می‌کند یا همان‌طور که هست نگهداری می‌شود. مرحلهٔ «از بین بردن» یا منجر به پایان دادن به آزمایش یا ادامه موارد آزمایشی دیگر می‌شود.

برای تست موفق پایگاه داده، معمولاً جریان کاری زیر توسط تک تک تست‌های اجرا شده، انجام می‌شود:
# پاک کردن پایگاه داده: اگر داده‌های قابل تست در پایگاه داده موجود باشد، باید پایگاه داده خالی شود.
# تنظیم پایه: سپس یک ابزار مانند PHPUnit پایه‌ها را تکرار و در پایگاه داده درج می‌کند.
# اجرای تست، تأیید نتیجه و سپس از بین بردن: پس از بازنشانی پایگاه داده برای خالی کردن و فهرست کردن پایه‌ها، آزمون اجرا می‌شود و خروجی تأیید می‌شود. اگر خروجی به صورتی که انتظار می‌رفت باشد، فرایند از بین بردن دنبال می‌شود، در غیر این صورت تست تکرار می‌شود. 

## تکنیک‌های اصلی
* SQL Query Analyzer یک ابزار مفید در هنگام استفاده از مایکروسافت اس‌کیوال سرور است.  
* یکی از توابع مورد استفاده   `create_input_dialog["label"]`، برای تأیید خروجی با ورودی کاربر استفاده می‌شود.
* طراحی فرم‌ها برای تست خودکار پایگاه داده، فرم فرانت-اند (سمت کاربر) و بک-اند (سمت سرور)، به کارکنان تعمیر و نگهداری پایگاه داده کمک می‌کند.
* آزمایش بارگیری داده‌ها:
** برای آزمایش بارگیری داده، داشتن دانش در مورد پایگاه دادهٔ مبدأ و پایگاه دادهٔ مقصد مورد نیاز است.
** کارکنان با استفاده از بسته DTS، سازگاری بین پایگاه داده مبدأ و پایگاه داده مقصد را بررسی می‌کنند.
** هنگام به روز رسانی پایگاه داده مبدأ، کارکنان مطمئن می‌شوند که آن را با پایگاه داده هدف سنجیده‌اند.
** آزمایش بارگیری پایگاه داده ظرفیت سرور پایگاه داده را برای رسیدگی به پرس و جو و همچنین بررسی زمان پاسخ سرور پایگاه داده و مشتری اندازه‌گیری می‌کند.
* در آزمایش پایگاه داده، مسائلی نظیر تجزیه ناپذیری، سازگاری، انزوا، دوام، یکپارچگی، اجرای محرک‌ها و بازیابی، اغلب در نظر گرفته می‌شوند.
# حفظ برپایی آزمون پایگاه داده هزینه بر و پیچیده‌است زیرا سیستم‌های پایگاه داده به‌طور مداوم در حال تغییر با عمل‌های مورد انتظار درج، حذف و به روز رسانی است.
# سربار اضافی برای تعیین وضعیت معامله‌های پایگاه داده درگیر است.
# پس از تمیز کردن پایگاه داده، موارد آزمایش جدید باید طراحی شوند. 
# یک تولید کنندهٔ SQL برای تبدیل دستورهای SQL لازم است تا معناشناسی SQL را به موارد آزمون پایگاه داده اضافه کنیم.

## جستارهای وابسته

* نرمال سازی پایگاه داده
* تست نرم‌افزار
* تست واحد

## منابع

## پیوند به بیرون
* فصل 8 تست پایگاه داده، از راهنمای PHPUnit
* ایجاد مجموعه داده‌ها برای تست پایگاه‌های داده رابطه ای
* تست پوشش SQL
* چارچوب Acolyte برای ترسیم JDBC برای تست پایداری

رده:صفحات با ترجمه بازبینی‌نشده
رده:نرمال‌سازی پایگاه داده‌ها
رده:ویکی‌سازی رباتیک
رده:موتورهای پایگاه داده