شما نرمافزاری را تهیه کرده و بر روی سیستم خود نصب میکنید، در اکثر موارد بعد از نصب برنامه فقط یک نسخه اجرایی آن را در سیستم خود خواهید داشت، هیچ دسترسی به سورس کد و منابع دیگر برنامه ندارید. سیستم نرمافزاری موجود برای شما مانند یک جعبه سیاه است که شما نمیتوانید درون آن را مشاهده کنید و به آن دسترسی داشته باشید.
استراتژی جعبه سیاه (Black Box Testing Strategy) دقیقاً از این دیدگاه برنامه را مورد تست قرار میدهد، یعنی با این پیش فرض که شما هیچ اطلاعاتی از کد و طراحی داخلی برنامه ندارید. حالا هیچ اطلاعاتی از کد و طراحی برنامه در اختیار ما نیست، پس چگونه میتوان به صحت عملکرد برنامه پی برد؟ جواب خیلی ساده است، با تمرکز بر ورودیها و خروجیها، برای این کار تستر به مستندات نرمافزار مراجعه میکند تا مشخص کند که سیستم در مقابل یک عمل خاص چه پاسخی را باید بدهد. سپس دادههایی را برای هر کدام از عملیات انتخاب میکند و رفتار سیستم را در مقابل آن دادهها با رفتار واقعی سیستم که در مستندات وجود دارد مقایسه و بررسی میکند. این تست جایگزین تست جعبه سفید نمیباشد بلکه مکمل آن است وخطاهایی متفاوت با آن راتست میکند.
مزایای استفاده از این روش عبارتند از:
– سریع و ارزان است.
– به سطح مهارت کمتری نسبت به استراتژی جعبه سفید نیاز دارد.
– تعداد زیادی از تسترهای متخصص در این حوزه در دسترس هستند.
– در این روش معمولا کدی تست میشود که بهکار گرفته شده است.
در یک استراتژی جعبه سیاه ما عموماً موارد زیر را مورد بررسی و آزمایش قرار میدهیم:
۱- بررسی اینکه سیستم نیازمندیهای عملیاتی و غیرعملیاتی را تامین میکند یا نه؟
۲- اعتبارسنجی ورودیها
۳- بررسی مقادیر مرزی برای متغیرها: به یک متغیر مقداری کمتر از حداقل مقداری که میتواند قبول کند یا بیشتر از حداکثر مقداری که میتواند قبول کند میدهیم و سیستم را در این شرایط تست میکنیم.
۴- بررسی خروجیهای سیستم: یک مجموعه از ورودیهای صحیح با خروجیهای مربوط به آن را تهیه میکنیم و سپس ورودیها را به سیستم وارد میکنیم و خروجیهایی که توسط سیستم داده میشود را با خروجیهای واقعی مقایسه می کنیم.
۵- بررسی رفتار سیستم در برابر پردازش ورودها و پرس و جوهای بزرگ و سنگین
۶- برای موارد بالا و مواردی دیگری که ذکر نشد روشهای مختلف تست در استراتژی جعبه سیاه وجود دارد که عبارتند از:
Functional testing –
Stress testing –
Recovery Testing –
Volume testing –
User Acceptance testinge –
System testing –
Sanity or Smoke testing –
Load testing –
Usability testing –
Exploratory testing –
Ad-hoc Testing –
Alpha testing –
Beta testing –
آیا میتوان در تست جعبه سیاه مطمئن شد که سیستم به طور کامل تست شده است؟ خیر، هرگز در این تست نمیتوان مطمئن شد که سیستم به طور کامل تست شده است. پس همیشه در این استراتژی مسیرهایی خواهند بود که تست نمیشوند و همیشه برنامه با دادههای ورودی محدود میتواند تست شود. پس از تعیین خطای برنامه میتوان با استفاده از تست جعبه سفید، کد برنامه را بررسی کرد تا اینکه عامل خطا در داخل کد برنامه مشخص شود. بنابراین تست جعبه سیاه و جعبه سفید مکمل هم بوده و به عبارتی جدایی ناپذیرند.