با افزایش استفاده از مدلهای زبانی بزرگ (LLM) برای تولید تست، نیاز به ارزیابی و نقد تستهای تولید شده توسط این مدلها بیشتر احساس میشود. این مقاله به بررسی روشهای ارزیابی کیفیت تستها میپردازد، به ویژه در مواردی که تستها توسط LLMها تولید شدهاند و توسعهدهندگان انسانی آنها را نوشته یا مشاهده نکردهاند.
یکی از روشهای ارزیابی کیفیت تستها، محاسبه میزان پوشش کد (code coverage) است. اگرچه در گذشته این معیار به دلیل امکان دستکاری آسان مورد انتقاد قرار میگرفت، اما با توجه به افزایش خودکارسازی تستها، ممکن است نیاز به بازنگری در این نگرش باشد. پوشش کد میتواند به عنوان یک حداقل مورد انتظار برای تستهای تولید شده توسط LLMها در نظر گرفته شود، زیرا انتظار میرود این تستها نسبتاً ارزان باشند و پوشش بالایی داشته باشند.
روش دیگر، تست جهش (mutation testing) است که در آن بخشهایی از کد تغییر داده شده و سپس تستها برای بررسی شکست اجرا میشوند. اگر تستها نتوانند این تغییرات را شناسایی کنند، نشاندهنده پوشش ناکافی تستها است. این روش نسبت به پوشش کد، اطلاعات بیشتری در مورد پوشش مسیرها (path coverage) ارائه میدهد، اما پیادهسازی آن پیچیدهتر و زمانبرتر است.
تست جهش نیازمند درک عمیق از زبان برنامهنویسی هدف است تا بتوان تغییرات معناداری در کد ایجاد کرد و از ابزارهای تجزیهکننده (parser) برای دستکاری درخت نحو انتزاعی (abstract syntax tree) استفاده کرد. در نهایت، هدف از ارزیابی کیفیت تستها، اطمینان از پوشش کافی و جلوگیری از تولید تستهای بیکیفیت است که نیاز به نگهداری زیادی داشته باشند.
مشاهده مطلب اصلی