تست عملکرد نرم‌افزار چیست؟ ترجمه پرسمن

تست عملکرد یا perforamance برای آزمودن عملکرد زمان-اجرای نرم‌افزار در حیطه یک سیستم یکپارچه شده به کار می‌رود. در همه گام‌ها و مراحل فرآیند آزمون چیزی به نام performance testing دارم. حتی در سطح یونیت‌ها، در زمانی که به آزمون یونیت‌ها می‌پردازیم می‌توانیم عملکرد یا performance آن را ارزیابی کنیم. یکی از ویژگی‌هایی که تست پرفورمنس دارد این است که تست پرفورمنس سیستم زمانی صورت می‌گیرد که تمامی عناصر به صورت کامل یکپارچه شده باشند.بیایید با یک مثال دنیای واقعی قضیه را روشن کنیم. آیا خسته‌کننده تر و ناامیدوارتر از یک برنامه موبایل که برای دانلود چیزی که در برنامه‌های رقیب همتایش بیش از چند ثانیه طول نمی‌کشد، چند دقیقه زمان ببرد وجود دارد. یا چیزی زجرآورتر از این پیدا می‌کنید که وارد یک برنامه شوید و این برنامه پس از چند دقیقه تلاش برای برقراری ارتباط با یک برنامه وب بیاید بگوید «متاسفیم فعلا سرور مشغول، لطفا بعدا امتحان کنید». و آیا نگران‌کنند از یک برنامه وب که در برخی مواقع فوری پاسخ می‌دهد و در مواقع دیگر به حالت انتظار بی‌نهایت می‌رود وجود دارد. تمام این اتفاقات هر روزه در دنیای نرم‌افزار و وب روی می‌دهند و همگی مرتبط به کارایی یا عملکرد و به انگلیسی performance‌ هستند.تست عملکرد برای کشف مشکلاتی که می‌تواند ناشی از عدم منابع سمت سرور، پهنای باند نامناسب شبکه، قابلیت‌های ناکافی پایگاه داده، قابلیت‌های ناقص یا ضعیف سیستم عامل، توابع ضیف طراح شده برنامه و دیگر مشکلات سخت‌افزاری یا نرم‌افزای که می‌تواند عملکرد کاربر-سرور را خراب کند استفاده می شود.مقصود از این تست دو چیز است، اول درک نحوه پاسخگویی سیستم برای پاسخ به درخواست بارگذاری از سمت کاربر (یعنی وابسته به تعداد کاربران، تعداد تراکنش‌ها و حجم پایگاه داده سیستم چطور پاسخ می‌دهد) و دوم جمع‌آوری معیارهایی که منجر به تغییرات طراحی برای بهبود عملکرد می‌شود.تست‌های عملکرد اغلب با تست استرس همراه هستند و معمولا به ابزار دقیق سخت افزاری و نرم افزاری نیاز دارند. یعنی اغلب لازم است میزان استفاده از منابع (به عنوان مثال، سیکل‌های پردازنده) به روشی دقیق اندازه گیری شود. ابزار خارجی می‌تواند فواصل اجرا، ثبت رویدادها (مانند وقفه‌ها) در صورت وقوع و نمونه‌برداری از حالت‌های ماشین را به طور منظم نظارت کند. با ابزار دقیق، تستر می تواند موقعیت هایی را که منجر به تخریب و خرابی احتمالی سیستم می شود، کشف کند.آزمایش برخی از جنبه‌های عملکرد برنامه موبایل، حداقل همانطور که کاربر نهایی آن را درک می‌کند، دشوار است. بارگذاری شبکه، تغییرات سخت افزاری رابط شبکه و مسائل مشابه به آسانی در سطح کلاینت یا سطح مرورگر تست نمی‌شوند. تست‌های عملکرد موبایل برای شبیه‌سازی موقعیت‌های بارگذاری در دنیای واقعی طراحی شده‌اند. با افزایش تعداد کاربران همزمان برنامه، یا افزایش تعداد تراکنش های آنلاین، یا افزایش حجم داده ها (دانلود یا آپلود شده)، تست عملکرد به پاسخگویی به سوالات زیر کمک می کند:آیا زمان پاسخگویی سرور به حدی کاهش می‌یابد که برای موقیت‌های خاص و غیر قابل پذیرش مناسب باشد؟در چه نقطه‌ای (در شرایط کاربران، تراکنش‌ها و بارگیری داده) عملکرد غیر قابل قبول می‌شود؟کدام مولفه‌های سیستم مسئول ضعف بودن عملکرد برنامه هستند؟آیا کاهش عملکرد بر امنیت سیستم تاثیر می‌گذارد؟آیا قابلیت اطمینان یا تضمین برنامه با افزایش بارگیری تغییر می‌یابد؟وقتی بارگیری بیشتر از حد ظرفیت سیستم باشد چه اتفاقی روی می‌دهد؟آیا کاهش عملکرد بر درآمد شرکت تاثیر می‌نهد؟برای پاسخ به این سوالات باید دو آزمون عملکرد متفاوت انجام بشود: load testing برای بررسی بارگیری جهان واقعی در انواع سطوح و انواع ترکیبات بارگیری ۲. stress testing برای وادار کردن برنامه برای اجرا شدن در نقطه شکست جهت تعیین میزان ظرفیت برنامه.مقصود از تست بارگذاری تعیین چگونگی نحوه پاسخ برنامه موبایل و سرور به شرایط بارگذاری مختلف نشان می‌دهد. همانطور که آزمایش ادامه دارد، داده‌های متغیرهای زیر مجموعه ای از شرایط آزمون را تعریف می‌کنند:N : تعداد کاربران همزمانT تعداد تراکنش‌های آنلاین در واحد زمانD : داده بارگزاری پردازش شده توسط سرور در هر تراکنشدر هر مورد این متغیرها در حیطه عملیات معمولی سیستم تعریف می‌شود. همچنان که هر شرط آزمون اجرا می‌شود یک یا چند سنجه زیر جمع‌آوری می‌شود: میانگین پاسخ کاربر، زمان میانگین برای دانلود یک یونیت داده استاندارد شده یا میانگین زمان برای پردازش یک تراکنش. شما باید این سنجه‌ها را برای تعیین اینکه آیا یک کاهش بی‌مهابا در عملکرد می‌تواند به وسیله ترکیب خاص N T و D پیگیری شود بررسی کنید.همچنین می‌توان از تست بار برای ارزیابی سرعت اتصال توصیه‌شده برای کاربران برنامه موبایل استفاده کرد. توان عملیاتی کلی به روش زیر محاسبه می شود:P = N × T × Dبرای مثال یک سایت خبری معروف را در نظر بگیرید. در یک لحظه معین ۲۰ هزار کاربر همزمان به صورت میانگین هر دو دقیقه یکبار یک تراکنش درخواست می‌دهند. برای هر تراکنش، برنامه باید یک مقاله جدید که به طور میانگین ۳ کیلوبایت است را دانلود کند. توان عملیاتی این سایت به صورت زیر محاسبه می‌شود؟P = 20,000 × 0.5 × 3kb60 = 500 Kbytes/secبنابراین، اتصال شبکه برای سرور باید از این نرخ داده پشتیبانی کند و باید آزمایش شود تا از انجام آن اطمینان حاصل شود.تست استرس برای برنامه‌های موبایل تلاش می‌کند خطاهایی که در شرایط عملیاتی شدید رخ می دهند، پیدا کند. علاوه بر این مکانیزمی برای تعیین اینکه برنامه موبایل با کاهش تدریجی عملکردش ، امنیتش به خطر می‌افتد یا خیر، فراهم می‌کند. در میان بسیاری از اقداماتی که ممکن است شرایط شدید ایجاد کند عبارتند از: (۱) اجرای چندین برنامه موبایل در یک دستگاه، (۲) آلوده کردن نرم افزار سیستم به ویروس یا بدافزار، (۳) تلاش برای تصرف دستگاه و استفاده از آن برای انتشار هرزنامه، (۴) وادار کردن برنامه تلفن همراه به پردازش تعداد بسیار زیادی از تراکنش ها، و (۵) ذخیره مقادیر بسیار زیاد داده در دستگاه. با مواجه شدن با این شرایط، برنامه بررسی می‌شود تا اطمینان حاصل شود که سرویس‌های فشرده منابع (مانند رسانه‌های جریانی) به درستی مدیریت می‌شوند.