تست جعبه سفید

ساخت وبلاگ

آزمایش جعبه سفید رویکردی است که به آزمایش کنندگان امکان بازرسی و تأیید عملکرد داخلی یک سیستم نرم افزاری را می دهد - کد ، زیرساخت ها و ادغام با سیستم های خارجی. آزمایش جعبه سفید بخش مهمی از فرآیندهای ساخت خودکار در یک خط لوله توسعه مداوم/تحویل مداوم/تحویل مداوم (CI/CD) است.

آزمایش جعبه سفید غالباً در زمینه آزمایش امنیت برنامه های استاتیک (SAST) ارجاع می شود ، رویکردی که کد منبع یا باینری ها را بطور خودکار بررسی می کند و بازخورد در مورد اشکالات و آسیب پذیری های احتمالی را ارائه می دهد.

White box testing

آزمایش جعبه سفید با توجه به عملکرد داخلی کد ، ورودی ها را ارائه می دهد و خروجی ها را بررسی می کند

جوانب مثبت و منفی تست جعبه سفید

طرفداران منفی
1 امکان دستیابی به پوشش کامل کد برای اتوماسیون نیاز به تلاش زیادی دارد
2 خودکار سازی آسان حساس به تغییرات در پایه کد ، اتوماسیون نیاز به تعمیر و نگهداری گران دارد
3 سربار ارتباط بین آزمایش کنندگان و توسعه دهندگان را کاهش می دهد نمی توان عملکرد مورد انتظار را که در پایگاه کد وجود ندارد آزمایش کند
4 امکان بهبود مداوم کد و شیوه های توسعه را فراهم می کند از دیدگاه کاربر نمی تواند تست کند

جعبه سیاه و تست جعبه سفید

آزمایش جعبه سفید اغلب با آزمایش جعبه سیاه در تضاد است ، که شامل آزمایش یک برنامه از دیدگاه کاربر بدون هیچ گونه آگاهی از اجرای آن است:

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

تست جعبه خاکستری

آزمایش جعبه سفید شامل دانش کاملی در مورد عملکرد داخلی یک سیستم در زیر آزمایش است و جعبه سیاه شامل دانش نیست. آزمایش جعبه خاکستری ، یک سازش است - آزمایش یک سیستم با دانش جزئی از داخلی آن. این ماده بیشتر در آزمایش ادغام ، آزمایش سیستم پایان به پایان و آزمایش نفوذ استفاده می شود.

آزمایش جعبه خاکستری ورودی های توسعه دهندگان و آزمایش کنندگان را ترکیبی می کند و می تواند منجر به استراتژی های آزمایش مؤثرتری شود. این سربار مورد نیاز برای انجام آزمایشات عملکردی تعداد زیادی از مسیرهای کاربر را کاهش می دهد ، و آزمایش کنندگان را روی مسیرهایی که احتمالاً بر کاربران تأثیر می گذارد ، متمرکز می کند و یا منجر به نقص می شود.

تست جعبه خاکستری مزایای آزمایش جعبه سیاه و جعبه سفید را ترکیب می کند:

  • اطمینان از انجام آزمایشات از دیدگاه کاربر ، مانند آزمایش جعبه سیاه.
  • استفاده از دانش در داخل برای تمرکز بر روی مشکلاتی که بیشتر مهم است ، و شناسایی و رفع ضعف های داخلی سیستم ، مانند آزمایش جعبه سفید.

در دنیای تست امنیت برنامه ، رویکرد تست جعبه خاکستری تست امنیتی برنامه تعاملی (IAST) نامیده می شود. iast ترکیب می کند:

  • SAST - که با ارزیابی کد کاربردی استاتیک ، آزمایش جعبه سفید را انجام می دهد.
  • آزمایش امنیتی برنامه پویا (DAST) - که آزمایش جعبه سیاه را انجام می دهد ، با تعامل با برنامه های در حال اجرا و کشف گسل ها و آسیب پذیری ها مانند کاربر یا مهاجم خارجی.

انواع آزمایش جعبه سفید

آزمایش جعبه سفید می تواند چندین شکل داشته باشد:

  • تست واحد - آزمایشاتی که به عنوان بخشی از کد برنامه نوشته شده است ، که آزمایش هر مؤلفه همانطور که انتظار می رود کار می کند.
  • آزمایش جهش - نوعی آزمایش واحد که با تعریف تست ها ، ایجاد تغییرات کوچک و تصادفی در کد و دیدن اینکه آیا آزمایش ها هنوز هم می گذرد ، استحکام و قوام کد را بررسی می کند.
  • تست ادغام - تست هایی که به طور خاص برای بررسی نقاط ادغام بین اجزای داخلی در یک سیستم نرم افزاری یا ادغام با سیستم های خارجی طراحی شده اند.
  • آزمایش نفوذ جعبه سفید - یک هکر اخلاقی به عنوان یک خودی آگاه عمل می کند و سعی در حمله به یک برنامه مبتنی بر دانش صمیمی از کد و محیط خود دارد.
  • تجزیه و تحلیل کد استاتیک - شناسایی خودکار آسیب پذیری ها یا خطاهای برنامه نویسی در کد استاتیک ، با استفاده از الگوهای از پیش تعریف شده یا تجزیه و تحلیل یادگیری ماشین.

تست جعبه سفید روی چه چیزی تمرکز دارد؟

تست های جعبه سفید می توانند بر کشف هر یک از مشکلات زیر با کد برنامه متمرکز شوند:

  • شکاف های امنیتی و آسیب پذیری ها - بررسی اینکه آیا بهترین روشهای امنیتی هنگام کدگذاری برنامه اعمال شده است ، و آیا کد در برابر تهدیدات و سوء استفاده های امنیتی شناخته شده آسیب پذیر است.
  • مسیرهای شکسته یا ضعیف - شناسایی منطق مشروط که زائد ، شکسته یا ناکارآمد است.
  • خروجی مورد انتظار - اجرای تمام ورودی های ممکن به یک تابع برای دیدن اینکه آیا همیشه نتیجه مورد انتظار را برمی گرداند یا خیر.
  • آزمایش حلقه - بررسی حلقه های منفرد ، حلقه های هماهنگ و حلقه های تو در تو برای کارآیی ، منطق شرطی و رسیدگی صحیح متغیرهای محلی و جهانی.
  • تست جریان داده ها (DFT) - متغیرهای ردیابی و مقادیر آنها هنگام عبور از کد برای یافتن متغیرهایی که به درستی اولیه ، اعلام شده اما هرگز مورد استفاده قرار نمی گیرند ، یا نادرست دستکاری می شوند.

تکنیک های آزمایش و پوشش کد

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

در پوشش کد ، می توان تأیید کرد که چه مقدار از منطق برنامه در واقع توسط مجموعه تست واحد اجرا و آزمایش می شود ، با استفاده از مفاهیمی مانند پوشش بیانیه ، پوشش شعبه و پوشش مسیر. این مفاهیم با جزئیات بیشتر در زیر مورد بحث قرار گرفته است.

پوشش بیانیه

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

پوشش بیانیه به کشف اظهارات بلااستفاده ، شاخه های بلااستفاده ، بیانیه گمشده که توسط بخشی از کد ارجاع شده است ، کمک می کند و کد مرده از نسخه های قبلی باقی مانده است.

پوشش شاخه

پوشش شاخه کد را به شاخه های منطق مشروط نقشه می کند و تضمین می کند که هر شاخه توسط تست های واحد پوشانده می شود. به عنوان مثال ، اگر چندین جمله مشروط تو در تو وجود دارد:

A ، C و D شاخه های مشروط هستند ، زیرا آنها فقط در صورت رضایت از شرط رخ می دهند. B یک شعبه بی قید و شرط است ، زیرا همیشه پس از A. در یک رویکرد پوشش شعبه اجرا می شود ، تستر تمام شاخه های مشروط و بی قید و شرط را مشخص می کند و کد را برای اجرای هرچه بیشتر شاخه ها می نویسد.

پوشش مسیر

پوشش مسیر مربوط به مسیرهای خطی مستقل از طریق کد است. آزمایش کنندگان نمودار جریان کنترل کد را مانند مثال زیر ترسیم می کنند.

control flow diagram

نمودار جریان کنترل برای طراحی تست ها در یک روش پوشش مسیر استفاده می شود

در این مثال ، چندین مسیر ممکن از طریق کد وجود دارد:

  • 1, 2
  • 1 ، 3 ، 4 ، 5 ، 6 ، 8
  • 1 ، 3 ، 4 ، 7 ، 6 ، 8
  • و غیره.

در یک رویکرد پوشش مسیر ، واحد نویسندگان تست کننده آزمایش می کند تا هر چه بیشتر مسیر را از طریق جریان کنترل برنامه اجرا کند. هدف شناسایی مسیرهای شکسته ، زائد یا ناکارآمد است.

Imperva Application Self Protection Protection

برنامه Runtime Protection Self Protection (RASP) با اضافه کردن یک لایه اضافی از محافظت ، پس از تولید برنامه در حال تولید یا در یک محیط مرحله بندی واقع بینانه ، آزمایش جعبه سفید و جعبه سیاه را تکمیل می کند.

RASP مزایای زیر را دارد:

  • این امر به آزمایش برنامه های عمیق در طول چرخه توسعه سریع و چابک کمک می کند.
  • این آزمایش برای ورودی های پیش بینی نشده ، پاسخ سیستم را بازرسی و کنترل می کند.
  • این تجزیه و تحلیل و اطلاعات دقیق در مورد نقاط ضعف و آسیب پذیری را ارائه می دهد و به شما کمک می کند تا به سرعت در مورد حملات پاسخ دهید.

Imperva RASP این مزایا را فراهم می کند ، از برنامه های شما محافظت می شود و برای از بین بردن هرگونه خطرات اضافی ، به شما بازخورد اساسی می دهد. نیازی به تغییر در کد ندارد و به راحتی با برنامه های کاربردی و فرآیندهای DevOps ادغام می شود و شما را از حملات شناخته شده و صفر روز محافظت می کند.

علاوه بر این ، Imperva برای اطمینان از اینکه وب سایت ها و برنامه های کاربردی در دسترس هستند ، به راحتی در دسترس و ایمن هستند ، از چند لایه محافظت می کند. راه حل امنیتی برنامه Imperva شامل موارد زیر است:

استراتژی‌های اسکالپ...
ما را در سایت استراتژی‌های اسکالپ دنبال می کنید

برچسب : نویسنده : ناصر تقوایی بازدید : <-PostHit-> تاريخ : جمعه 5 خرداد 1402 ساعت: 21:15