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

دسته بندی: آموزش تست نرم افزار

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

معرفی Integration Testing

Integration Testing یا تست یکپارچه سازی یک فرآیند توسعه نرم افزاری است که واحدهای برنامه را به صورت چند گانه ترکیب و آزمایش می کنند. در این زمینه، یک واحد به عنوان کوچکترین بخش آزمایشی یک برنامه تعریف شده است. تست یکپارچه سازی می تواند با رابط های بین اجزای برنامه قبل از ایجاد اختلال در اجرای برنامه در معرض مشکل قرار بگیرد. تست یکپارچه سازی یک (Extreme Programming (XP است و یک روش عملی برای توسعه نرم افزار می باشد که از یک رویکرد دقیق برای ساخت یک محصول با استفاده از تست و تجدید دائمی بهره می گیرد. دو روش عمده برای انجام تست یکپارچه سازی وجود دارد که به روش پایین به بالا و روش بالا به پایین شناخته می شود. تست یکپارچه سازی پایین به بالا با تست واحد و به دنبال آن تست های ترکیبی از سطح پیشرفته تر واحدها به نام ماژول ها یا ساخت ها می باشد آغاز می شود. در تست یکپارچه سازی از بالا به پایین، ابتدا ماژول های سطح بالا و پس از آن ماژول های پیشرفته سطح پایین تر تست می شوند. در یک محیط توسعه جامع نرم افزار، تست پایین به بالا معمولا انجام می شود، و سپس به دنبال آن تست بالا به پایین انجام می شود. این فرآیند شامل تست های متعدد از برنامه کامل می شود که ترجیحا در سناریوهایی که برای تقلید طراحی شده اند با شبکه ها، سیستم ها و رایانه های مشتریان روبه رو می شوند.

سطوح مختلف Integration Testing

  • آزمون واحد (Unit testing)
  • آزمون یکپارچه‌سازی افزایشی
  • آزمون یکپارچه‌سازی (Integration testing)
  • آزمون سیستم (System testing)
  • آزمون پذیرش (Acceptance testing)
آیا این نوشته را دوست داشتید؟
linkedin-android-app-development-enterprise-integration

آموزش توسعه اپلیکیشن اندروید: یکپارچه سازی سازمانی


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

1399/02/22 447 بازدید زیرنویس دارد
linkedin-javascript-test-driven-development-es6

آموزش جاوااسکریپت - توسعه تست محور (ES6)


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

1399/01/22 849 بازدید زیرنویس دارد
laracasts-testing-jargon

آموزش تست Jargon


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

1398/10/14 465 بازدید
linkedin-programming-foundations-software-testing-qa

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


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

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

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


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

1398/07/06 1040 بازدید زیرنویس دارد
pluralsight-getting-started-with-testng

شروع کار با TestNG


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

1397/10/23 1069 بازدید
pluralsight-microsoft-azure-developer-performing-unit-testing-integration-testing

آموزش Microsoft Azure Developer - انجام تست یکپارچه سازی و تست واحد


مجموعه تست شما باید برای نگهداری آسان باشد و اسامی تست های شما باید مانند قوانین کسب و کار قابل خواندن باشند. در این دوره با ایجاد مجموعه انعطاف پذیر ...

1397/10/15 791 بازدید
teamtreehouse-testing-in-android

تست اپلیکیشن های اندروید


در این آموزش تصویری با راهکارهای تست اپلیکیشن های اندروید آشنا می شوید. این دوره آموزشی محصول موسسه TeamTreeHouse است. سرفصل های دوره: Mocking با...

1397/04/14 2911 بازدید
pluralsight-c-unit-testing-fundamentals-using-catch

استفاده از Catch در تست واحد (Unit Testing) با سی پلاس پلاس 


نوشتن تست های واحد بخش مهمی از یک برنامه نویسی خوب نرم افزار است. در این دوره با انجام تست واحد با Catch، اجرای Catch از خط فرمان، نحوه استفاده از ابز...

1397/03/01 1370 بازدید
آموزش-تست-خودکار-وب-سایت-با-selenium

آموزش تست خودکار وب سایت با Selenium


تست نرم افزار شاید قسمت نهایی مراحل تولید یک نرم افزار است. بسیاری از پروژه های کوچک و متوسط را پس از برنامه نویسی می توان به صورت دستی تست کرد تا مشک...

1396/10/28 8284 بازدید
آموزش-تست-خودکار-نرم-افزار-automated-testing

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


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

1396/10/28 6733 بازدید
بررسی-پلت-فرم-facebook

بررسی پلتفرم Facebook


پلتفرم Facebook یک سیستم قدرتمند است که حجم انبوهی از داده ها را مدیریت می کند. Facebook به برنامه نویسان و توسعه دهندگان اجازه می دهد روی بستر شبکه ا...

1396/09/21 2819 بازدید