حسین دادخواه
حسین دادخواه
خواندن ۲ دقیقه·۳ روز پیش

تست قناری؟ اثرگذاری؟!

 تست قناری و پایداری نرم‌افزار
تست قناری و پایداری نرم‌افزار

گوگل گفته #تست قناری میتونه ۳۰٪ نرخ #خطا رو در نرم‌افزار کم کنه.
یه گزارش از  DevOps Research and Assessment (DORA) هست که میگه سازمان‌هایی که از #تست_قناری استفاده می‌کنن  به طور متوسط 200 برابر سریع‌تر از سازمان‌های دیگه در انتشار نرم‌افزارها عمل می‌کنن. این #سرعت بیشتر به خاطر کاهش زمانِ شناسایی و رفع مشکلاته.
یه گزارش دیگه هم از  Forrester Research هست که میگه تست قناری تا ۲۵٪ هزینه‌های #پشتیبانی رو کم میکنه.

تست قناری 🐦 (Canary Testing) یه روش خیلی موثر و خوب برای آزمایش #نرم‌افزار هست که به ما کمک می‌کنه تغییرات جدید رو توی یه سیستم یا برنامه بسنجیم. اسمش هم از اینجا اومده که مثل استفاده از قناری‌ها توی معادن برای شناسایی خطرات هست. در معادن، قناری‌ها مثل زنگ خطر عمل می‌کنن و اگه گازهای خطرناک زیاد بشه، زودتر از آدم‌ها تحت تأثیر قرار می‌گیرن و کارگران متوجه میشن که باید #معدن رو ترک کنن. 🐦🚨 (یاد شهدای معدن #طبس افتادم😢)

توی این روش، قناری به عنوان یه نمونه کوچیک از کاربران یا سیستم‌ها عمل می‌کنه که تغییرات جدید روی اون‌ها آزمایش می‌شه، قبل از اینکه این تغییرات به کل #سیستم یا همه کاربران برسد.


مراحل تست قناری:
انتخاب گروه قناری: اول باید یه گروه کوچیک از کاربران یا سیستم‌ها رو انتخاب کنیم که تغییرات جدید روی اون‌ها آزمایش بشه. این گروه باید نماینده‌ای از کل کاربران باشه. 🤝

اعمال تغییرات: بعدش، تغییرات نرم‌افزاری یا ویژگی‌های جدید رو روی این گروه قناری پیاده می‌کنیم.

جمع‌آوری داده‌ها: حالا باید عملکرد و رفتار این گروه رو زیر نظر بگیریم. داده‌های مربوط به کارایی، مشکلات و بازخورد کاربران رو جمع‌آوری می‌کنیم. 📊

تحلیل نتایج: نتایج به دست اومده از گروه قناری رو بررسی می‌کنیم تا ببینیم آیا تغییرات جدید درست کار می‌کنن یا نه.

تصمیم‌گیری: بر اساس نتایج تحلیل، تصمیم می‌گیریم که آیا تغییرات رو به کل سیستم تعمیم بدیم یا نیاز به اصلاح دارن.

مزایای تست قناری:
کاهش ریسک: با آزمایش تغییرات روی یه گروه کوچیک از کاربران، خطر بروز مشکلات بزرگ توی سیستم کم می‌شه. 🚫
بازخورد سریع: دریافت #بازخورد از کاربران واقعی به توسعه‌دهنده‌ها کمک می‌کنه تا مشکلات رو سریع‌تر شناسایی و رفع کنن.
بهبود کیفیت: این روش باعث می‌شه #کیفیت نرم‌افزار بهتر بشه چون مشکلات قبل از انتشار عمومی شناسایی می‌شن.

معایب تست قناری:
پیچیدگی در پیاده‌سازی: نیاز به زیرساخت‌های خاص و مدیریت گروه قناری ممکنه پیچیده باشه.
تجربه کاربری متفاوت: کاربران قناری ممکنه تجربه‌ای متفاوت از بقیه کاربران داشته باشن که می‌تونه منجر به سردرگمی بشه.

را ساده:
یه راه ساده برای اجرای تست قناری اینه که با استفاده از لود بالانس کردن ریکوئست‌ها، درصد کمی از کاربران رو به نسخه در حال #تست بفرستید و لاگ‌ها و بازخوردها و رفتارها رو بررسی کنین. 🔄

راه‌های دیگه‌ای هم هست مثل #Feature_Flag و … که هم به پیاده‌سازی بیشتری نیاز داره هم پیچیدگی بیشتر، اما گاهی روش اول جواب نمی‌ده و مجبور می‌شید از FF استفاده کنین.

تجربه شما چیه؟
ساده‌ترین و سریع‌ترین راه برای اجرای تست قناری چیه؟ 🤔 چه روش‌هایی رو امتحان کردین؟

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