close
تبلیغات در اینترنت
بررسي ميزان پوشش آزمون های واحد به كمك برنامه PartCover
مرورگرهای پیشنهادی :
موضوعات
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی فناوری اطلاعات
  • مهندسی کامپیوتر
  • مهندسی مکانیک
  • مهندسی عمران
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پایان نامه و مقاله علوم انسانی
  • حقوق
  • اقتصاد
  • مدیریت
  • جغرافیا
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • احکام و معارف اسلامی
  • روانشناسی و علوم تربیتی
  • گرافیک
  • هنر
  • بیمه
  • تاریخ
  • موسیقی
  • صنایع دستی
  • پایان نامه و مقاله پزشکی
  • علوم آزمایشگاهی
  • بهداشت عمومی
  • طب هسته ای
  • چشم پزشکی
  • جنین شناسی
  • روان پزشکی
  • دندانپزشکی
  • پیراپزشکی
  • دامپزشکی
  • طب سنتی
  • داروسازی
  • پرستاری
  • پزشکی
  • مامایی
  • آناتومی
  • ژنتیک
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • فیزیک
  • پاورپوینت و اسلاید فنی مهندسی
  • پاورپوینت معماری
  • پاورپوینت کامپیوتر و IT
  • نمونه سوالات استخدامی
  • نمونه سوالات استخدامی بانک
  • نمونه سوالات استخدامی آموزش و پرورش
  • نمونه سوالات استخدامی شهرداری
  • نمونه سوالات استخدامی تامین اجتماعی
  • نمونه سوالات استخدامی دستگاه اجرایی
  • نمونه سوالات استخدامی فنی و حرفه ای
  • نمونه سوالات استخدامی وزارت خانه ها
  • نمونه سوالات استخدامی نظامی
  • سایر نمونه سوالات استخدامی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات مهندسی عمران
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات مهندسی کامپیوتر و IT
  • جزوات رشته زمین شناسی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • جزوات حقوق
  • گزارش کارآموزی فنی مهندسی
  • مهندسی کامپیوتر (سخت افزار - نرم افزار)
  • مهندسی مکانیک
  • مهندسی برق
  • مهندسی شیمی
  • مهندسی فناوری اطلاعات
  • صنایع غذایی
  • حسابداری
  • مدیریت
  • مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • بررسی رابطه تيپ های شخصيتی دبيران دبيرستانهای دخترانه با میزان موفقیت (پنجشنبه 13 اردیبهشت 1397)
  • بررسی پيش تجربی سياهه مشاوره ای لوئيس سوال هاي شماره 3 تا 45 (از مقياس اطمينان اجتماعی) (پنجشنبه 13 اردیبهشت 1397)
  • بررسی مقدماتی شخصيتی كرنل براي سوال 36 و 37 بر روي دانشجويان دانشگاه آزاد اسلامي (پنجشنبه 13 اردیبهشت 1397)
  • مقايسه مشكلات زبان عادی ويژه (چهارشنبه 12 اردیبهشت 1397)
  • مقایسه ویژگی های شخصیتی شخصیت ضد اجتماعی و انحرافات اجتماعی در بین دانشجویان دختر و پسر (جمعه 07 اردیبهشت 1397)
  • بررسی رابطة تك فرزندی با اختلالات رفتاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی توصيفی موسيقی و موسيقی درمانی بر روی انسان ها (چهارشنبه 05 اردیبهشت 1397)
  • بررسی تأثير ناكامی در ميزان پرخاشگری بين دانش آموزان دختر و پسر مقطع ابتدايی (چهارشنبه 05 اردیبهشت 1397)
  • بررسی ميزان تأثير اردوهای تربيتی ـ آموزشی بر رشد شخصيت دانش آموزان (چهارشنبه 05 اردیبهشت 1397)
  • نياز سنجی كاركنان اطلاعات (چهارشنبه 05 اردیبهشت 1397)
  • مقايسه هوش هيجانی و جرأت ورزی در دانش‌آموزان دختر و پسر نابينا و عادی (چهارشنبه 05 اردیبهشت 1397)
  • مقایسه میزان هیجان خواهی دانشجویان متأهل و مجرد (چهارشنبه 05 اردیبهشت 1397)
  • مددکاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی علل گرايش جوانان و نوجوانان به قرص های روان گردان (چهارشنبه 05 اردیبهشت 1397)
  • شناسايی نيازهای آموزشی و ترويجی توتون کاران (چهارشنبه 05 اردیبهشت 1397)
  • هميشه در حين توسعه‌ي يك برنامه اين سؤالات وجود دارند:
    - چند درصد از برنامه تست شده است؟
    - براي چه تعدادي از متدهاي موجود آزمون واحد نوشته‌ايم؟
    - آيا همين آزمون‌هاي واحد نوشته شده و موجود، كامل هستند و تمام عملكرد‌هاي متدهاي مرتبط را پوشش مي‌دهند؟

    اين سؤالات به صورت خلاصه مفهوم
    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 تهيه شده است. تنها قسمت‌هاي سبز را توانسته‌ايم پوشش دهيم و براي بررسي تمام شرط‌هاي اين متد نياز به آزمون‌هاي واحد بيشتري مي‌باشد.

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


    کسب درآمد با فروش فایل های سایت ما

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

    نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
    آمار سایت
  • آمار مطالب
  • کل مطالب : 4311
  • کل نظرات : 17
  • آمار کاربران
  • افراد آنلاین : 9
  • آمار بازدید
  • بازدید امروز : 3,597
  • باردید دیروز : 13,194
  • گوگل امروز : 32
  • گوگل دیروز : 36
  • بازدید هفته : 16,791
  • بازدید ماه : 155,601
  • بازدید سال : 843,521
  • بازدید کلی : 6,697,247
  • نظرسنجی
    چه مطالبی در سایت قرار دهیم؟





    کدهای اختصاصی