رویکرد جدید تست نرمافزار با ACH
متا یک رویکرد جدید (از جنبههایی جدید) نسبت به تولید خودکار تستهای نرمافزار اتخاذ کرده با ابزاری به اسم ACH.
🌱 این ACH چیه؟
توی متا، ابزاری به اسم Automated Compliance Hardening (ACH) داریم که توی تست نرمافزار کلی تحول ایجاد کرده. این سیستم، از مدلهای زبان بزرگ (LLM) استفاده میکنه تا به روش «mutation-guided» تستهایی تولید کنه. به عبارت دیگه، ACH با وارد کردن خطاهای عمدی (که بهشون «mutants» میگیم) توی کد، دنبال این میگرده که آیا تستهای موجود اون خطاها رو پیدا میکنن یا نه. مثلا، توی حوزه حریم خصوصی، ACH به صورت خودکار به دنبال اشکالات مرتبط با حریم خصوصی میگرده و مطمئن میشه که این خطاها به سیستمهای ما راه پیدا نکنن. نتیجه؟ کدهای ما محکمتر میشن و ریسک حریم خصوصی کمتر میشه.
همچنین ACH تستهای واحد (unit tests) میسازه که هدفشون شکار اون خطاهای مشخصه. جالبتر اینکه، ما فقط نیاز داریم به صورت متنی و ساده توضیح بدیم که دنبال چه نوع خطاهایی هستیم؛ حتی اگه توضیحاتمون ناقص یا حتی یه کم متناقض باشه، ACH باز هم تستهایی تولید میکنه که تضمین میکنه اون خطاها رو پیدا میکنن.
در گذشته، بیشتر روشهای تست اتوماتیک فقط روی افزایش پوشش کد متمرکز بودن، ولی افزایش پوشش کد همیشه تضمین نمیکنه که خطاها رو پیدا کنیم. ACH از این سنت فاصله میگیره و بهطور خاص خطاها رو هدف قرار میده، البته غالباً باعث افزایش پوشش هم میشه. یه نکته خوب اینه که ACH بر پایه اصول Assured LLM-based Software Engineering ساخته شده، به این معنا که تضمین داره تستهای تولید شده واقعاً اون خطاها رو شکار میکنن.
تکنیکهای mutation testing مدتهاست که استفاده میشدن؛ یعنی با ایجاد خطاهای عمدی (mutants) توی کد (البته به نحوی که از تولید نهایی دور بمونن) میخوایم ببینیم که آیا تستها این تغییرات رو میگیرن یا نه. مشکل این روشها این بود که این mutants اغلب واقعگرایانه نبودن و کماکان نیاز به نوشتن دستی تستها توسط انسان وجود داشت.
ACH با استفاده از قابلیتهای مدلهای زبان بزرگ (LLM) به دو مشکل اصلی پایان میده:
- تولید mutantsهایی که واقعاً نمایانگر خطاهای واقعی باشن.
- تولید خودکار تستها برای شکار اون خطاها.
مراحل کار ACH:
۱: توضیح خطا: شما توضیح میدی که دنبال چه نوع خطاهایی هستی.
۲: تولید خطاها: ACH براساس توضیحات، تعداد زیادی خطا تولید میکنه.
۳: تولید تستها: سپس این خطاها رو به عنوان ورودی میگیره و تستهایی میسازه که مطمئن بشیم اون خطاها رو پیدا میکنن.
فکر کنید متا با اون همه برنامهنویس و سیستمهای مختلف، چطور باید مطمئن بشه که همه چیز درست کار میکنه و مخصوصاً مسائل مربوط به حریم خصوصی کاربرها رعایت میشه؟ (منظور از حریم خصوصی همونه که شما راجع به یه کوفتی حرف میزنید، ۲ دقیقه بعدش اینستاگرام، پست و تبلیغ در مورد اون کوفت نمایش میده 😁) اینجاست که ACH میاد به کمک!!:
- با استفاده از LLMها، میتونه خیلی سریع و دقیق باگ تولید کنه
- تستهای متناسب با اون باگها رو مینویسه
- تضمین میکنه که تستها واقعاً اون باگها رو پیدا میکنن
🥸 کجا استفاده شده؟
متا این سیستم رو روی پلتفرمهای مختلفش مثل:
- فیسبوک
- اینستاگرام
- واتساپ
- مسنجر
تست کرده و نتایج خیلی خوبی گرفته.
تیم متا میخواد این تکنولوژی رو گسترش بده و به جاهای بیشتری ببره. هدفشون اینه که:
- ارزیابی ریسکها رو سادهتر کنن
- فشار ذهنی روی برنامهنویسها رو کم کنن
- یه اکوسیستم امنتر برای همه بسازن
خلاصه اینکه ACH نشون میده چطور هوش مصنوعی میتونه به کمک برنامهنویسها بیاد و کارهای سخت و وقتگیر رو براشون آسونتر کنه. مقاله هم روش دادن که میتونید عمیقتر مطالعه کنید...
به صورت کلی داستان تست نرمافزار داره تغییرات بزرگی میکنه. استارتاپها و شرکتهای متعددی دارن روش کار میکنن. خصوصا الان که توضیح و توصیف عملکرد کدهای ساده و متوسط رو با درصد خوبی از پسش برمیان...
با اینکه ۲ تا موضوع توی همین کانال و کلا دنیای توسعه نرمافزار فارسی زبان، خیلی نامحبوبه، یکی مستندسازی یکی تست، ولی اگر موافق باشین چند تا پست در موردش گپ بزنیم؟ (بزنیم:
Create: Update:
>>Click here to continue<<
Learning With M
Share with your best friend
VIEW MORE