تست جعبه باز – که با نام های جعبه سفید، جعبه شیشه ای، جعبه شفاف یا جعبه شفاف شناخته می شود – تکنیکی است که توسط توسعه دهندگان برای ارزیابی کد و ساختار داخلی نرم افزار استفاده می شود. اگر در صنعت نرم افزار هستید یا به دنبال پیوستن به آن هستید، ممکن است درک این فرآیند برای بهبود مهارت ها و دانش خود مفید باشد.
در این مقاله از ایوسی، ما در مورد چیستی تست جعبه باز، استفاده از آن و نحوه اجرای آن بحث خواهیم کرد و تکنیک ها و مزایای آن را بررسی خواهیم کرد.
تست جعبه باز در مهندسی نرم افزار چیست؟
تست جعبه باز یک روش ارزیابی نرم افزاری است که برای بررسی ساختار داخلی، طراحی، کدگذاری و عملکرد درونی نرم افزار استفاده می شود. توسعه دهندگان از این روش تست برای تأیید جریان ورودی ها و خروجی ها از طریق برنامه، بهبود قابلیت استفاده و طراحی و تقویت امنیت استفاده می کنند. این مفهوم “جعبه باز” نامیده می شود زیرا به طور نمادین واضح است، زیرا کد در طول معاینه برای آزمایش کننده قابل مشاهده است. در مقایسه، زمانی که کد داخلی قابل مشاهده نیست، به آن تست جعبه بسته می گویند.
با استفاده از تست جعبه باز، نرم افزار برای موارد زیر تجزیه و تحلیل می شود:
-
ضعف امنیت داخلی
-
مسیرهای کد اضافی در فرآیندهای کدگذاری
-
نحوه مدیریت کد ورودی های خاص
-
خروجی مورد انتظار
-
آیا حلقه های شرطی به درستی کار می کنند یا خیر
-
تست انفرادی هر تابع، عبارت و شی
تست را می توان در مراحل مختلف توسعه نرم افزار، به ویژه در سطوح سیستم، ادغام و واحد انجام داد. هدف آزمایش این است که آیا نرم افزار نتایج مورد انتظار را ایجاد می کند یا خیر، و اگر این کار را نکرد، مشکل را برجسته می کند.
مطالب مرتبط: با توسعه دهنده وب آشنا شوید
نحوه انجام تست جعبه باز
به زبان ساده، دو مرحله برای تست جعبه باز وجود دارد:
۱. کد منبع را درک کنید
یک تستر ابتدا باید زبان برنامه نویسی نرم افزار را بداند و با شیوه های کدنویسی ایمن آشنا باشد. امنیت دلیل اصلی آزمایش نرم افزار است، بنابراین هدف یافتن نگرانی های امنیتی برای جلوگیری از حملات هکرها و کدهای مخرب از تزریق ناآگاهانه به یک برنامه است.
۲. نرم افزار را تست کنید
مرحله دوم شامل بررسی کد منبع نرم افزار برای جریان و ساختار صحیح است. یکی از راه های تست نرم افزار طراحی و نوشتن کد اضافی است که می تواند کد منبع را ارزیابی کند. آزمایشکنندهای که دانش خوبی از کد دارد، معمولاً تستهای کمی برای هر فرآیند برنامه ایجاد میکند. تست دستی – روش آزمایش دیگری – از ابزارهای آزمایش برای کار استفاده می کند.
تکنیک های تست جعبه باز
راههای زیادی وجود دارد که میتوانید نرمافزار را با تست جعبه باز تحلیل کنید. اکثر آزمایش کننده ها از فرآیندی به نام تحلیل پوشش کد برای از بین بردن شکاف های موجود در تست کد استفاده می کنند. برای انجام این کار می توانید از تکنیک های مختلفی استفاده کنید، از جمله:
-
پوشش بیانیه: این تکنیک تضمین می کند که هر خط در کد حداقل یک بار آزمایش می شود تا کد معیوب را راحت تر پیدا کند.
-
پوشش شاخه: با استفاده از این تکنیک، هر مسیر ممکن یا نقطه تصمیم گیری یک برنامه نرم افزاری از نظر دقت بررسی می شود.
-
پوشش شرایط: همه شرایط فردی بررسی می شود.
-
پوشش شرایط چندگانه: همه ترکیبات قابل تصور از همه نتایج شرایط قابل تصور حداقل یک بار آزمایش می شوند.
-
آزمایش مسیر پایه: نمودارهای کنترلی از فلوچارت یا کد ایجاد می شوند. سپس پیچیدگی سیکلوماتیکی برای تعریف تعداد مسیرهای مستقل محاسبه می شود تا بتوان حداقل تعداد موارد تست را برای هر مسیر طراحی کرد.
-
نماد نمودار جریان: این تکنیک از یک گراف جهت دار متشکل از گره ها و لبه ها استفاده می کند که در آن هر گره نشان دهنده یک نقطه تصمیم یا دنباله ای از عبارات است.
-
پیچیدگی سیکلوماتیکی: این معیار پیچیدگی منطقی و چرخه ای یک نرم افزار است. برای تعیین تعداد مسیرهای مستقل استفاده می شود.
-
تست حلقه: حلقه ها معمولا در تست جعبه باز استفاده می شوند و برای بسیاری از الگوریتم ها اساسی هستند. مشکلات اغلب در ابتدا یا انتهای یک حلقه یافت می شوند. تست حلقه را می توان به حلقه های ساده، حلقه های تو در تو و حلقه های پیوسته تقسیم کرد.
اگرچه بسیاری از این تکنیکها توسط آزمایشکنندگان استفاده میشوند، تکنیکهای پوشش بیانیه و شاخه حداقل ۸۰ تا ۹۰ درصد کد را برای خطا بررسی میکنند که معمولاً کافی است.
مطالب مرتبط: مهارت های فنی: تعاریف و مثال ها
انواع تست جعبه باز
طیف وسیعی از انواع تست برای سنجش قابلیت استفاده یک برنامه کاربردی یا یک بسته نرم افزاری خاص استفاده می شود:
تست واحد
این معمولاً توسط برنامه نویس به عنوان آزمایش اولیه تکمیل شده روی یک برنامه انجام می شود. در این روش، هر بلوک کد همزمان با توسعه آزمایش می شود. توسعه دهنده چند خط کد، یک تابع یا یک شی را برای کار صحیح آزمایش می کند. تست واحد مفید است زیرا اکثر خطاها را در اوایل چرخه توسعه شناسایی میکند و باعث ارزانتر و آسانتر رفع آنها میشود.
تست تضمین کیفیت
نشت حافظه اغلب باعث کندی اجرای نرم افزار می شود. اگر این اتفاق بیفتد، یک تست تضمین کیفیت برای بررسی کد انجام می شود.
تست نفوذ
این تست شامل حمله به کد از همه جهت برای افشای تهدیدات امنیتی است. توسعهدهنده یا آزمایشکننده باید بداند برنامه در کجا اجرا میشود و کد برنامه، اطلاعات دقیق شبکه و سرور و تمام آدرسهای IP متصل را کامپایل کند.
تست جهش
این تست عموماً برای یافتن بهترین تکنیک های کدنویسی در آینده برای گسترش برنامه نرم افزاری استفاده می شود.
مطالب مرتبط: با برنامه نویس کامپیوتر آشنا شوید
نمونه تست جعبه باز
به خاطر داشته باشید که هدف از تست جعبه باز تایید تمام حلقه ها و شاخه های تصمیم در کد است، به این مثال ساده نگاه کنید:
</pre> void Printme (int c, int d) // Printme is a function { int I = c + d ; If (I > 0) Print ("Positive",I) ; Else Print ("Negative",I); } // End of the source code <pre>
برای تمرین استفاده از عبارات موجود در کد بالا، می توان از موارد تست جعبه باز زیر استفاده کرد:
-
C = 1، D = 5
-
C = -5، D = 3
مزایای تست جعبه باز
بسته به اندازه نرم افزار مورد ارزیابی، آزمایش اغلب یک کار پیچیده است. برای به حداقل رساندن پیچیدگی آن در هر مرحله توسعه نرم افزار یا در حین اصلاح، تست جعبه باز انجام می شود.
مزایای تست نرم افزار جعبه باز عبارتند از:
-
بهینه سازی کد برای یافتن باگ ها
-
کل کد آزمایش می شود و یک بررسی کامل ارائه می دهد
-
به راحتی خودکار می شود
-
آزمایش می تواند در اوایل چرخه عمر توسعه نرم افزار، حتی قبل از در دسترس بودن رابط کاربری گرافیکی، شروع شود
رویکرد تست جعبه باز به تولید یک محصول نرم افزاری با کیفیت کمک می کند و بی طرفانه ترین نظر را در مورد کد ارائه می دهد.