آموزش تست نرم افزار

آموزش تست نرم افزار

آنچه در این صفحه می خوانید:

تست نرم افزار چیست؟

تست نرم افزار تحقیقاتی است که اطلاعاتی را برای ذینفعان فراهم می آورد و به کیفیت محصول یا خدمات نرم افزاری تحت تست می پردازد. تست نرم افزار همچنین می تواند یک دیدگاه مستقل و عینی از نرم افزار ارائه دهد تا به تجارت اجازه دهد تا خطرات اجرای نرم افزار را درک کند. تکنیک های تست شامل روند اجرای یک برنامه یا اپلیکیشن با هدف پیدا کردن اشکالات نرم افزاری (خطاها یا سایر نقص ها) و تأیید صحت این محصول نرم افزاری برای استفاده می باشد.

تست نرم افزار شامل اجرای یک مؤلفه نرم افزاری یا مؤلفه سیستم برای ارزیابی یک یا چند خاصیت مورد علاقه است. به طور کلی، این خصوصیات نشانگر میزان مؤلفه یا سیستم تحت تست است:

  • الزاماتی را که راهنمایی در طراحی و توسعه آن دارد.
  • به درستی به انواع ورودی پاسخ می دهد.
  • عملکرد خود را در مدت زمان قابل قبولی انجام می دهد.
  • به اندازه کافی قابل استفاده است.
  • آن را می توان در محیط های مورد نظر خود نصب و اجرا کرد.
  • به نتیجه کلی تمایل ذینفعان خود می رسد.

از آنجا که تعداد تست های ممکن برای حتی مؤلفه های نرم افزار ساده نیز بی نهایت است، تمام تست های نرم افزاری از برخی استراتژی ها برای انتخاب تست هایی استفاده می کنند که برای زمان و منابع موجود امکان پذیر است. در نتیجه، تست نرم افزار به طور معمول (اما نه به طور انحصاری) سعی در اجرای برنامه یا برنامه با هدف پیدا کردن اشکالات نرم افزاری (خطاها یا نقص های دیگر) دارد. کار تست فرآیند تکراری است زیرا وقتی اشکال برطرف می شود، می تواند اشکالات عمیق تر دیگری را روشن کند یا حتی می تواند موارد جدیدی ایجاد کند. تست نرم افزار می تواند اطلاعاتی مستقل و عینی در مورد کیفیت نرم افزار و خطر عدم موفقیت آن برای کاربران یا حامیان مالی ارائه دهد.

تست نرم افزار می تواند به محض وجود نرم افزار قابل اجرا (حتی اگر جزئی یا کامل باشد) انجام شود. رویکرد کلی توسعه نرم افزار اغلب تعیین می کند که چه زمان و چگونه تست انجام می شود. به عنوان مثال، در فرآیند مرحله ای، بیشتر تست ها پس از تعریف نیازهای سیستم و سپس در برنامه های قابل تست انجام می شود. در مقابل، تحت رویکرد چابک، الزامات، برنامه نویسی و تست اغلب به طور همزمان انجام می شود.

اگرچه تست نرم افزار می تواند صحیح بودن نرم افزار را با فرض برخی فرضیه های خاص تعیین کند، آزمایش نمی تواند تمام نواقص موجود در نرم افزار را شناسایی کند. در عوض، انتقاد یا مقایسه را ارائه می دهد که وضعیت و رفتار محصول را در برابر اصول آزمایشگاهی - اصول یا مکانیسم هایی که توسط آنها ممکن است یک مشکل را تشخیص دهد، مقایسه می کند. این پیش گویی ها ممکن است شامل مشخصات فنی، قراردادها، محصولات قابل مقایسه، نسخه های قبلی در مورد همان محصول، استنتاج های مورد نظر یا مورد انتظار، انتظارات کاربر یا مشتری، استانداردهای مربوطه، قوانین قابل اجرا یا سایر معیارها باشد.

هدف اصلی آزمایش، شناسایی نقص نرم افزار است تا نقص ها کشف و اصلاح شوند. آزمایش نمی تواند مشخص کند که یک محصول در هر شرایطی به درستی کار می کند، بلکه تنها در شرایط خاص عملکرد مناسب ندارد. دامنه تست نرم افزار اغلب شامل بررسی کد و همچنین اجرای آن کد در محیط ها و شرایط مختلف و همچنین بررسی جنبه های کد است: آیا آن کاری را که قرار است انجام دهد را انجام می دهد و کاری را که باید انجام دهد را انجام می دهد؟ در فرهنگ فعلی توسعه نرم افزار، یک سازمان تست ممکن است جدا از تیم توسعه باشد. نقش های مختلفی برای تست اعضای تیم وجود دارد. اطلاعات به دست آمده از تست نرم افزار ممکن است مورد استفاده قرار گیرد برای اصلاح فرایندی که توسط آن نرم افزار ایجاد شده است.

هر محصول نرم افزاری مخاطب هدف دارد. به عنوان مثال، مخاطب برای نرم افزار بازی های ویدیویی با نرم افزار بانکی کاملاً متفاوت است. بنابراین، هنگامی که یک سازمان در یک محصول نرم افزاری سرمایه گذاری می کند، می تواند ارزیابی کند که آیا این محصول نرم افزاری برای کاربران نهایی، مخاطبان هدف، خریداران و سایر ذینفعان قابل قبول خواهد بود. تست نرم افزار به روند تلاش برای انجام این ارزیابی کمک می کند.

چرا تست نرم افزار ها امری ضروری است؟

  • شناسایی خطا ها و نقص های نرم افزار در مراحل توسعه
  • تضمین رضایت و اعتماد مشتری به برنامه
  • اطمینان از کیفیت محصول
  • ارائه امکانات با کیفیت و با هزینه کمتر تعمیرات به مشتریان و حصول نتایج بهتر
  • اجرای موثر برنامه کاربردی نرم افزار یا محصول
  • اطمینان حاصل کنید که برنامه نباید به هیچ گونه خرابی منجر شود، زیرا در آینده یا در مراحل بعدی توسعه می تواند بسیار گران تمام شود.
  • ثابت نگه داشتن شرایط کسب وکار

چگونه می توانیم تستر نرم افزار باشیم؟

تست کنندگان نرم افزار نقش مهمی در توسعه برنامه دارند. آنها کارشناسان تضمین کیفیت هستند که برنامه هایی را برای رفع اشکالات، عملکرد ضعیف و مشکلات رابط کاربری بررسی می کنند. برای انجام این کار، آنها انواع تست ها - اهمیت، عملکرد، وظیفه ای، مقیاس پذیری، پذیرش کاربر - را در مراحل مختلف چرخه عمر نرم افزار اجرا می کنند. از آنجا که تست نرم افزار برای کیفیت و قابلیت استفاده محصول نهایی از اهمیت بالایی برخوردار است، تست کنندگان معمولاً در مرحله برنامه ریزی و طراحی قرار می گیرند و اغلب در کل پشتیبانی پس از انتشار درگیر می شوند. بیشتر تستر ها در تیم هایی کار می کنند که نرم افزار فروشنده را توسعه می دهند. امروزه نرم افزارهای زیادی از طریق تیم های DevOps (توسعه + عملیات) تحت فشار قرار می گیرند، جایی که توسعه، تست و تحویل با استفاده از فریمورک های Agile، Lean یا Scrum در حلقه مداوم قرار دارند.

تست کننده نرم افزار برای اکثر پروژه های عمرانی قهرمان ستایش نشده است. آنها کاربران نهایی را از کار با نرم افزارهای بسیار باگ دار یا برنامه های کاربردی که به خوبی کار نمی کنند، نجات می دهد، تا حد زیادی تماس های پشتیبانی فنی از مشتریان ناامید را کاهش می دهد. آنها همچنین با اطمینان از عدم وجود اشکالات مهم و ضروری که مانع از کارکرد نرم افزار بصورت طراحی و تبلیغات می شوند، باعث می شوند تیم توسعه و فروش نرم افزار به نظر خوب برسند.

آموزش اساسی، پیش زمینه و مهارت لازم برای تستر نرم افزار

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

صرف نظر از نحوه آماده شدن برای حرفه تست نرم افزار، در اینجا مهارت هایی که باید داشته باشید یا برای توسعه برنامه ریزی می کنید وجود دارد:

  • برنامه ها و مراحل تست خودکار و دستی، ایجاد و مستند سازی، اجرای تست ها، تجزیه و تحلیل نتایج و گزارش مشکلات و ناهنجاری های تست
  • انجام تست نرم افزار در کلیه مراحل چرخه عمر نرم افزار طراحی، توسعه، تست، انتشار، حفظ
  • روش های مختلف توسعه مانند Agile و Scrum و سیستم عامل ها یا محیط های تست نرم افزار را درک کنید.
  • داشتن دانش کاملی از چندین ابزار تست
  • مسلط به یونیکس، لینوکس و یا ویندوز و همچنین ابزارهای برنامه نویسی و خط فرمان باشید.
  • چند کاره باشید.
  • با توسعه، عملیات، مدیریت محصول و مشتریان ارتباط برقرار (کتبی و کلامی) باشید.
  • از زبان های مختلف برنامه نویسی، مانند جاوا، جاوااسکریپت، سی شارپ یا سی پلاس پلاس، SQL، پایتون، پی اچ پیو روبی آن ریلز آگاهی داشته باشید. برخی از موقعیت ها به مهارت های برنامه نویسی و درک اطلاعات از پایگاه داده نیاز دارند. شما لزوماً به سالها تجربه برنامه نویسی نیاز ندارید که آزمایشگر باشید، اما ضرری ندارد.

دریافت گواهینامه ها

تست کنندگان نرم افزار باید برای اثبات ظرافت خود و جلب توجه مدیران استخدام کننده، دریافت یک یا چند گواهینامه را در نظر بگیرند. اکثر گواهینامه های تست کننده نرم افزار بی طرف هستند و دانش و مهارت های قابل اجرا در کلیه جنبه های تست نرم افزار را می شناسند.

در اینجا دو محبوب ترین گواهینامه تستر نرم افزار وجود دارد:

  • ISTQB Certified Tester: هیئت صلاحیت های تست نرم افزار آمریکایی (ASTQB) اعتبار تستر معتبر ISTQB بی طرف را در سطح بنیاد و متخصص ارائه می دهد. ASTQB همچنین گواهینامه های تحلیلگر تست پیشرفته، تستر پیشرفته، تستر پیشرفته امنیتی و تستر پیشرفته فنی را با هدف تست برنامه تلفن همراه، مهندسان اتوماسیون تست، مدیران آزمون و تحلیلگران تجارت ارائه می دهد.
  • Certified Software Tester: هیئت بین المللی صدور گواهینامه نرم افزار (ISCB) از هشت گواهینامه تست نرم افزار، تضمین کیفیت و تجزیه و تحلیل تجارت پشتیبانی می کند. علاوه بر قبولی در آزمون صدور گواهینامه، گواهینامه CSTE به (1) لیسانس و دو سال تجربه در خدمات اطلاعاتی، (2) مدرک دو ساله و چهار سال تجربه یا (3) شش سال تجربه نیاز دارد. بعلاوه، باید ثابت کنید که در 18 ماه گذشته در تست نرم افزار کار کرده اید. اگر الزامات تجربه کار CSTE را برآورده نمی کنید، دانشیار معتبر در تست نرم افزار (CAST) را به عنوان نقطه شروع در نظر بگیرید.

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

آموزش تستر نرم افزار و منابع

داوطلبان علاقمند به آموزش تست نرم افزار می توانند از برخی دوره های رایگان استارت که بصورت آنلاین در دسترس هستند استفاده کنند. Microsoft Virtual Academy چندین دوره مرتبط مانند شش ماژول موجود در مجموعه نرم افزارهای تست نرم افزار و Live Unit Testing در ویژوال استودیو 2017 را ارائه می دهد.

داوطلبان علاقمند همچنین باید وب سایت انجمن تست نرم افزار (AST) را بررسی کنند. این سایت پر از منابع است، از جمله پیوندی به کانال AST YouTube، که شامل وبینارها و سخنرانی های اصلی کنفرانس سالانه این گروه است. انستیتوی بین المللی تست نرم افزار (IIST) به همه افراد امکان می دهد در صورت وجود، وبینارهای تعاملی و درخواستی و سمینارهای زنده را در شهرهای منتخب ایالات متحده ثبت نام کنند.

بررسی فرصت های تست کننده نرم افزار

PayScale می گوید متوسط ​​حقوق تستر نرم افزار در ایالات متحده تقریباً 56000 دلار است، اما بسته به شرکت، شهر و مدارک تحصیلی می تواند بسیار بالاتر برسد. مانند هر شغل دیگری، شروع کار معمولاً به معنای گذراندن وقت برای هیئت های کاری مانند Monster، در واقع، Dice و LinkedIn Jobs است. رزومه خود را در هر سایت در نظر بگیرید و حتما هشدار را تنظیم کنید تا از تست نرم افزار جدید و لیست شغل های تضمین کیفیت مطلع شوید تا بتوانید بلافاصله درخواست دهید.

هنگامی که رزومه شما آنلاین است، احتمالاً در شرکت هایی که لزوماً تبلیغ عمومی نمی کنند، با استخدام کنندگان با فرصت های داخلی تماس خواهید گرفت. اگر می خواهید برای شرکت خاص کار کنید، رزومه شغلی آنلاین خود را بطور مرتب بروز کنید و برای برقراری ارتباط با HR بروید. از منابع رایگان مانند گروه های تست کننده نرم افزار LinkedIn ،Reddit و سایر انجمن ها و انجمن های آنلاین استفاده کنید. آنها می توانند منبع خوبی برای اطلاعات در مورد کارفرمایان خوب یا بد باشند، چه ابزاری را باید بیاموزید و منجر به مشاغل شوید.

انواع تست نرم افزار

آموزش تست واحد (Unit testing)

کوچکترین قسمت قابل تست نرم افزار، واحد می باشد که در طی تست واحد، هر واحد به طور جداگانه و دقیق تست می شود.

آموزش تست استاتیک (Static testing)

تکنیک تست نرم افزاری است که در آن نرم افزار بدون اجرای کد مورد تست قرار می گیرد.

آموزش تست یکپارچه سازی (Integration testing)

تست یکپارچه سازی فرآیند توسعه نرم افزاری است که واحدهای برنامه را به صورت چند گانه ترکیب و تست می کنند.

آموزش تست نفوذ (Penetration Testing)

Penetration testing یا pen testing به معنای تست نفوذ، انجام تست سیستم کامپیوتری، شبکه یا برنامه وب برای شناسایی آسیب پذیری هایی است که مهاجم می تواند از آن استفاده کند.

آموزش تست خودکار (Automated Testing)

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

آیا این نوشته را دوست داشتید؟
linkedin-advanced-selenium-support-classes

آموزش پیشرفته Selenium: کلاس های پشتیبانی


با استفاده از کلاس های پشتیبانی در Selenium WebDriver، اجرای خودکار کد خود را قدرتمندتر کنید. در این دوره، مربی Alan Richardson به بررسی عمیق در Selen...

1399/01/17 185 بازدید
linkedin-advanced-selenium-automation-frameworks

آموزش پیشرفته Selenium: فریمورک های اتوماسیون


در این دوره با ایجاد یک فریمورک اتوماسیون ساده با هر یک از Java ،Ruby و Node.js، در سلنیوم آشنا می شوید. بیاموزید که چگونه ابزارهای لازم، از جمله depe...

1399/01/16 260 بازدید زیرنویس دارد
linkedin-programming-foundations-test-driven-development

مبانی برنامه نویسی: توسعه تست محور


یک توسعه تست محور (TDD) شما را قادر میسازد تا تست برنامه را به صورت روتین روزانه انجام دهید.مربی Neelam Dwivedi هر موضوع را از نگاه یک برنامه نویس برر...

1399/01/14 434 بازدید
linkedin-advanced-appium

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


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

1399/01/10 230 بازدید
linkedin-effective-android-testing-for-mobile-developers

تست موثر Android برای توسعه دهندگان موبایل


در این دوره پروژه محور، با قدم زدن در جریان کار توسعه که در آن تست یکپارچه در تمامی مراحل انجام شده است، با بهترین شیوه های تست برنامه های اندرویدی آش...

1398/12/10 1780 بازدید زیرنویس دارد
linkedin-security-testing-vulnerability-management-with-nessus

تست امنیتی: مدیریت آسیب پذیری با Nessus


در این دوره با نحوه نصب Nessus،‌چگونگی استفاده از آن برای پیکربندی اسکن و تفسیر خروجی برای تشخیص، درک و رفع آسیب پذیری‌ها قبل از سو استفاده آشنا خواهی...

1398/12/07 986 بازدید زیرنویس دارد
teamtreehouse-introduction-to-qa-engineering

آشنایی با مهندسی QA


بیاموزید که چگونه یک مهندس تست مؤثر شوید. تست کردن فرآیندی است که هر توسعه دهنده باید برای نوشتن کد موثر و با کیفیت انجام دهد، اما انجام کارهایی که با...

1398/11/07 614 بازدید
teamtreehouse-evaluating-design

آموزش ارزیابی طراحی


بخش اساسی فرآیند طراحی UX اندازه گیری و اعتبار سنجی است. در این دوره مروری بر روش های موجود برای سنجش موفقیت یک طرح از جمله تست A / B، نظرسنجی ها و تس...

1398/11/03 610 بازدید
teamtreehouse-getting-started-with-php-unit-testing

آموزش شروع کار با تست واحد PHP


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

1398/10/29 688 بازدید
laracasts-testing-vue

آموزش تست در Vue


در این دنیا چگونه می توان کامپوننت های Vue را تست واحد کرد؟ مدرس دوره مراحل کامل را قدم به قدم به شما نشان خواهد داد. در این دوره نه تنها ابزار لازم ر...

1398/10/20 730 بازدید
laracasts-testing-jargon

آموزش تست Jargon


اصطلاحات دنیای تست کردن نرم افزار به یک یا دو روش محدود نمی شود بلکه تعداد بیشماری اصطلاح وجود دارد. بیایید این مشکل را برطرف کنیم! بطور کلی، همه این ...

1398/10/14 370 بازدید
teamtreehouse-unit-testing-in-ios-2

آموزش تست واحد در iOS


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

1398/09/30 361 بازدید
linkedin-test-driven-development-in-django

توسعه تست محور در جنگو (Django)


در این دوره به بررسی اختلافات تست‌های عملکردی و تست‌های واحد در جنگو (Django) و همچنین روش‌های پیشرفته آزمایش، چارچوب تست Django، تست هش، درخواست‌های ...

1398/09/25 1702 بازدید زیرنویس دارد
packtpub-threat-and-vulnerability-assessment-for-enterprises

آموزش ارزیابی تهدید و آسیب پذیری برای شرکت ها


این دوره شما را با کامپوننت های اصلی ارزیابی جامع آسیب پذیری آشنا می کند و دستورالعمل لازم را برای تهیه یک استراتژی دفاعی نیرومند از روز اول ارائه می ...

1398/08/22 1529 بازدید
linkedin-robot-framework-test-automation-level-2

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


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

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

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


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

1398/08/19 399 بازدید
linkedin-programming-foundations-software-testing-qa

مبانی برنامه نویسی: تست نرم افزار / QA


در این دوره با انواع مختلفی آزمایش QA (تضمین کیفیت)، اهیمت آن در چرخه زندگی توسعه نرم افزار (SDLC)، راه‌هایی برای کمک به تیم برای رسیدن به اهداف کیفی ...

1398/07/26 1095 بازدید زیرنویس دارد
packtpub-learn-automation-testing-with-java-and-selenium-webdriver

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


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

1398/07/22 1342 بازدید
linkedin-java-ee-web-services

آموزش Java EE: وب سرویس‌ها


در این دوره با چگونگی ساخت وب سرویس‌های مبتنی بر RESTful و SOAP در Java EE برای ساخت، بروزرسانی، حذف و کوئری داده از پروژه نمونه، رفع خطاها و انجام تس...

1398/07/17 1422 بازدید زیرنویس دارد
linkedin-api-test-automation-with-soapui

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


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

1398/07/06 864 بازدید زیرنویس دارد