عنوان:

‫توسعه مبتنی بر تست به عنوان استقرا


نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۲/۰۵ ۱۰:۴۰
آدرس: www.dntips.ir
در اواسط دهه 2010، نویسنده با یک سازمان توسعه نرم‌افزار دانمارکی همکاری می‌کرد و به عنوان توسعه‌دهنده ارشد عمل می‌نمود. به دلیل کمبود کارمند، نیاز به استخدام فریلنسرها بود و یکی از این افراد، Mike Hadlow از انگلستان، به تیم اضافه شد. در اولین روز کاری، پس از کلون کردن مخزن و اجرای تست‌ها، Mike متوجه سه تست ناموفق شد و پرسید که آیا این مورد انتظار می‌رود یا خیر. تیم از توسعه مبتنی بر تست (TDD) برای کد استفاده کرده بود و صدها تست داشت که همگی قطعی به نظر می‌رسیدند. اما مشخص شد که این سه تست در کامپیوتر Mike با تنظیمات منطقه جغرافیایی انگلستان (UK English) شکست خورده‌اند، در حالی که سایر اعضای تیم از منطقه جغرافیایی دانمارک استفاده می‌کردند. در زبان دانمارکی، کاما جداکننده اعشار و نقطه جداکننده هزارگان است، در حالی که در انگلیسی برعکس است. تست‌ها به دلیل انتظار قوانین قالب‌بندی دانمارکی شکست خورده بودند. رفع این مشکل با افزایش دقت در فاز آماده‌سازی (arrange) یا کاهش دقت در فاز بررسی (assertion) آسان بود. درس این بود که حتی تست‌های نوشته شده با TDD نیز مفروضات ضمنی در مورد محیط دارند. یک همکار در اوایل دهه 2000 به نویسنده آموخت که دشوارترین مقیاس‌پذیری، افزایش از یک به دو است. در آن زمان، چالش اصلی مقیاس‌بندی سرورها بود و با توقف بهبود سرعت کلاک پردازنده، تلاش برای افزودن پردازنده‌های بیشتر به یک تراشه آغاز شد. مقیاس‌بندی به جای ارتقا، به معنای خرید سرورهای بیشتر و توزیع بار کاری بود که از نظر اقتصادی منطقی‌تر به نظر می‌رسید. با این حال، بیشتر نرم‌افزارها در آن زمان با فرض اجرای روی یک ماشین طراحی شده بودند، به ویژه سرورهای پایگاه داده و اغلب سرورهای برنامه. مقیاس‌بندی از یک به دو کار ساده‌ای نبود، اما پس از انجام این کار، مقیاس‌بندی به سه یا چهار سرور معمولاً آسان‌تر می‌شد.


مشاهده مطلب اصلی