آنچه در این صفحه می خوانید:
- تست نرم افزار چیست؟
- چرا تست نرم افزار ها امری ضروری است؟
- انواع تست نرم افزار
- تست خودکار (Automated Testing) چیست؟
- چه توابعی با استفاده از ابزارهای تست خودکار، خودکارسازی می شوند؟
- مزایای تست خودکار
- نرم افزارهای تست خودکار
تست نرم افزار چیست؟
تست نرم افزار تحقیقاتی است که اطلاعاتی را برای ذینفعان فراهم می آورد و به کیفیت محصول یا خدمات نرم افزاری تحت تست می پردازد. تست نرم افزار همچنین می تواند یک دیدگاه مستقل و عینی از نرم افزار ارائه دهد تا به تجارت اجازه دهد تا خطرات اجرای نرم افزار را درک کند. تکنیک های تست شامل روند اجرای یک برنامه یا اپلیکیشن با هدف پیدا کردن اشکالات نرم افزاری (خطاها یا سایر نقص ها) و تأیید صحت این محصول نرم افزاری برای استفاده می باشد.
تست نرم افزار شامل اجرای یک مؤلفه نرم افزاری یا مؤلفه سیستم برای ارزیابی یک یا چند خاصیت مورد علاقه است. به طور کلی، این خصوصیات نشانگر میزان مؤلفه یا سیستم تحت تست است:
- الزاماتی را که راهنمایی در طراحی و توسعه آن دارد.
- به درستی به انواع ورودی پاسخ می دهد.
- عملکرد خود را در مدت زمان قابل قبولی انجام می دهد.
- به اندازه کافی قابل استفاده است.
- آن را می توان در محیط های مورد نظر خود نصب و اجرا کرد.
- به نتیجه کلی تمایل ذینفعان خود می رسد.
از آنجا که تعداد تست های ممکن برای حتی مؤلفه های نرم افزار ساده نیز بی نهایت است، تمام تست های نرم افزاری از برخی استراتژی ها برای انتخاب تست هایی استفاده می کنند که برای زمان و منابع موجود امکان پذیر است. در نتیجه، تست نرم افزار به طور معمول (اما نه به طور انحصاری) سعی در اجرای برنامه یا برنامه با هدف پیدا کردن اشکالات نرم افزاری (خطاها یا نقص های دیگر) دارد. کار تست فرآیند تکراری است زیرا وقتی اشکال برطرف می شود، می تواند اشکالات عمیق تر دیگری را روشن کند یا حتی می تواند موارد جدیدی ایجاد کند. تست نرم افزار می تواند اطلاعاتی مستقل و عینی در مورد کیفیت نرم افزار و خطر عدم موفقیت آن برای کاربران یا حامیان مالی ارائه دهد.
تست نرم افزار می تواند به محض وجود نرم افزار قابل اجرا (حتی اگر جزئی یا کامل باشد) انجام شود. رویکرد کلی توسعه نرم افزار اغلب تعیین می کند که چه زمان و چگونه تست انجام می شود. به عنوان مثال، در فرآیند مرحله ای، بیشتر تست ها پس از تعریف نیازهای سیستم و سپس در برنامه های قابل تست انجام می شود. در مقابل، تحت رویکرد چابک، الزامات، برنامه نویسی و تست اغلب به طور همزمان انجام می شود.
اگرچه تست نرم افزار می تواند صحیح بودن نرم افزار را با فرض برخی فرضیه های خاص تعیین کند، آزمایش نمی تواند تمام نواقص موجود در نرم افزار را شناسایی کند. در عوض، انتقاد یا مقایسه را ارائه می دهد که وضعیت و رفتار محصول را در برابر اصول آزمایشگاهی - اصول یا مکانیسم هایی که توسط آنها ممکن است یک مشکل را تشخیص دهد، مقایسه می کند. این پیش گویی ها ممکن است شامل مشخصات فنی، قراردادها، محصولات قابل مقایسه، نسخه های قبلی در مورد همان محصول، استنتاج های مورد نظر یا مورد انتظار، انتظارات کاربر یا مشتری، استانداردهای مربوطه، قوانین قابل اجرا یا سایر معیارها باشد.
هدف اصلی آزمایش، شناسایی نقص نرم افزار است تا نقص ها کشف و اصلاح شوند. آزمایش نمی تواند مشخص کند که یک محصول در هر شرایطی به درستی کار می کند، بلکه تنها در شرایط خاص عملکرد مناسب ندارد. دامنه تست نرم افزار اغلب شامل بررسی کد و همچنین اجرای آن کد در محیط ها و شرایط مختلف و همچنین بررسی جنبه های کد است: آیا آن کاری را که قرار است انجام دهد را انجام می دهد و کاری را که باید انجام دهد را انجام می دهد؟ در فرهنگ فعلی توسعه نرم افزار، یک سازمان تست ممکن است جدا از تیم توسعه باشد. نقش های مختلفی برای تست اعضای تیم وجود دارد. اطلاعات به دست آمده از تست نرم افزار ممکن است مورد استفاده قرار گیرد برای اصلاح فرایندی که توسط آن نرم افزار ایجاد شده است.
هر محصول نرم افزاری مخاطب هدف دارد. به عنوان مثال، مخاطب برای نرم افزار بازی های ویدیویی با نرم افزار بانکی کاملاً متفاوت است. بنابراین، هنگامی که یک سازمان در یک محصول نرم افزاری سرمایه گذاری می کند، می تواند ارزیابی کند که آیا این محصول نرم افزاری برای کاربران نهایی، مخاطبان هدف، خریداران و سایر ذینفعان قابل قبول خواهد بود. تست نرم افزار به روند تلاش برای انجام این ارزیابی کمک می کند.
چرا تست نرم افزار ها امری ضروری است؟
- شناسایی خطا ها و نقص های نرم افزار در مراحل توسعه
- تضمین رضایت و اعتماد مشتری به برنامه
- اطمینان از کیفیت محصول
- ارائه امکانات با کیفیت و با هزینه کمتر تعمیرات به مشتریان و حصول نتایج بهتر
- اجرای موثر برنامه کاربردی نرم افزار یا محصول
- اطمینان حاصل کنید که برنامه نباید به هیچ گونه خرابی منجر شود، زیرا در آینده یا در مراحل بعدی توسعه می تواند بسیار گران تمام شود.
- ثابت نگه داشتن شرایط کسب وکار
انواع تست نرم افزار
آموزش تست واحد (Unit testing)
کوچکترین قسمت قابل تست نرم افزار، واحد می باشد که در طی تست واحد، هر واحد به طور جداگانه و دقیق تست می شود.
آموزش تست استاتیک (Static testing)
تکنیک تست نرم افزاری است که در آن نرم افزار بدون اجرای کد مورد تست قرار می گیرد.
آموزش تست یکپارچه سازی (Integration testing)
تست یکپارچه سازی فرآیند توسعه نرم افزاری است که واحدهای برنامه را به صورت چند گانه ترکیب و تست می کنند.
آموزش تست نفوذ (Penetration Testing)
Penetration testing یا pen testing به معنای تست نفوذ، انجام تست سیستم کامپیوتری، شبکه یا برنامه وب برای شناسایی آسیب پذیری هایی است که مهاجم می تواند از آن استفاده کند.
آموزش تست خودکار (Automated Testing)
تست خودکار تکنیک است که اپلیکیشن یا نرم افزار برای پیاده سازی کل چرخه عمر نرم افزار در زمان کم از آن استفاده و بهره وری و اثربخشی را برای نرم افزار تست فراهم می کند.
تست خودکار (Automated Testing) چیست؟
خودکارسازی تست نرم افزار با استفاده از ابزارهای تخصصی برای کنترل اجرای تست ها و مقایسه نتایج واقعی با نتایج مورد انتظار می باشد. معمولا تست های رگرسیون، که اقدامات تکراری هستند، به صورت خودکار انجام می شود. ابزار تست نه تنها به ما در انجام تست های رگرسیون کمک می کند، بلکه به ما کمک می کند تا تولید داده ها، نصب محصول، تعامل GUI، لاگ کردن نقص ها و غیره را به طور خودکار انجام دهیم.
تست خودکار یک تکنیک می باشد که یک اپلیکیشن یا نرم افزار برای پیاده سازی کل چرخه عمر نرم افزار در زمان کم از آن استفاده و بهره وری و اثربخشی را برای نرم افزار تست فراهم می کند. تست خودکار یک تکنیک اتوماتیک است که تست کننده ها آن را مستقیما می نویسند و از نرم افزار مناسب برای تست نرم افزار استفاده می کنند. اساسا یک پروسه خودکار یک فرایند دستی است. مانند تست رگرسیون، تست اتوماسیون نیز برای تست برنامه استفاده می شود. به عبارت دیگر، تست خودکار با استفاده از ابزارهای خودکارسازی برای نوشتن و اجرای موارد تست استفاده می شود، در حالیکه در اجرای یک مجموعه تست خودکار هیچ دخالت دستی لازم نیست. معمولا، تسترها اسکریپت های تست و موارد تست را با استفاده از ابزار خودکارسازی بکار می گیرند و سپس آنها را به سوئیت های تست گروه بندی می کند. هدف اصلی تست خودکار، افزایش کارایی تست و توسعه ارزش نرم افزاری است.
چه توابعی با استفاده از ابزارهای تست خودکار، خودکارسازی می شوند؟
درست است که همه چیز با استفاده از فرآیند تست خودکار، خودکارسازی نمی شود، چیزهایی که به صورت خودکار درمی آیند: فرم های ورود، فرم های ثبت نام و محلی که در آن دسترسی همزمان شماری از کاربران به نرم افزار به طور همزمان به صورت خودکار باشد. علاوه بر این، تمام آیتم های GUI، ارتباط با پایگاه های داده، اعتبارسنجی زمینه و بسیاری دیگر می توانند به طور خودکار و نه به صورت دستی مورد تست قرار گیرند.
مزایای تست خودکار
- افزایش بهره وری
- صرفه جویی در هزینه
- ارتقای کیفیت نرم افزار
- کاهش زمان تست
- پشتیبانی از برنامه های مختلف
- افزایش پوشش تست
- کاهش کار تکراری
- انسجام بیشتر
نرم افزارهای تست خودکار
- HP Quick Test Professional
- Selenium
- Visual Studio Test Professional
- WATIR
- IBM Rational Functional Tester
- TestComplete
- Testing Anywhere
- WinRunner
- LaodRunner
- SilkTest