تفاوت تست محصول در مدل آبشاری و چابک
توسعه محصولات نرمافزاری در محیطی پیچیده و پر از ابهام انجام میشود، لذا استفاده از روشهای سنتی مانند تست آبشاری در توسعه محصول، توصیه نمیشود. استفاده از متدولوژیهای چابک و چارچوبهای مبتنی بر تست چابک به دلیل Fast Fail بودن و ماهیت چابکی آن نسبت به مدلهای آبشاری، از مزیت بیشتری برخوردار هستند. یکی از مهمترین اجزای توسعه محصول، تست نرمافزار در محیطهای پیچیده است. برای تست محصول نیز دو روش متفاوت وجود دارد که شامل: 1) تست آبشاری و 2) تست چابک میباشد.
در مدل تست آبشاری، هر مرحله دارای ورودی و خروجی مشخص و دارای پیشنیاز است. تا اتمام مرحله قبلی، مرحله بعدی شروع نمیشود. این ساختار در بسیاری از پروژههای توسعه محصول باعث کاهش انعطافپذیری تست میشود.
در مدل تست آبشاری، 6 مرحله تا تکمیل فرآیند تست نرمافزار نیاز است که این مراحل شامل:
جمعآوری نیازمندیهای تست: شامل تحلیل نیازمندیهای تست نرمافزار، تحلیل محصول و نقاط قابل تست و همچنین بررسی اجرای تست خودکار در این مرحله انجام میشود.
خروجیهای مرحله:
– ماتریس پیگیری نیازمندیها (RTM)
– گزارش امکانسنجی تست خودکار
برنامهریزی و طراحی تست: برنامهریزی اجرای تست و تخمین انجام تست دستی و تست خودکار
خروجیهای مرحله:
– تخمین تست هر مرحله
– برنامهریزی منابع مورد نیاز تست (سختافزاری و نرمافزاری)
آمادهسازی تست کیس یا تست اسکریپت: ایجاد و بازنگری تست کیسها و تولید تست اسکریپتهای مورد نیاز در فرآیند تست نرمافزار
برپایی محیط تست: آمادهسازی دادههای مورد نیاز برای تست و همچنین شرایط محیطی تست از نظر سختافزاری و نرمافزاری جهت افزایش کیفیت محصول
اجرای عملیات تست: اجرای فرآیند تست نرمافزار و شناسایی باگها
– گزارش باگ احتمالی
– نگاشت دوباره در ماتریس RTM
– بهروزرسانی تست کیس با نتایج بهدست آمده
اختتام فرآیند تست: با اتمام اجرای تست، فرآیند به پایان نزدیک میشود و بازخورد عملکرد محصول به تیم توسعه محصول داده میشود.
– سند درسآموختهها
– گزارش عملکرد کیفی و کمی محصول
اما در مدل تست چابک، اعضای تیم تست نیز به عنوان بخشی از توسعهدهندگان محسوب میشوند. در واقع در راهنمای اسکرام 2020 به این موضوع اشاره شده است. کلیه نفرات اعم از تحلیلگران محصول، تسترها، اعضای تیم فنی توسعه جزو توسعهدهندگان در مدل چابک هستند.
در مدل تست چابک، تستر همزمان با توسعهدهنده عمل میکند. هر تسک پس از اتمام و دیپلوی، بلافاصله تست میشود و بازخورد تست نرمافزار بهسرعت به تیم توسعه محصول منتقل میشود.
چند نکته قابل توجه در تست چابک عبارتند از:
کیفیتمحور بودن تست چابک: برخلاف تست آبشاری، تست چابک کمترین زمان برای برنامهریزی اولیه را دارد و تمرکز اصلی آن روی کیفیت محصول است. از ابتدای شروع توسعه با بازههای زمانی کوتاه و پیوسته (اسپرینتها)، تستر در جریان جزئیات فنی و محصولی قرار میگیرد. این همگامسازی بین توسعهدهنده و تستر باعث افزایش کیفیت محصول میشود.
تستمحور بودن تست چابک: در مدل تست چابک، تستر منتظر مرحله اجرای تست نمیماند. با شروع هر توسعه، تستر نیز مقدمات تست را فراهم کرده و بهمحض تحویل فیچر، عملیات تست نرمافزار نیز در همان اسپرینت آغاز میشود و بازخورد آن سریعاً به تیم منتقل میگردد.
مدل مشتریپسند در تست چابک: به دلیل دریافت بازخوردهای سریع از تست محصول و اصلاح باگها در هر اسپرینت، مشتری از وضعیت پیشرفت توسعه محصول با شفافیت بالا مطلع میشود، که این ویژگی از مزایای اصلی متدولوژی چابک محسوب میشود.
مراحل چرخه تست چابک عبارتند از:
تعیین استراتژی تست: در دل برنامهریزی اسپرینت انجام میشود. در جلسه برنامهریزی اسپرینت، تیم توسعه محصول تمامی ابعاد را از جمله تست نرمافزار بررسی میکند. تعیین استراتژی تست در هر اسپرینت میتواند متفاوت باشد.
برنامهریزی روزانه تست چابک: این مرحله در جلسات روزانه (Daily) انجام میشود و در آن وضعیت تست محصول با هدف اسپرینت تطبیق داده میشود.
بازبینی تست چابک: این بازبینی در جلسههای روزانه و جلسه نهایی اسپرینت انجام میشود. در این مرحله، عملکرد تست نرمافزار در اسپرینت گذشته و برنامهریزی آینده بررسی میگردد.
بررسی زمان ورود به بازار از منظر کیفیت محصول: با جمعآوری بازخورد از تست چابک، ذینفعان تصمیمگیری میکنند که محصول آماده انتشار است یا خیر.
ارزیابی موارد اثرگذار بر کیفیت محصول: در چرخه عمر تست نرمافزار، این مرحله بسیار حیاتی است. بازخوردهای بهدست آمده در تست چابک بررسی میشود تا عوامل موثر در افزایش کیفیت محصول شناسایی و اعمال گردد.
مراجع :