مقدمه مقدماتی

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

روش های Agile Methodology چیست؟

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

اصول اصلی

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

چارچوب های مشترک

[FLT 1 ] [[ ] [ [FLT 1 ] [ ] [ [FLT 1 ] [ ] [FLT ] [ 1 ] [ ] [FLT ] [ ] [به طور معمول 4 - 1 هفته] [که شامل برنامه ریزی، استقرار روزانه، بررسی و یک سیستم به عقب مانده است. Kanban [F33 ] بر گردش کار توصیه شده متمرکز است، و محدود کردن پیشرفت مداوم (Exme +2.

نقش تست سیستم در پروژه های Agile

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

آزمایش مستمر و ادغام

تست مداوم شامل اجرای تست های خودکار در هر کد متعهد است، اغلب به عنوان بخشی از یک خط لوله پیوسته ادغام (CI) است. Tools مانند Jenkins، GitLab CI، یا Azure DevOps به طور خودکار ساخت، آزمایش و فرآیند استقرار را خودکار می کند. اجرای تست های واحد، تست های ادغام و تست های سطح سیستم به طور مکرر به دریافت برگشت بلافاصله کمک می کند.این عمل Agile از هدف تحویل کشتی های بالقوه در هر کدام از سرعت عبور می کند.

توسعه و توسعه رفتار محور

[ExTest-Driven Development] نیاز به نوشتن آزمون شکست خورده قبل از نوشتن کد تولید دارد، این تضمین می کند که هر قطعه از کد قابل آزمایش است و مجموعه آزمون با استفاده از یک سیستم تجزیه و تحلیل گر و تحلیل مشخصات (FLT:2Behavior-Driven Developmentn) (BDD) تکامل می یابد. گسترش TDD با استفاده از سناریوهای همکاری طبیعی مانند درک سیستم عامل و یا قابلیت های ریسک پذیری را از یک سیستم عامل و یا یک سیستم عامل ارزیابی می کند.

آزمون پذیرش در Sprints

هر داستان کاربر در یک backlog دارای معیارهای پذیرش است که باید قبل از اینکه داستان به نظر برسد، آزمون پذیرش خودکار این معیارها را تأیید می کند و به عنوان بخشی از خط لوله CI اجرا می شود، این تضمین می کند که سیستم هر دو الزامات عملکردی و غیر عملکردی را در اوایل برآورده می کند، کاهش خطر نقص های تجمعی در سراسر اسپرینت.

مزایای تست سیستم Agile

یکپارچه سازی تست سیستم در جریان کار Agile مزایای زیادی نسبت به مدل های متوالی سنتی ارائه می دهد.این مزایا در سراسر صنایع، از نرم افزار خودرو گرفته تا سیستم های مالی ثبت شده است.

  • شناسایی و قطعنامه [FLT 1] - از آنجایی که تست ها اغلب و زود اجرا می شوند، نقص ها در عرض چند ساعت یا روزها به جای هفته یا ماه ها یافت می شوند.هزینه تعمیر یک باگ به طور قابل توجهی پایین تر است در حالی که در طول همان سرعت گیر می شود.
  • کیفیت محصول و قابلیت اطمینان [FLT 1] - آزمایش مداوم تضمین می کند که هر تغییر در برابر مجموعه جامع از تست های رگرسیون معتبر است.این احتمال عوارض جانبی ناخواسته را کاهش می دهد و ثبات سیستم را بهبود می بخشد.
  • انعطاف پذیری قابل اعتماد برای انطباق با الزامات در حال تغییر - طبیعت آنی Agile اجازه می دهد تا تیم ها را به منظور تجدید ویژگی های مبتنی بر روش های تست سهامدار که از به روز رسانی سریع پشتیبانی می کنند - مانند سوئیت های رگرسیون خودکار - آن را برای چرخش بدون به روز رسانی کیفیت امکان پذیر می کند.
  • زمان به بازار کاهش یافته - با همپوشانی توسعه و آزمایش، Agile چرخه کلی چرخه عمر پروژه را کوتاه می کند. تیم ها می توانند افزایش قابل استفاده را بیشتر، پاسخ به تقاضای بازار به سرعت.
  • روحیه و همکاری تیم بالا [FLT 1] - هنگامی که تست کنندگان و توسعه دهندگان کار در کنار هم، ارتباطات بهبود می یابد. مالکیت مشترک کیفیت کاهش نقطه انگشت و پرورش فرهنگ مسئولیت جمعی.

چالش ها و ملاحظات

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

پوشش کامل تست

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

اتوماسیون Overhead و تعمیر و نگهداری

تست های خودکار نیاز به تعمیر و نگهداری مداوم دارند، زیرا سیستم تکامل می یابد، اسکریپت های تست باید به روز شوند تا منعکس کننده تغییرات در UI، API ها یا منطق کسب و کار باشد.اگر به درستی مدیریت نشده باشد، مجموعه آزمون می تواند شکننده شود، تولید مثبت کاذب که اعتماد را تضعیف می کند.

الزامات مهارت و فرهنگ Shift

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

مدیریت تست غیر قابل اجرا

تست عملکرد، امنیت و انطباق اغلب سخت تر است که به سرعت های کوتاه، تست بار، تست نفوذ و تأیید رسمی ممکن است نیاز به زمان اجرای طولانی و محیط های تخصصی داشته باشد. تیم ها باید یک رویکرد مبتنی بر ریسک را اتخاذ کنند، کنترل های سبک در هر اسپرینت و برنامه ریزی دقیق تر در نقاط عطف یا استفاده از اسپرینت های سخت افزاری اختصاصی.

بهترین روش برای تست سیستم Agile

برای به حداکثر رساندن تاثیر Agile بر تست سیستم، تیم های مهندسی باید بهترین شیوه های زیر را اتخاذ کنند که توسط نهادهای صنعتی مانند ]ISTQB [ (بین المللی آزمون نرم افزار آزمون صلاحیت هیئت مدیره) و Scrum.org پشتیبانی می شود.

Shift Left Testing

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

۲- ایجاد یک چارچوب اتوماسیون قوی

ابزارهایی را انتخاب کنید که با پشته تکنولوژی و تخصص تیم شما هماهنگ شوند.در یک چارچوب اتوماسیون آزمایشی که از اجرای موازی، گزارش و ادغام با CI / CD پشتیبانی می کند، سرمایه گذاری کنید، قبل از اتوماسیون اتوماسیون با ریسک بالا، تست های تکراری در حالی که آزمایش های اکتشافی دستی برای ویژگی های پیچیده را حفظ می کنند.

۳- پیاده سازی استراتژی هرم تست

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

۴- استفاده از تعریف انجام شده (DoD) با معیارهای تست

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

۵- ارتباطات آزاد و حلقه های بازخورد

ایستاده های روزانه، نسخه های آزمایشی اسپریت و عقب نشینی فرصت هایی برای بحث در مورد چالش های تست و بهبود است. تشویق تست کنندگان برای بالا بردن نگرانی های اولیه و همکاری با توسعه دهندگان برای حل و فصل آنها.استفاده از ابزار مانند Jira یا Azure Boards برای ردیابی نقص ها و آزمایش پیشرفت شفاف.

۶- اتخاذ یادگیری مداوم و بهبود

Agile در مورد بازرسی و انطباق است. respectives باید شامل بحث در مورد فرآیندهای تست: آنچه کار می کرد، چه چیزی انجام نمی شد و چه تغییراتی می تواند با تکنیک های تست جدید یا ابزار برای افزایش کیفیت به طور مداوم انجام شود.

نتیجه گیری

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

برای مطالعه بیشتر در مورد بهترین شیوه های Agile، با ] [FLT1 ] مشورت کنید، Scrum.org] در آزمون Agile و راهنمای آتئیسیان برای تست Agile : منابع دقیق و جزئیاتی که در مورد روش های ذکر شده است، ارائه می دهد.