تست و ارزیابی نرم افزارها قبل از انتشار محصول
کمپانی های بزرگ تولید کننده نرم افزار قبل از انتشار محصول خود در بازار، جهت ارزیابی سطح امنیت نرم افزارهای تولیدی خود ، اقدام به آنالیز و کشف آسیب پذیری های احتمالی موجود در آن می کنند. با این اقدام ، خطاهای احتمالی برنامه قبل از اینکه توسط مصرف کنندگان و رقبا کشف و مورد سوء استفاده قرار بگیرد، توسط خود تولید کننده کشف و اصلاح خواهد شد.
از سوی دیگر ، شرکت ها و سازمان های مصرف کننده تکنولوژی هم، جهت تست و ارزیابی سطح امنیت سرویس های نرم افزاری موجود، اقدام به بررسی آسیب پذیری های احتمالی در بستر نرم افزاری خود می کنند و از آنجا که ادامه فعالیت امن سازمان ها و شرکت ها از موارد اساسی و مهم محسوب می شود، نیاز به افرادی که توانایی ارزیابی سطح امنیت را داشته باشند امری مبرم و حیاتی بشمار می رود.
جهت آشنایی با دوره و سر فصل های ابزارهای تست نفوذ شبکه اینجا کلیک کنید.
انواع تست و ارزیابی نرم افزار
طی فرآیند تست و ارزیابی نرم افزار، روش های مختلفی وجود دارد که هر یک از آنها در یک مرحله خاص مورد استفاده قرار می گیرند. معمولا تست نرم افزار در چهار سطح اصلی و به ترتیب زیر انجام می شوند :
۱- تست واحد (Unit Testing)
۲- تست یکپارچگی (Integration Testing)
۳- تست سیستم (System Testing)
۴- تست پذیرش (Acceptance Testing)
تست واحد:
در این سطح برنامه نویس ساختار داخلی نرم افزار را به صورت مستقل مورد تست قرار می دهد و نوعی تست جعبه سفید است و به دنبال آن است که متوجه شود انجام تست چه تاثیری بر عملکرد داخلی آن می گذارد. معمولا تست واحد، توسط خود برنامهنویسان و به موازات توسعه سیستم انجام میشود. این تست بر روی ارزیابی بخشهای کوچک عملیاتی تمرکز دارد.
تست یکپارچگی:
در تست یکپارچگی یا مجتمع سازی که مهم ترین سطح از تست است، روی تعامل بین اجزا، ماژولها و اشیایی که با هم کار میکنند، تمرکز دارد. به عبارت دیگر در این تست اطمینان میدهیم بخشهای مختلف سیستم به درستی باهم تعامل دارند و دادهها و اطلاعات بین آنها درست رد و بدل میشوند و در نتیجه کل سیستم عملکرد صحیحی دارد.
تست سیستم:
تا اینجا نرم افزار طراحی شده به تنهایی درست عمل می کند و بخش های مختلف می توانند کنار یکدیگر بدون خطا فعالیت نمایند. نرمافزار خود جزئی از یک سیستم بزرگتر است و نیاز است که با عناصر دیگر این سیستم مانند سخت افزارها ارتباط برقرار کند و با آنها یکپارچه شود. پس نیاز داریم تا مطمئن شویم که سیستم به عنوان یک واحد به طور کامل عمل خواهد کرد و نیازمندیهای سیستم را برآورده میکند. این سطح از تست آخرین سطحی است که توسط توسعهدهندگان انجام می شود تا قبل از تحویل نرمافزار به کاربرنهایی برای تست از عملکرد آن مطمئن شوند. بنابراین در تست سیستم نشان میدهیم که سیستم کلیه نیازمندیهای مد نظر را تامین کرده است.
تست پذیرش:
اینجا یک سوال مطرح می گردد، که آیا نرمافزار واقعا بهطور کامل کار میکند؟ آیا تمام نیازهای فعلی کاربر نهایی را برآورده میکند؟
بنابراین تستی نیاز داریم که توسط کاربران نهایی، مشتریان و نه توسعهدهندگان صورت میگیرد و هدف آن است که کاربر مشخص کند عملیاتی که برنامه انجام میدهد نیازمندیهای آنها را برآورده میکند یا خیر.
تست پذیرش دو هدف اصلی دارد. اول اطمینان از اینکه سیستم پیادهسازی شده نیازمندیهای نرمافزاری را برآورده میکند. دوم اطمینان از اینکه سیستم نرمافزاری میتواند در دنیای واقعی، که از افراد متعدد با تواناییها، ویژگیها، شرایط و فشارکاری و زمانی مختلفی تشکیل شده است، به خوبی عمل کند.
تست پذیرش خود دارای انواع مختلفی است که به موارد زیر اشاره می کنیم :
۱- تست آلفا: این تست در سایت توسعه دهنده نرمافزار و در برخی موارد توسط کارمندان داخلی و در بعضی از موارد توسط مشتری انجام میگیرد.
۲- تست بتا: این تست در سایت مشتریان و توسط مشتریانی که از سیستم استفاده خواهند کرد صورت میگیرد و مشکلات مشاهده شده را به توسعهدهندگان گزارش میکنند.
منبع : سپیدآریا
جهت آشنایی با دوره های امنیت و هک قانونمند اینجا کلیک کنید.