close
تبلیغات در اینترنت
بررسي ميزان پوشش آزمون های واحد به كمك برنامه PartCover
مرورگرهای پیشنهادی :
موضوعات
  • مهندسی کامپیوتر و IT
  • پایان نامه مهندسی کامپیوتر
  • پایان نامه فناوری اطلاعات IT
  • جزوات مهندسی کامپیوتر و IT
  • مقالات ترجمه شده کامپیوتر و IT
  • مهندسی عمران
  • پاورپوینت مهندسی عمران
  • جزوات مهندسی عمران
  • پایان نامه مهندسی عمران
  • رشته مدیریت (تمامی گرایش ها)
  • مقالات ترجمه شده رشته مدیریت
  • پایان نامه رشته مدیریت
  • پاورپوینت رشته مدیریت
  • رشته حقوق (تمامی گرایش ها)
  • پایان نامه رشته حقوق
  • جزوات رشته حقوق
  • کار تحقیقی رشته حقوق
  • پژوهش های قانون اساسی
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی مکانیک
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پایان نامه و مقاله علوم انسانی
  • اقتصاد
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • روانشناسی و علوم تربیتی
  • گرافیک
  • هنر
  • بیمه
  • صنایع دستی
  • پاورپوینت - پایان نامه و مقاله پزشکی
  • بهداشت عمومی
  • روان پزشکی
  • پزشکی
  • ژنتیک
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • کامپیوتر و IT
    برق
    عمران
    مکانیک
    عمومی
    پزشکی
  • پایان نامه بررسی چالشهای امنیتی در محاسبات ابری و راهکارهای کاهش آن
  • پایان نامه ارائه مدلی برای سیستم­های توصیه گر در شبکه های مبتنی بر اعتماد
  • پایان نامه بررسی تغییرات رابط کاربری بر نحوه تعامل کاربر با شبکه های اجتماعی
  • پایان نامه الگوریتم طبقه بندی k نزدیک ترین همسایه فازی داده برای محرمانگی در محاسبات ابری
  • دانلود فایل ورد پایان نامه (Word) بررسی شبکه های کامپیوتری سخت افزار و نرم افزار شبکه
  • دانلود پایان نامه ارائه یک سیستم تشخیص ورود به شبکه کامپیوتری با استفاده از الگوریتم فراابتکاری
  • دانلود فایل ورد پایان نامه Word نهان نگاری تصاویر دیجیتال با استفاده از تبدیلات موجک چندگانه
  • پایان نامه استفاده از شبکه های نرم افزار محور(SDN) مدیریت زیرساخت شبکه های اجتماعی (CN)
  • دانلود فایل ورد پایان نامه Word امکان سنجی کاربرد یادگیری سیار در ایران
  • دانلود پایان نامه ارشد : نسل آینده ی سیستم های کامپیوتری: اینترنت اشیاء (IOT)
  • پایان نامه بررسی ساختار شبکه های ATM
  • پایان نامه استفاده از شبکه عصبی مصنوعی مبتنی برالگوریتم رزونانس تطبیقی دربازشناسی چهره
  • رفع ماتی از تصاویر چهره به منظور استفاده در یک سیستم بازشناسی چهره
  • ارائه مدلی برای حل مسائل ارضاء محدودیت با استفاده از سیستمهای چند عامله
  • اندازه گیری بلوغ حاکمیت معماری سرویس گرایی سازمان با استفاده از چارچوب COBIT
  • در صورتی که مقاله یا پایان نامه و جزوه مورد نظر خود را در اینجا پیدا نکردید، ناقص و یا حذف شده باشد به سایت ام پی فایل مراجعه کنید

    www.mpfile.ir (اینجا کلیک کنید)

    یا به شماره 09395794439 پیامک بزنید

    هميشه در حين توسعه‌ي يك برنامه اين سؤالات وجود دارند:
    - چند درصد از برنامه تست شده است؟
    - براي چه تعدادي از متدهاي موجود آزمون واحد نوشته‌ايم؟
    - آيا همين آزمون‌هاي واحد نوشته شده و موجود، كامل هستند و تمام عملكرد‌هاي متدهاي مرتبط را پوشش مي‌دهند؟

    اين سؤالات به صورت خلاصه مفهوم
    Code coverage را در بحث Unit testing ارائه مي‌دهند: براي چه قسمت‌هايي از برنامه آزمون واحد ننوشته‌ايم و ميزان پوشش برنامه توسط آزمون‌هاي واحد موجود تا چه حدي است؟
    بررسي اين سؤالات در يك پروژه‌ي كم حجم، ساده بوده و به صورت بازبيني بصري ممكن است. اما در يك پروژه‌ي بزرگ نياز به ابزار دارد. به همين منظور تعدادي برنامه جهت بررسي code coverage مختص پروژه‌هاي دات نتي تابحال توليد شده‌اند كه در ادامه ليست آن‌ها را مشاهده مي‌كنيد:

    و ...

     



    تمام اين‌ها تجاري هستند. اما در اين بين برنامه‌ي PartCover سورس باز و رايگان بوده و همچنين مختص به NUnit نيز تهيه شده است. اين برنامه را از اينجا مي‌توانيد دريافت و نصب كنيد. در ادامه نحوه‌ي تنظيم آن‌را بررسي خواهيم كرد:

    الف) ايجاد يك پروژه آزمون واحد جديد
    جهت توضيح بهتر سه سؤال مطرح شده در ابتداي اين مطلب، بهتر است يك مثال ساده را در اين زمينه مرور نمائيم: (پيشنياز: (
    +))
    يك Solution جديد در VS.NET آغاز شده و سپس دو پروژه جديد از نوع‌هاي كنسول و Class library به آن اضافه شده‌اند:

    بررسي ميزان پوشش آزمون‌هاي واحد به كمك برنامه PartCover



    پروژه كنسول، برنامه اصلي است و در پروژه Class library ، آزمون‌هاي واحد برنامه را خواهيم نوشت.
    كلاس اصلي برنامه كنسول به شرح زير است:

     
    1. namespace TestPartCover  
    2. {  
    3. public class Foo  
    4. {  
    5.     public int DoFoo(int x, int y)  
    6.     {  
    7.         int z = 0;  
    8.         if ((x > 0) && (y > 0))  
    9.         {  
    10.             z = x;  
    11.         }  
    12.         return z;  
    13.     }  
    14.   
    15.     public int DoSum(int x)  
    16.     {  
    17.         return ++x;  
    18.     }  
    19. }  
    20. }  
     

    و كلاس آزمون واحد آن در پروژه class library مثلا به صورت زير خواهد بود:

     
    1. using NUnit.Framework;  
    2.   
    3. namespace TestPartCover.Tests  
    4. {  
    5. [TestFixture]  
    6. public class Tests  
    7. {  
    8.     [Test]  
    9.     public void TestDoFoo()  
    10.     {  
    11.         var result = new Foo().DoFoo(-1, 2);  
    12.         Assert.That(result == 0);  
    13.     }  
    14. }  
    15. }  
     

    كه نتيجه‌ي بررسي آن توسط NUnit test runner به شكل زير خواهد بود:

    بررسي ميزان پوشش آزمون‌هاي واحد به كمك برنامه PartCover



    به نظر همه چيز خوب است! اما آيا واقعا اين آزمون كافي است؟!

    ب) در ادامه به كمك برنامه‌ي PartCover مي‌خواهيم بررسي كنيم ميزان پوشش آزمون‌هاي واحد نوشته شده تا چه حدي است؟

    پس از نصب برنامه، فايل PartCover.Browser.exe را اجرا كرده و سپس از منوي فايل، گزينه‌ي Run Target را انتخاب كنيد تا صفحه‌ي زير ظاهر شود:

    بررسي ميزان پوشش آزمون‌هاي واحد به كمك برنامه PartCover



    توضيحات:
    در قسمت executable file آدرس فايل nunit-console.exe را وارد كنيد. اين برنامه چون در حال حاضر براي دات نت 2 كامپايل شده امكان بارگذاري dll هاي دات نت 4 را ندارد. به همين منظور فايل nunit-console.exe.config را باز كرده و تنظيمات زير را به آن اعمال كنيد (مهم!):

     
    1. <configuration>  
    2. <startup>  
    3. <supportedRuntime version="v4.0.30319" />  
    4. </startup>  

    و همچنين
     
    1. <runtime>  
    2. <loadFromRemoteSources enabled="true" />  
     


    در ادامه مقابل working directory‌ ، آدرس پوشه bin پروژه unit test را تنظيم كنيد.
    در اين حالت working arguments به صورت زير خواهند بود (در غيراينصورت بايد مسير كامل را وارد نمائيد):

     
    1. TestPartCover.Tests.dll /framework=4.0.30319 /noshadow  

     

    نام dll‌ وارد شده همان فايل class library توليدي است. آرگومان بعدي مشخص مي‌كند كه قصد داريم يك پروژه‌ي دات نت 4 را توسط NUnit بررسي كنيم (اگر ذكر نشود پيش فرض آن دات نت 2 خواهد بود و نمي‌تواند اسمبلي‌هاي دات نت 4 را بارگذاري كند). منظور از noshadow اين است كه NUnit‌ مجاز به توليد shadow copies از اسمبلي‌هاي مورد آزمايش نيست. به اين صورت برنامه‌ي PartCover مي‌تواند بر اساس StackTrace نهايي، سورس متناظر با قسمت‌هاي مختلف را نمايش دهد.
    اكنون نوبت به تنظيم Rules آن است كه يك سري RegEx هستند؛ به عبارتي چه اسمبلي‌هايي آزمايش شوند و كدام‌ها خير:
     

    1. +[TestPartCover]*  
    2. -[nunit*]*  
    3. -[log4net*]*  

    همانطور كه ملاحظه مي‌كنيد در اينجا از اسمبلي‌هاي NUnit و log4net صرفنظر شده است و تنها اسمبلي TestPartCover (همان برنامه كنسول، نه اسمبلي برنامه آزمون واحد) بررسي خواهد گرديد.
    اكنون بر روي دكمه Save در اين صفحه كليك كرده و فايل نهايي را ذخيره كنيد (بعدا توسط دكمه Load در همين صفحه قابل بارگذاري خواهد بود). حاصل بايد به صورت زير باشد:

     
    1. <PartCoverSettings>  
    2. <Target>D:ProgLibsNUnitbinnet-2.0nunit-console.exe</Target>  
    3. <TargetWorkDir>D:Prog1390TestPartCoverTestPartCover.TestsbinDebug</TargetWorkDir>  
    4. <TargetArgs>TestPartCover.Tests.dll /framework=4.0.30319 /noshadow</TargetArgs>  
    5. <Rule>+[TestPartCover]*</Rule>  
    6. <Rule>-[nunit*]*</Rule>  
    7. <Rule>-[log4net*]*</Rule>  
    8. </PartCoverSettings>  

    براي شروع به بررسي، بر روي دكمه Start كليك نمائيد. پس از مدتي، نتيجه به صورت زير خواهد بود:

    بررسي ميزان پوشش آزمون‌هاي واحد به كمك برنامه PartCover



    بله! آزمون واحد تهيه شده تنها 39 درصد اسمبلي TestPartCover را پوشش داده است. مواردي كه با صفر درصد مشخص شده‌اند، يعني فاقد آزمون واحد هستند و نكته مهم‌تر پوشش 91 درصدي متد DoFoo است. براي اينكه علت را مشاهده كنيد از منوي View ، گزينه‌ي Coverage detail را انتخاب كنيد تا تصوير زير نمايان شود:

    بررسي ميزان پوشش آزمون‌هاي واحد به كمك برنامه PartCover

     

     

     

     

     

     

     

     

     

     

     

    قسمت‌ نارنجي در اينجا به معناي عدم پوشش آن در متد TestDoFoo تهيه شده است. تنها قسمت‌هاي سبز را توانسته‌ايم پوشش دهيم و براي بررسي تمام شرط‌هاي اين متد نياز به آزمون‌هاي واحد بيشتري مي‌باشد.

    روش نهايي كار نيز به همين صورت است. ابتدا آزمون واحد تهيه مي‌شود. سپس ميزان پوشش آن بررسي شده و در ادامه سعي خواهيم كرد تا اين درصد را افزايش دهيم.


    در صورتی که مقاله یا پایان نامه و جزوه مورد نظر خود را در اینجا پیدا نکردید، ناقص و  یا حذف شده باشد به سایت ام پی فایل مراجعه کنید

    www.mpfile.ir (اینجا کلیک کنید)

    یا به شماره 09395794439 پیامک بزنید

    درباره :
    برچسب ها : بررسي ميزان پوشش آزمون های واحد به كمك برنامه PartCover ,
    بازدید : 473 تاریخ : نویسنده : بهرام محمدپور | نظرات ()
    ارسال نظر برای این مطلب

    نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
    کد امنیتیرفرش کد امنیتی
    مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • ترجمه مقاله تشخیص وسایل نقلیه مخرب به وسیله ی نظارت بر شبکه های Ad-hoc (شنبه 23 تیر 1397)
  • پاورپوینت ساختمان پیش ساخته دو طبقه L.S.F در 31 اسلاید کاربردی و آموزشی و کاملا قابل ویرایش (شنبه 23 تیر 1397)
  • کار تحقیقی بررسی روند رسیدگی به جرایم در تعزیرات حکومتی (شنبه 23 تیر 1397)
  • کار تحقیقی رسیدگی به دادخواست خلع ید و تخلیه با تکیه بر رویه قضایی (شنبه 23 تیر 1397)
  • کار تحقیقی بررسی حق حضانت فرزند در قانون مدنی و قانون حمایت خانواده (شنبه 23 تیر 1397)
  • کار تحقیقی بررسی حق تمتع و اسقاط تمتع در قانون مدنی (شنبه 23 تیر 1397)
  • کار تحقیقی حال شدن دیون در حقوق ایران (شنبه 23 تیر 1397)
  • کار تحقیقی بررسی جرم ارتشا در فقه و حقوق (شنبه 23 تیر 1397)
  • پاورپوینت ترنسپوزون ها (عناصر متحرک) (شنبه 23 تیر 1397)
  • پاورپوینت معرفی تکنیک نوردرن بلات(northern blot) (شنبه 23 تیر 1397)
  • پاورپوینت سوخت های زیستی(biofuel) (شنبه 23 تیر 1397)
  • مکانیسم ها و راهکارهای افزایش بیان در گیاهان تراریخت (شنبه 23 تیر 1397)
  • سوال و جواب جزای عمومی 1 پیام نور با پاسخ تشریحی (پنجشنبه 21 تیر 1397)
  • کار تحقیقی جایگاه حق ارتفاق در قانون ایران (پنجشنبه 21 تیر 1397)
  • کار تحقیقی جایگاه حق انتفاع در قانون ایران (پنجشنبه 21 تیر 1397)
  • آمار سایت
  • کل مطالب : 3854
  • افراد آنلاین : 14
  • تعداد اعضا : 2920
  • بازدید امروز : 3,425
  • باردید دیروز : 3,622
  • گوگل امروز : 15
  • گوگل دیروز : 14
  • بازدید هفته : 17,174
  • بازدید ماه : 69,413
  • بازدید سال : 113,552
  • بازدید کلی : 5,685,075
  • کدهای اختصاصی