در شرکتی که فعالیت میکنید، آیا تست نرمافزار را در نظر گرفتهاند؟ اگر به صورت مستقل در حال نوشتن برنامهای هستید، تست را در نظر گرفتهاید؟ شرکتها چه زمانی را برای تست برنامه ریزی میکنند؟ در پایان پروژهها؟ در محیط عملیاتی مشتری؟ یا ابتدای کار؟
پاسخ به سوالات بالا در حوزه اصول و استراتژی تست نرمافزار میباشد. اصول تست را در پست قبل بیان کردهایم ودر این بخش به استراتژی تست میپردازیم.
تست از همان ابتدای پروژه شروع میشود. بدین ترتیب که از فاز تحلیل، استراتژی تست تعیین میشود. بر اساس این استراتژی برنامههای تست (Test plan) اولیه طراحی شده و انواع تست مشخص میشود. سپس تست آغاز شده و تا هنگامیکه برنامه در محیط مشتری استقرار یابد، ادامه پیدا میکند. بنابراین تست در همه مراحل توسعه نرمافزار، همراه شما خواهد بود.
بهعبارتی میتوان گفت استراتژی تست نرمافزار یک توصیف رسمی از این است که نرمافزار چگونه تست خواهد شد. هدف استراتژی تست تعریف همه مراحل برای فرآیند تست نرمافزار است که شامل:
- برنامهریزی تست
- طراحی ابزار تست
- اجرای تست
- جمع آوری
- ارزیابی دادههای بهدست آمده باشد.
همانطور که میدانید از مطرحترین استراتژیهای تست نرمافزار میتوان به موارد زیر اشاره کرد:
- جعبه سفید
- جعبه سیاه
- جعبه خاکستری / طوسی
این تستها عموما در قالب تست نفوذپذیری (Penetration Test) مطرح میگردند، همانطور که از نامش پیداست تمام توان در این تستها برای پیداکردن حفرهها و عیوب سیستم بهکار گرفته میشود. در ادامه به طور مفصل در زمینه سه روش اشاره شده بحث میکنیم. اما پیش از این لازم است بدانیم که تفاوت روشهای مطرح شده در میزان اطلاعاتی – مربوط به نرمافزاری- است که در اختیار تستر قرار میگیرد. با این پیش مقدمه در زمینه تست نفوذ نرمافزار به سراغ یکی از این استراتژیها میرویم:
استراتژی تست جعبه سفید (White-Box Testing Strategy):
در ابتدا این سوال را مطرح کنیم که تست جعبه سفید چیست؟
نام جعبه سفید این استراتژی به نوعی نمادین میباشد، فقط در جهت هماهنگی با جعبه سیاه و حس تضاد به چنین اسمی معروف است، در غیر اینصورت باید آن را جعبه شفاف یا شیشهای نامید (Transparent-Box Testing Strategy). این استراتژی یکی از روشهای برجسته طراحی موارد تست یا آزمون نرمافزار است که هدف اصلی آن بررسی منطق درونی نرمافزار است. در واقع طی این تست روال منطقی برنامه دنبال خواهد شد. در استراتژی جعبه سفید جزئیات نرمافزار مانند کدهای منبع، مستندات طراحی و… را درون یک جعبه شیشهای گذاشتهایم، بدینصورت که میتوان محتویات داخل آن را مشاهده و از نحوه عملکرد آن آگاه شد.
افرادی که این استراتژی را پیاده سازی میکنند معمولا اعضای تیم توسعه و تیم مستقل تست هستند. این افراد توسط این استراتژی به منطق درونی و ساختار طراحی و کدنویسی نرمافزار احاطه خواهند داشت. وقتی از مستندات و جزئیات دقیق یک محصول نرمافزاری آگاه باشیم، قاعدتا از نحوه پیاده سازی آن هم آگاه خواهیم بود. بنابراین فرد یا تیم مورد نظر با آگاهی کامل از ریز جزئیات نرمافزار به بررسی آن میپردازد.
هدف از تست جعبه سفید:
اهدافی که از این استراتژی دنبال میشوند عبارتند از:
- بررسی حفرههای امنیتی
- بررسی مسیرهای مسدود یا ناقص
- بررسی ساختار پیادهسازی شده با مستندات تهیه شده
- بررسی خروجیهای مورد انتظار
- بررسی تمامی حلقهها و شروط آنها
- بررسی خط به خط کد برنامه و یا هر بخشی از آن و پوشش تست ۱۰۰ درصد
- و بالاتر و برتر از همه این اهداف، میتوان گفت بررسی مراحل در STLC (چرخه توسعه تست نرم افزار) که اشاره به تست واحد(Unit Testing)، تست یکپارچهسازی (Integration Testing) و تست سیستم (System Testing) داشت.
اعمالی که در این استراتژی انجام میشود و مزایا و معایب آن در پست بعدی مطرح میگردد.
دایگرام مناسبی بود مرسی.
با سلام
ممنون از مطالب خوبتون
من یک سوالی تو این پست برام پیش اومد.
منظورتون از این مطلب چیه؟
“این تستها عموما در قالب تست نفوذپذیری (Penetration Test) مطرح میگردند، همانطور که از نامش پیداست تمام توان در این تستها برای پیداکردن حفرهها و عیوب سیستم بهکار گرفته میشود.”
آخه تست نفوذ یک دنیایی داره برای خودش. تست نفوذ با تست نرم افزار تفاوت داره و برای یافتن آسیب پذیری های سامانه در برابر حملات انجام میشه.
ممنون میشم شفاف سازی کنید برای من.
با تشکر
تست نفوذ در واقع بر میگرده به اینکه جناب هکری که بعدا تشریف میارن چقدر تجربه در هک نرم افزار یا وب داشته باشن.
برای آگهی استخدام تست نرم افزار بهتره بگن به یک هکر با تجربه در زمینه انواع روش های نفوذ به نرم افزار نیازمندیم!!!