تست نرم افزار یا تست نرم افزار به عنوان تست نرم افزار نیز شناخته می شود.
تست نرم افزار در درجه اول یک فرآیند بزرگ است که از چندین فرآیند به هم پیوسته تشکیل شده است. هدف اصلی تست نرم افزار اندازه گیری یکپارچگی نرم افزار به همراه کامل بودن آن از نظر الزامات اساسی آن است. تست نرم افزار شامل بررسی و تست نرم افزار از طریق فرآیندهای تست مختلف است. اهداف این فرآیندها ممکن است شامل موارد زیر باشد:
تأیید کامل بودن نرم افزار در برابر الزامات کاربردی/تجاری
شناسایی اشکالات / خطاهای فنی و اطمینان از اینکه نرم افزار بدون خطا است
ارزیابی قابلیت استفاده، عملکرد، امنیت، بومی سازی، سازگاری و نصب
نرم افزار تست شده باید تمام تست ها را پشت سر بگذارد تا کامل یا مناسب برای استفاده باشد. برخی از انواع مختلف روش های تست نرم افزار عبارتند از تست جعبه سفید، تست جعبه سیاه و تست جعبه خاکستری. علاوه بر این، نرم افزار را می توان به طور کلی، در اجزاء/واحدها یا در یک سیستم زنده آزمایش کرد.
Black Box Testing یک تکنیک تست نرم افزار است که بر تجزیه و تحلیل عملکرد نرم افزار با توجه به عملکرد داخلی سیستم تمرکز دارد. تست جعبه سیاه به عنوان روشی برای تجزیه و تحلیل نیازهای مشتری، مشخصات و استراتژی های طراحی سطح بالا توسعه داده شد.
یک آزمایشکننده تست جعبه سیاه مجموعهای از اجرای کد معتبر و نامعتبر و شرایط ورودی را انتخاب میکند و پاسخهای خروجی معتبر را بررسی میکند.
تست جعبه سیاه به عنوان تست عملکردی یا تست جعبه بسته نیز شناخته می شود.
موتور جستجو یک مثال ساده از یک برنامه کاربردی است که در معرض آزمایش جعبه سیاه قرار دارد. کاربر موتور جستجو متن را در نوار جستجوی یک مرورگر وب وارد می کند. سپس موتور جستجو نتایج داده های کاربر (خروجی) را مکان یابی و بازیابی می کند.
مزایای تست جعبه سیاه عبارتند از:
تست جعبه سیاه نیز دارای معایبی است که در زیر می توان به موارد زیر اشاره کرد:
در طول تست جعبه سفید، کد با مقادیر ورودی از پیش انتخاب شده برای اعتبارسنجی مقادیر خروجی از پیش انتخاب شده اجرا می شود. آزمایش جعبه سفید اغلب شامل نوشتن کد خرد (یک قطعه کدی است که برای جایگزینی یک ویژگی خاص استفاده میشود. یک خرد میتواند رفتار کدهای موجود را شبیهسازی کند، مانند رویهای در یک ماشین راه دور.) و همچنین درایورها.
مزایای تست جعبه سفید عبارتند از:
معایب عبارتند از:
تست واحد بخشی از چرخه عمر توسعه نرم افزار (SDLC) است که در آن یک روش آزمایش جامع به صورت جداگانه برای کوچکترین بخش های یک برنامه نرم افزاری برای تناسب یا رفتار مورد نظر اعمال می شود.
آزمون واحد یک روش اندازه گیری و ارزیابی کیفیت است که در اکثر فعالیت های توسعه نرم افزار سازمانی اعمال می شود. به طور کلی، یک آزمون واحد ارزیابی می کند که چگونه کد نرم افزار با هدف کلی نرم افزار/برنامه/برنامه مطابقت دارد و چگونه مناسب بودن آن بر سایر واحدهای کوچکتر تأثیر می گذارد. تست های واحد را می توان به صورت دستی - توسط یک یا چند توسعه دهنده - یا از طریق یک راه حل نرم افزاری خودکار انجام داد.
در طول آزمایش، هر واحد از برنامه یا رابط اصلی جدا می شود. تستهای واحد معمولاً پس از توسعه و قبل از استقرار انجام میشوند، بنابراین یکپارچهسازی و تشخیص زودهنگام مشکل را تسهیل میکنند. اندازه یا محدوده یک واحد بسته به زبان برنامه نویسی، برنامه نرم افزاری و اهداف آزمون متفاوت است.
تست عملکردی یک فرآیند آزمایشی است که در توسعه نرمافزار استفاده میشود، جایی که نرمافزار برای اطمینان از مطابقت با تمام الزامات آزمایش میشود. این روشی برای بررسی نرم افزار برای اطمینان از برخورداری از تمام عملکردهای مورد نیاز است که در الزامات عملکردی آن مشخص شده است.
آزمایش عملکردی عمدتاً برای تأیید اینکه یک نرم افزار همان خروجی مورد نیاز کاربر نهایی یا تجارت را ارائه می دهد استفاده می شود. به طور معمول، تست عملکردی شامل ارزیابی و مقایسه هر عملکرد نرم افزار با الزامات تجاری است. نرمافزار با دادن ورودیهای مرتبط به آن تست میشود تا بتوان خروجی را ارزیابی کرد تا ببیند که چگونه با الزامات اولیه آن مطابقت دارد، با آن ارتباط دارد یا با آن تفاوت دارد. علاوه بر این، تستهای عملکردی قابلیت استفاده نرمافزار را نیز بررسی میکنند، به عنوان مثال اطمینان حاصل میکنند که عملکردهای ناوبری مطابق با نیاز کار میکنند.
تست رگرسیون نوعی تست نرم افزاری است که برای تعیین اینکه آیا مشکلات جدید نتیجه تغییرات نرم افزار هستند یا خیر استفاده می شود.
قبل از اعمال تغییر، یک برنامه تست می شود. پس از اعمال تغییر، برنامه در مناطق انتخاب شده مجدداً آزمایش می شود تا تشخیص دهد که آیا تغییر باگ یا مشکلات جدیدی ایجاد کرده است یا اینکه آیا تغییر واقعی به هدف مورد نظر خود عمل کرده است.
تست رگرسیون برای برنامه های کاربردی نرم افزاری بزرگ ضروری است، زیرا اغلب دشوار است که بدانیم آیا تغییر بخشی از یک مشکل مشکل جدیدی را برای بخش دیگری از برنامه ایجاد کرده است. به عنوان مثال، تغییر فرم درخواست وام بانکی می تواند منجر به شکست گزارش تراکنش ماهانه شود. در بیشتر موارد، مشکلات ممکن است نامرتبط به نظر برسند، اما در واقع میتوانند باعث ناامیدی توسعهدهندگان اپلیکیشن شوند.
موقعیت های دیگری که نیاز به آزمایش رگرسیون دارند عبارتند از تشخیص اینکه آیا تغییرات خاصی به یک هدف تعیین شده دست می یابند یا آزمایش خطرات جدید مرتبط با مسائلی که پس از یک دوره بدون مشکل دوباره ظاهر می شوند.
تست رگرسیون مدرن در درجه اول از طریق ابزارهای تست تجاری تخصصی انجام می شود که از نرم افزارهای موجود عکس های فوری می گیرند و پس از اعمال یک تغییر خاص با هم مقایسه می شوند. تقریباً غیرممکن است که آزمایش کننده های انسانی همان وظایف را به همان اندازه که آزمایش کننده های نرم افزار خودکار انجام دهند، انجام دهند. این امر به ویژه در مورد برنامه های نرم افزاری بزرگ و پیچیده در محیط های بزرگ فناوری اطلاعات مانند بانک ها، بیمارستان ها، شرکت های تولیدی و خرده فروشان بزرگ صادق است.
تست استرس به آزمایش نرمافزار یا سختافزار برای تعیین اینکه آیا عملکرد آن در شرایط شدید و نامطلوب رضایتبخش است یا خیر، اشاره دارد، که میتواند در نتیجه ترافیک سنگین شبکه، بارگذاری فرآیند، آندکلاک، اورکلاک، و نیاز به حداکثر استفاده از منابع رخ دهد.
اکثر سیستم ها با فرض شرایط عملیاتی عادی توسعه می یابند. بنابراین، حتی اگر از یک حد تجاوز شود، اگر سیستم در طول توسعه تست استرس شود، خطاها ناچیز است.
تست استرس در زمینه های زیر استفاده می شود:
تست خودکار (اتوماسیون تست نرم افزار) رویکردی برای تست کد است که از ابزارهای نرم افزاری ویژه ای استفاده می کند که آزمایش ها را به طور خودکار اجرا می کند و سپس نتایج واقعی آزمون را با نتایج مورد انتظار مقایسه می کند.
تست خودکار نقش مهمی در تحویل مداوم (CD)، یکپارچه سازی مداوم (CI)، DevOps و DevSecOps ایفا می کند. مزایای اصلی تست خودکار عبارتند از:
در توسعه نرمافزار، انجام تستهای خودکار در طول فرآیند ساخت برای اطمینان از عاری بودن یک برنامه از خطاهای ساخت و انجام عملکرد مورد نظر خود بسیار مفید است.
صرف زمان برای خودکارسازی تست نرم افزار در نهایت با کاهش خطر اینکه تغییر کد عملکرد موجود را از بین ببرد، در زمان توسعه دهندگان صرفه جویی می کند.
تست مرحله بسیار مهمی در فرآیند توسعه است. اطمینان حاصل می کند که همه اشکالات برطرف شده اند و محصول، نرم افزار یا سخت افزار، مطابق با هدف یا نزدیک به عملکرد مورد نظر خود عمل می کند. تست خودکار، به جای تست دستی، برای ارائه مداوم نرم افزار مقرون به صرفه که نیازهای کاربر را به موقع و با حداقل نقص برآورده می کند، ضروری است.
تست دستی هنوز در زمانهای مختلف در طول توسعه انجام میشود، اما این کار بیشتر توسط توسعهدهندگان یا خود مهندسان سختافزار انجام میشود تا به سرعت ببینند آیا تغییراتی که ایجاد کردهاند تأثیر مطلوبی داشته است یا خیر.
Ercole Palmeri
Coveware توسط Veeam به ارائه خدمات پاسخگویی به حوادث اخاذی سایبری ادامه خواهد داد. Coveware قابلیتهای پزشکی قانونی و اصلاحی را ارائه میدهد…
تعمیر و نگهداری پیش بینی شده با رویکردی نوآورانه و پیشگیرانه برای مدیریت کارخانه، بخش نفت و گاز را متحول می کند.…
CMA انگلستان در مورد رفتار Big Tech در بازار هوش مصنوعی هشداری صادر کرده است. آنجا…
فرمان "خانه های سبز" که توسط اتحادیه اروپا برای افزایش بهره وری انرژی ساختمان ها تدوین شده است، روند قانونی خود را با…