از AI تست بخواه، اما اول بگو چه رفتاری باید محافظت شود
مدل دهها تست میسازد که سبزند، اما باگ واقعی هنوز از آنها عبور میکند یا refactor کوچک همه را میشکند.
تست تولیدی اگر فقط implementation فعلی را تکرار کند ارزش کمی دارد. قرارداد رفتار، edge case و failure mode را مشخص کن تا تست واقعاً regression را بگیرد.
چطور دقیقتر به موضوع نگاه کنیم؟
- سه رفتار حیاتی و دو edge case را قبل از درخواست تست بنویس.
- از مدل بخواه تست را از دید ورودی/خروجی یا قرارداد عمومی بنویسد، نه ترتیب اجرای داخلی.
- یک تست را عمداً با شکستن رفتار اجرا کن تا ببینی واقعاً fail میشود.
- تستهای تکراری و بیمعنا را حذف کن؛ تعداد زیاد معیار کیفیت نیست.
چرا این موضوع مهم است؟
تست میتواند به جزئیات داخلی وابسته شود بهجای اینکه رفتار مورد انتظار را تثبیت کند. هدف تست باید از requirement بیاید.
سؤالهایی که معمولاً بعدش پیش میآید
coverage بالا یعنی تست خوب؟
نه؛ coverage نشان میدهد کد اجرا شده، نه اینکه assertionهای مهم درست طراحی شدهاند.
تست را قبل از کد بسازیم؟
برای رفتار روشن میتواند مفید باشد؛ مهم این است که test از requirement مستقل از implementation بیاید.
