تفاوت بین تست عملکردی و تست غیرعملکردی با مثال

تست عملکردی و تست غیرعملکردی دو رویکرد ضروری برای اطمینان از کیفیت و قابلیت اطمینان سیستم های نرم افزاری هستند. در حالی که هدف هر دو اعتبارسنجی نرم افزار است، آنها بر جنبه های مختلف تمرکز می کنند و از روش های متمایز استفاده می کنند. در اینجا یک مقایسه جامع بین این دو وجود دارد:
تست عملکردی:
تست عملکردی بررسی می کند که آیا نرم افزار همانطور که در نظر گرفته شده عمل می کند و الزامات عملکردی مشخص شده خود را برآورده می کند. عملکردها یا ویژگیهای نرمافزار را بررسی میکند تا اطمینان حاصل شود که خروجیهای صحیح برای ورودیهای داده شده تولید میکنند.
هدف اولیه تست عملکردی، اعتبارسنجی رفتار نرم افزار کاربردی با توجه به مشخصات عملکردی ارائه شده توسط ذینفعان است.
انواع تست عملکردی:
- تست واحد: واحدها یا اجزای جداگانه نرم افزار را به صورت مجزا آزمایش می کند.
- تست یکپارچه سازی: تعامل بین اجزا یا ماژول های یکپارچه را آزمایش می کند.
- تست سیستم: کل سیستم را به عنوان یک کل آزمایش می کند تا تأیید کند که الزامات را برآورده می کند.
- تست پذیرش کاربر: تأیید می کند که آیا نرم افزار نیازهای کاربر را برآورده می کند و آماده انتشار است یا خیر.
Functional Testing
|
------------------------
| | |
Unit Testing Integration System
Testing
|
User Acceptance
Testing
مثال: ویژگی «انتقال وجوه» یک برنامه بانکی را در نظر بگیرید. آزمایش عملکردی تأیید میکند که کاربران میتوانند از یک حساب به حساب دیگر انتقال را آغاز کنند، مبالغ صحیح از حساب فرستنده کسر شده و به گیرنده اضافه میشود و پیامهای خطای مناسب برای ورودیهای نامعتبر یا وجوه ناکافی نمایش داده میشود.
روند:
- برنامه ریزی آزمون: اهداف آزمون، محدوده و استراتژی ها را بر اساس الزامات عملکردی تعریف کنید.
- طراحی تست: موارد آزمایشی را ایجاد کنید که سناریوهای مختلف را پوشش می دهد، از جمله موارد عادی و مرزی.
- اجرای تست: موارد آزمایشی را اجرا کنید، نتایج را مشاهده کنید و هرگونه انحراف از رفتار مورد انتظار را ثبت کنید.
- گزارش نقص: مشکلات شناسایی شده را با توضیحات دقیق و مراحل بازتولید گزارش کنید.
- تست رگرسیون: تست های عملکردی را مجدداً اجرا کنید تا مطمئن شوید که رفع مشکلات جدید ایجاد نکرده است.
تست غیر عملکردی:
تست غیرعملکردی جنبههای یک سیستم نرمافزاری را فراتر از الزامات عملکردی آن، با تمرکز بر ویژگیهایی مانند عملکرد، قابلیت اطمینان، قابلیت استفاده، امنیت و سازگاری ارزیابی میکند.
هدف اولیه تست غیرعملکردی ارزیابی عملکرد نرم افزار تحت شرایط خاص و اطمینان از رعایت معیارهای کیفیت مربوط به عملکرد آن است.
انواع تست های غیر عملکردی:
- ازمایش عملکرد: ارزیابی پاسخگویی سیستم، مقیاس پذیری و استفاده از منابع تحت بارهای مختلف.
- تست قابلیت اطمینان: بررسی توانایی سیستم برای عملکرد مداوم و دقیق در طول زمان.
- تست قابلیت استفاده: کاربرپسند بودن، در دسترس بودن و شهود بودن سیستم را ارزیابی کنید.
- تست امنیتی: شناسایی نقاط ضعف و آسیب پذیری در تدابیر امنیتی سیستم.
- تست سازگاری: سازگاری سیستم را با محیط ها، دستگاه ها و سیستم عامل های مختلف بررسی کنید.
Non-Functional Testing
|
-----------------
| | | | |
Performance Reliability Usability Security Compatibility
| | | | |
Load Error Handling UI Penetration Cross-
Testing Testing Testing Platform
Testing
مثال: در تست عملکرد، یک برنامه وب تحت آزمایش بارگذاری قرار می گیرد تا زمان پاسخگویی و مقیاس پذیری آن تحت ترافیک سنگین کاربر ارزیابی شود. با شبیهسازی هزاران کاربر همزمان که به برنامه دسترسی دارند، آزمایشکنندگان میتوانند گلوگاههای عملکرد را شناسایی کرده و منابع سیستم را بر اساس آن بهینهسازی کنند.
روند:
- برنامه ریزی آزمون: اهداف، محدوده و استراتژی ها را بر اساس الزامات غیر کارکردی تعریف کنید.
- طراحی تست: موارد آزمایشی را ایجاد کنید که جنبههای مختلف غیرعملکردی را پوشش میدهد، مانند سناریوهای بارگذاری برای آزمایش عملکرد یا آسیبپذیریهای امنیتی برای آزمایش امنیتی.
- اجرای تست: موارد تست را اجرا کنید و رفتار سیستم را در برابر معیارهای غیرعملکردی اندازه گیری کنید.
- تحلیل و گزارش: نتایج آزمایش را تجزیه و تحلیل کنید و یافته ها را گزارش دهید، از جمله معیارهای عملکرد یا آسیب پذیری های امنیتی.
- بهينه سازي: بهینه سازی ها یا اصلاحات را بر اساس یافته های تست برای بهبود جنبه های غیر کاربردی نرم افزار اجرا کنید.
تفاوت بین تست عملکردی و تست غیر عملکردی
-
آزمایش عملکردی بر اعتبارسنجی کاری که نرم افزار انجام می دهد تمرکز می کند و اطمینان حاصل می کند که الزامات عملکردی مشخص را برآورده می کند. تست غیرعملکردی بر عملکرد نرم افزار تمرکز دارد و ویژگی هایی مانند عملکرد، قابلیت اطمینان، قابلیت استفاده، امنیت و سازگاری را ارزیابی می کند.
-
آزمایش عملکردی عملکردها یا ویژگیهای نرمافزار را تأیید میکند، در حالی که آزمایش غیرعملکردی جنبههای گستردهتر مربوط به عملکرد و کیفیت نرمافزار را ارزیابی میکند.
-
هدف تست عملکردی این است که اطمینان حاصل شود که نرم افزار مطابق با مشخصات عملکردی مورد انتظار عمل می کند. هدف آزمایش غیرعملکردی ارزیابی و بهبود عملکرد، قابلیت اطمینان، قابلیت استفاده، امنیت و سازگاری نرم افزار است.
-
تست عملکردی از تکنیک هایی مانند تست واحد، تست یکپارچه سازی، تست سیستم و تست پذیرش استفاده می کند. تست غیرعملکردی از تکنیک هایی مانند تست عملکرد، تست قابلیت اطمینان، تست قابلیت استفاده، تست امنیت و تست سازگاری استفاده می کند.
-
در حالی که تست عملکرد تضمین می کند که نرم افزار مطابق با نیازهای مشخص شده به درستی عمل می کند، تست غیرعملکردی عملکرد، قابلیت اطمینان، قابلیت استفاده، امنیت و سازگاری نرم افزار را ارزیابی می کند تا اطمینان حاصل شود که استانداردهای کیفیت و انتظارات کاربر را برآورده می کند. هر دو نوع تست برای ارائه محصولات نرم افزاری با کیفیت بالا ضروری هستند.