کدنویسی میکنم نه به این خاطر که کسب درآمد کنم یا توسط دیگران تحسین بشم،فقط به این خاطر که کدنویسی باحاله.
تست های غیر عملکردی نرم افزار (Non-Functional Test)
انواع تست های نرم افزار:
طبقه بندی تست ها در حوزه نرم افزار در کتابها و مراجع مختلف به صورت کاملا متفاوت بیان شده است.در اینجا ما تنها به دو نوع دسته بندی عملکردی و غیر عملکردی تستها می پردازیم.
در تست عملکردی نرم افزار، کاربر نهایی، کارکرد و عملکرد برنامه را جهت اطمینان از صحت رفتار آن بررسی می کند.بررسی و توضیحات کامل تست عملکردی نرم افزار در یک مطلب جداگانه بیان می شود و در این قسمت فقط به بیان توضیحات در مورد تست غیرعملکردی پرداخته می شود.
تست غیر عملکردی به عنوان یک نوع آزمایش نرم افزاری برای بررسی جنبه های غیر عملکردی برنامه همچون performance usability، reliability و غیره به کار می رود.به عبارت دیگر این تست برای بررسی آمادگی یک سیستم در موارد غیر کارکردی همچون امنیت و مقیاس پذیری و در دسترس بودن و... طراحی شده است که هرگز با آزمایش عملکردی برطرف نمی شوند.
تست غیر کارکردی به همان اندازه تست عملکردی مهم است و رضایت مشتری را تحت تأثیر قرار می دهد.
یکی از ویژگی های تست غیر عملکردی این است که باید قابل اندازه گیری باشد ، بنابراین جایی برای توصیف ذهنی مانند خوب ، بهتر ، بهترین و غیره وجود ندارد.
انواع تست غیرعملکردی
لیست فوق کامل نیست زیرا بیش از 100 نوع تست وجود دارد و تنها متداول ترین انواع تستهای غیر عملکردی آورده شده است.
1) امنیت(Security):
از طریق Security Testing نحوه حفاظت از سیستم در برابر حملات عمدی و ناگهانی منابع داخلی و خارجی مشخص می شود.
2) قابلیت اطمینان(Reliability):
میزان عملکرد هر سیستم نرم افزاری بطور مداوم و بدون خرابی توسط تست قابلیت اطمینان انجام می شود.
3) زنده ماندن(Survivability):
توسط Recovery Testing بررسی می شود که سیستم نرم افزار در صورت خرابی، چگونه به کار خود ادامه می دهد و خود را بازیابی می کند.
4) در دسترس بودن(Availability):
این تست مربوط به زمانی است که می خواهید بررسی کنید سیستم تا چه اندازه استفاده می شود و در صورت نیاز کاربران به آن تا چه حد در دسترس است و همچنین برای اینکه حوادث خرابی را به حداقل برسانید و اینکه بررسی کنید پیش از بازگشت سیستم به حالت نرمال ، چه مدت زمان تعمیر پیش بینی می شود.
5) قابلیت استفاده(Usability):
سهولت کاربر برای یادگیری ، کار کردن ، آماده سازی ورودی ها و دریافت خروجی ها توسط تست قابلیت استفاده بررسی می شود.
6) مقیاس پذیری(Scalability):
برای بررسی اینکه هر برنامه نرم افزاری می تواند ظرفیت پردازش خود را برای پاسخگویی به افزایش تقاضا گسترش دهد.
7) قابلیت همکاری(Interoperability):
این تست غیر عملکردی تعامل و ارتباط سیستم نرم افزاری را با سیستم های نرم افزاری دیگر بررسی می کند.
8) کارایی(Efficiency):
میزانی که هر سیستم نرم افزاری توانایی تحمل ظرفیت ، کمیت و زمان پاسخگویی را دارد.
9) انعطاف پذیری(Flexibility):
این اصطلاح به سهولت کارکرد برنامه در پیکربندی های مختلف سخت افزاری و نرم افزاری اطلاق می شود. مانند حداقل RAM ، CPU مورد نیاز است.
10) قابلیت حمل(Portability):
انعطاف پذیری نرم افزار برای انتقال از سخت افزار یا محیط نرم افزار فعلی آن به سخت افزار یا محیط نرم افزار دیگر.
11) قابلیت استفاده مجدد(Reusability):
منظور بخشی از سیستم نرم افزاری است که می تواند در برنامه دیگری استفاده شود.
هیچ نگران نباشید و توجه داشته باشید که همه انواع آزمایشات برای همه پروژه ها اعمال نمی شوند بلکه به ماهیت و دامنه پروژه بستگی دارند.
نمونه موارد آزمایشی تست غیر کارکردی
در جدول زیر یک نمونه آزمایشی از تست غیرعملکردی جهت آشنایی آورده شده است:
مطلبی دیگر از این انتشارات
آموزش نصب و راهنمای کاربری SonarQube با Maven
مطلبی دیگر از این انتشارات
ایجاد سرویس مجازی(Mock) با SoapUI و ReadyAPI
مطلبی دیگر از این انتشارات
High Availability یا HA چیست؟