PDA

View Full Version : آزمایش برنامه با استفاده از DUnit



nice boy
چهارشنبه 09 بهمن 1387, 12:58 عصر
با سلام به دوستان
چگونه می توان برنامه را با استفاده از DUnit آزمایش کرد؟ و این روش تا چه حد مفید است؟
لطفا اگر مقاله ای در این زیمنه هست معرفی کنید.
با تشکر

vcldeveloper
چهارشنبه 09 بهمن 1387, 16:57 عصر
بستگی داره منظورتون از مفید بودن چی باشه. به این کار میگن Unit Testing این روش معمولا در eXtreme Programming استفاده میشده، ولی الان افرادی که با روش eXtreme Programming هم کار نمی کنند، از آن زیاد استفاده می کنند. Unit Testing یکی از انواع تست های نرم افزار هست که در آن واحدهای مختلف نرم افزار چک می شوند تا هر کدام خروجی مدنظر را تولید کنند. DUnit هم یک فریم ورک برای این کار هست که از روی JUnit که مربوط به جاوا بوده به دلفی ترجمه شده. اساس کار به این شکل هست که برنامه نویس برای هر یک از اجزای برنامه اش کدهای تست مینویسه، و در هر کد تست اون جز خاص را فراخوانی میکنه، و نتیجه فراخوانی را پردازش میکنه، تا اون نتیجه صحیح را برگرداند. بعد از اینکه همه این تست ها نوشته شدند، DUnit این امکان را به برنامه نویس میده که تمام تست ها، یا بعضی از آنها را بطور خودکار اجرا کنه. به این ترتیب، هر بخشی که به برنامه اضافه میشه، یا هر تغییری که در برنامه داده میشه، با اجرای مجدد تست ها، میشه فهمید که آیا آن تغییرات خللی در کار سایر اجزاء برنامه ایجاد کردند یا نه. Unit Testing تاثیر زیادی روی افزایش کیفیت نرم افزار تولید شده داره، ولی به تنهایی کفایت نمیکنه و در کنار آن تست های دیگه ایی هم روی نرم افزار انجام میشه، مثل تست کارکرد اجزاء نرم افزار با هم، یا تست میزان مقبولیت نرم افزار توسط مشتری، یا تست رابط کاربر و غیره.

اتوماتیک بودن اجرای این تست ها به تیم نرم افزاری کمک میکنه که بتونه یک سیستم Buid و تست خودکار بسازه، یعنی مثلا هر روز در پایان کار، برنامه ایی اجرا بشه که خودش بطور خودکار آخرین نسخه سورس کدها را از منبع کد دریافت کنه، آنها را کامپایل کنه، و تست های مختلف را بطور خودکار روی آنها انجام بده، و نتیجه تست ها را برای بررسی مدیر پروژه ثبت کنه.

این روش ها برای کسی که بهشون عادت نداره، تا حدی سخت و دست و پا گیر بنظر میاد، طوری که گاهی نوشتن تست یک کد از نوشتن خودِ کد سخت تر میشه! برای همین هم این روش بیشتر در eXtereme Programming کار برد داره، چون آنجا برنامه نویسان بصورت زوج کار می کنند، و یکی کد را می نویسد، یکی هم تست کد را. در روش های Test Driven حتی قبل از این که کد را بنویسند، تست کد را می نویسند.

درباره DUnit در سایت DUnit مقاله مفصلی هست. درباره Unit Testing هم در کتاب ها و مقالات مختلفی که به موضوع تست نرم افزار می پردازند، مطلب زیاد هست. در کتاب Delphi 2007 Handbook هم یک توضیحات مختصری درباره استفاده از DUnit در دلفی داده شده.