مترجم: آقای مهندس مهدی نگاهی
آزمایش
اگر بتوان از تکنیکی به عنوان قلب XP نام برد، بیشک این تکنیک، آزمون واحد خواهد بود. همان طور که دیدید، آزمون واحد بخشی از کار روزانه هر برنامهنویس است. لازم به یادآوری است که در XP، ترکیب دو استراتژی معمولی و مرسوم آزمون، موجب افزایش فوقالعاده کارآمدی آزمون شده است: اول آن که برنامهنویسان، آزمون کارشان را خودشان مینویسند و دیگر این که آزمون را قبل از کد برنامه مینویسند. اگر برنامهنویسی به یادگیری ارتباط دارد و یادگیری به دریافت بازخوردهای فراوان در زودترین زمان ممکن، پس میتوان از آزمونهایی که شخص دیگری روزها یا هفتهها بعد از کدنویسی نوشته، نکات فراوانی یاد گرفت [چون آزمونها منجر به بازخورد و بازخورد منجر به یادگیری میشود][نتیجهگیری: بهتر است آزمونها زودتر نوشته شوند]. از طرف دیگر، اصولاً XP این نکته منطقی را که برنامهنویسان معمولاً قادر به آزمایش کد خود نیستند، با اجباری کردن برنامهنویسی دونفره پذیرفته است.
برخی از متدولوژیها مانند Cleanroom، برنامهنویسان را از آزمایش و بعضی مواقع حتی از کامپایل برنامه خود منع میکنند. فرایند معمولی بدین گونه است که برنامهنویس کدی را مینویسد، آن را کامپایل میکند، مطمئن میشود که درست کار میکند و سپس آن را به واحد سازمانی مسئول آزمون میفرستد. سپس آزمایش میزکار۱ (bench test) در یک مرحله روی همه کد انجام میشود. در این آزمایش، متغیرهای کد بررسی میگردند، خروجی دستورات چاپی تفسیر و کنترل میشوند و چندین دکمه فشار داده میشود تا چک لیست آزمون تکمیل و تأیید گردد.
استراتژی آزمون XP نیاز به کار بیشتری نسبت به استراتژیهای آزمایش میزکار ندارد. در واقع XP فقط شکل انجام آزمونها را تغییر داده است. به جای انجام فعالیتهایی که نتایج آنها در پایان مانند اتر محو میشوند، آزمونها به شکل دائمی ذخیره میشوند. این آزمونها به صورت خودکار امروز اجرا میشوند و بعد از ظهر، فردا، هفته آینده و سال آینده بعد از بکپارچهسازی نیز اجرا خواهند شد. اطمینان ناشی از اجرای آزمونها به تدریج و با زیاد شدن آنها افزایش مییابد و از این رو تیم XP به مرور زمان، به سیستم اطمینان پیدا میکند.
همانطور که قبلا اشاره شد، آزمونها توسط مشتریان نیز تعیین میشوند. مشتریان در ابتدای هر تکرار اعلام میکنند که در چه صورتی خواهند پذیرفت که داستانهای کاربر به درستی پیادهسازی شدهاند. نظرات مشتریان به آزمون سطح سیستم (system-wide test) تبدیل میشود. تبدیل میتواند مستقیماً توسط خود مشتری با استفاده از زبانهای اسکریپتی متنی یا گرافیکی یا توسط برنامهنویسان با استفاده از ابزارهای آزمون انجام شود. این گونه آزمونها نیز موجب افزایش اطمینان به سیستم میشوند با این تفاوت که اطمینان مشتری را نسبت به عملیات درست سیستم افزایش میدهند[آزمونهای واحد اطمینان برنامهنویسان را افزایش میدهند].
۱- آزمایش میزکار: آزمایشی که روی ماشین، قطعه یا نرمافزار، قبل از تحویل آن برای استفاده با هدف کسب اطمینان از درستی آن انجام میشود.
پانوشت: آقای مهندس نگاهی عزیز برای ادامه تحصیل به کشور کانادا نقل مکان کردهاند. بهترین شادباشها تقدیم ایشان باد. امیدوارم همواره شاد، تندرست و پیروز باشند.
گزیده:
«در حکومت سه عمل مختلف است: تهیه، مشورت، اجرا؛ اگر میخواهی کار سریعتر انجام بگیرد برای مرحله تهیه و اجرا اشخاص کم برگزین اما مرحله مشورت و آزمایش را به عهده اشخاص متعدد واگذار کن.»
فرانسیس بیکن
دیدگاهتان را بنویسید