آموزش تست خودکار (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
آیا این نوشته را دوست داشتید؟
linkedin-advanced-appium

آموزش پیشرفته Appium


Appium، استاندارد جهانی تست اتوماسیون اپلیکیشن های موبایل است. اما می تواند کارهای خیلی بیشتری هم انجام دهد. برای صرفه جویی در وقت، می توانید برنامه ه...

1399/01/10 215 بازدید
linkedin-robot-framework-test-automation-level-2

آموزش خودکارسازی تست Robot Framework - بخش 2


در این دوره تکنیک های خودکارسازی تست سطح متوسط و پیشرفته را برای Robot Framework یاد بگیرید. همچنین بیاموزید که چگونه کتابخانه های سفارشی Robot Framew...

1398/08/19 420 بازدید
linkedin-robot-framework-test-automation-sauce-labs

آموزش خودکارسازی تست Robot Framework - بخش 1 - Sauce Labs


این دوره، آنچه را که باید بدانید برای به دست آوردن یک اسکریپت موجود Robot Framework Selenium برای اجرای روی ابر مرورگر Sauce Labs بدانید به اشتراک می ...

1398/08/19 393 بازدید
packtpub-learn-automation-testing-with-java-and-selenium-webdriver

یادگیری تست اتوماسیون با جاوا و Webdriver سلنیوم (Selenium)


در این دوره جامع بطور کامل با اصول زبان برنامه نویسی جاوا از جمله متغیرها، عبارات شرطی، وراثت، شیء گرایی و غیره آشنا شده و بعد به سراغ انجام تست اتوما...

1398/07/22 1335 بازدید
linkedin-api-test-automation-with-soapui

اتوماسیون تست API با SoapUI


در این دوره با اصول استفاده از SoapUI برای ساخت آزمون جدید، انجام تست بار و امنیت، نحوه یکپارچه سازی SoapUI با روند بیلد بر اساس داکر و موارد دیگر آشن...

1398/07/06 860 بازدید زیرنویس دارد
pluralsight-automated-tests-in-java-with-fluent-interface-using-webdriver-selenium

تست خودکار در جاوا با Fluent Interface با استفاده از WebDriver Selenium


در این دوره، شما توانایی نوشتن تست های UI را به روشی کاملا متفاوت خواهید آموخت . روشی که تست های UI مفید و کاربر پسند را برایتان می سازد. در ابتدا Pa...

1398/07/03 775 بازدید
packtpub-building-ui-automation-test-frameworks-with-selenium-webdriver

ساخت فریمورک تست اتوماسیون UI با Selenium WebDriver


در این دوره با ساخت چارچوبی برای خودکار سازی تست رابط کاربری آشنا خواهید شد. علاوه برآن درباره اصول طراحی نرم افزار و توسعه چارچوب نیز آموزش می بینید....

1398/06/21 786 بازدید
pluralsight-introduction-to-net-testing-with-nunit-3

مقدمه ای بر تست دات نت با NUnit 3


در این دوره به صورت حرفه‌ای و کامل با فرآیند ساخت و انجام تست در محیط دات نت آشنا خواهید شد. در ادامه درباره‌ی دلایل انجام تست خودکار، نحوه انجام آن د...

1398/06/13 796 بازدید
packtpub-selenium-fundamentals

آموزش اصول سلنیوم


شما یاد می گیرید که چگونه یک گزارش تست را تحلیل کنید، ردیابی خطاهای زمان بندی، و مسائل واقعی را از تست های "flaky" جدا کنید. همچنین یاد می گیرید که چگ...

1398/06/10 984 بازدید
linkedin-robot-framework-test-automation-jenkins-ci-and-git-version-control

آموزش خودکارسازی تست Robot Framework - آشنایی با Jenkins CI و Git Version Control


آموزش ویدئویی و رایگان خودکارسازی تست Robot Framework به کمک گیت و Jenkins...

1398/01/16 2027 بازدید
pluralsight-getting-started-with-testng

شروع کار با TestNG


تست های اتوماتیک کلید تضمین کیفیت برای نرم افزار هستند. یاد بگیرید چگونه هر نوع تست واحد، کامپوننت و یا رابط گرافیکی بنویسید. فریمورک TestNG یک ابزار...

1397/10/23 1003 بازدید
pluralsight-automated-testing-with-mstest-v2

آموزش تست خودکار با MSTest V2


فریمورک MSTest V2 تکامل یافته فریمورک تست "in-box" از مایکروسافت  است و چندسکویی و متن باز می باشد. در این دوره با نحوه استفاده از فریمورک برای ایجاد ...

1397/09/01 769 بازدید
pluralsight-maximizing-quality-with-visual-studio-team-services-test-hub

آموزش به حداکثر رساندن کیفیت با Visual Studio Team Services Test Hub


مفهوم کیفیت در هر پروژه نرم افزاری، مسلما یکی از مهمترین مفاهیم می باشد. در این دوره، مهارت های لازم، کیفیت نرم افزار و اجرای تست، موضوعات پیشرفته مان...

1397/08/20 681 بازدید
packtpub-beginning-selenium-webdriver-testing-in-python-video

آشنایی با تست Selenium WebDriver در پایتون


این دوره، کاربران پایتون را با Selenium WebDriver آشنا می کند. این دوره به کاربران کمک خواهد کرد زمان صرف شده در تست کد نوشته شده در پایتون را کاهش ده...

1397/07/12 1071 بازدید
packtpub-mastering-selenium-webdriver-3-x-test-automation-video

آموزش تسلط بر خودکارسازی تست با Selenium WebDriver 3.X


آیا تا به حال با این مسئله رو به رو شده اید که تست شما بدون هیچ دلیل واضحی با شکست مواجه می شود یا آیا علاقه مند به یادگیری نوشتن تست های مقاوم هستید؟...

1397/07/10 1181 بازدید
packtpub-cucumber-with-java-build-automation-framework-in-less-code-video

آموزش تست خودکار با Cucumber و Java 


با نوشتن کدهای زیاد در توسعه فریمورک خودکار خداحافظی کنید و به Cucumber خوش آمد بگویید. Cucumber یک ابزار برای صنعت QA است که در حال توسعه فریمورک های...

1397/05/27 1281 بازدید
lynda-android-espresso-essential-training

آموزش اصولی Android Espresso


تست برای ارائه نرم افزار با کیفیت بالا ضروری است. Espresso ابزار انتخابی برای بسیاری از توسعه دهندگان اندروید است که نیاز به تست منطق و UI اپلیکیشن ها...

1397/01/22 1277 بازدید زیرنویس دارد
1396/11/19 676 بازدید زیرنویس دارد
آموزش-تست-خودکار-نرم-افزار-automated-testing

آموزش تست خودکار نرم افزار Automated Testing


در این دوره آموزشی شما با نحوه تست خودکار نرم افزار آشنا می شوید.این کار به شما کمک می کند تا در کمترین زمان باگ های نرم افزار خود را پیدا کنید. این ...

1396/10/28 6551 بازدید