Unit Testing چیست و چرا باید از آن استفاده کرد؟

در این مقاله به شرح Unit Testing یا تست واحد می پردازیم.فرم ورک های انجام Unit Testing را معرفی کرده و مزایای استفاده از Unit Testing را ذکر خواهیم کرد.

Unit Testing چیست و چرا باید از آن استفاده کرد؟

Unit Testing  چیست و چرا باید از آن استفاده کنیم؟

Unit Testing  (تست واحد) امکان تست هر بخش از برنامه و کد به صورت جداگانه می باشد.تفکری که پشت Unit Testing   وجود دارد کنترل صحت و کیفیت هر بخشی از برنامه است تا اطمینان حاصل شود که همان کاری که از آن انتظار می رود را انجام می دهد.شاید انجام تست واحد به نظر کاری وقت گیر بیاید، اما اگر شما از صحت عملکرد قسمت های کوچک اطمینان حاصل کنید در اخر کار با باگ ها و مشکلات کمتری روبرو خواهید بود.این باعث کاهش زمان تولید نرم افزار و کاهش زمان تست خواهد شد.

تست واحد ربطی به کاربران و حتی تستر های نرم افزار ندارد.خود برنامه نویس کدهای خود را آزمایش می کند.برای این کار برنامه نویس می تواند از همان فرم ورکی که کد های خود را در آن نوشته است استفاده کند .در دات نت فرم ورکهای مختلفی برایUnit Testing   وجود دارد از جمله :Nunit-MbUnit- csUnit-Xunit-Visual Studio Unit Testing Framework

کاوشگر تست ویژوال استودیو یا Visual Studio Test Explorer چیست ؟

کاوشگر تست برای برنامه نویسان طراحی شده است تا تست خود را در این برنامه انجام دهند و نتیجه آن را ببینند.این کاوشگر تست می تونه برای برنامه های تحت دات نت و یا سایر برنامه ها ی تحت فرم ورک جاوا اسکریپت مانند AngularJS مورد استفاده قرار بگیرد.

کاوشگر تست تمام اطلاعات مربوط به تست کد های شما را نشان می دهد.اینکه کدام برنامه ها failed شده اند، کدام اجرا شده اندو .......

چرا باید از Unit Testing    استفاده کرد؟

Unit Testing    تعداد باگهای برنامه را کاهش میدهد.داکیومنت قوی برای برنامه ایجاد می کند و .... عموما این آزمایش‌ها جهت بررسی یک متد تهیه می‌شوند. در این مرحله باید درنظر داشت که هدف، بررسی کارآیی نرم افزار نیست. هدف این است که بررسی کنیم آیا قطعه کد جدیدی که به برنامه اضافه شده است درست کار می‌کند و آیا هدف اصلی از توسعه آن‌را برآورده می‌سازد؟

در زیر دلایل استفاده از Unit Testing    ذکر شده است

1- می توانید یک تکه به برنامه تان اضافه کنید بدون اینکه نگران این باشید که با قسمت های دیگر همخوانی دارد یا نه .فرض کنید پس از توسعه سیستمی از شما خواسته شده تا قابلیت جدیدی به آن اضافه کنید، برای اعمال این تغییرات لازم است تا کد های قبلی نیز دستکاری شوند ، کلاس ها و متد های جدید اضافه شوند .تست واحد به شما اجازه refactoring کدهای موجود را میدهد.

2- روال‌های آزمایشات صورت گرفته در آینده تبدیل به مرجع مهمی جهت درک چگونگی عملکرد قسمت‌های مختلف سیستم خواهند شد. چگونه فراخوانی شده‌اند، چگونه باید به آن‌ها مقداری را ارجاع داد و امثال آن.

3- نوشتن آزمایش‌های واحد در حین کار، برنامه نویس را وادار می‌کند که کار خود را به واحدهای کوچکتری که قابلیت بررسی مستقلی دارند، بشکند. برای مثال فرض کنید متدی را توسعه داده‌اید که پس از انجام سه عملیات مختلف بر روی یک رشته، خروجی خاصی را ارائه می‌دهد. هنگام آزمایش این متد چگونه می‌توان اطمینان حاصل کرد که کدام قسمت سبب شکست آزمایش شده است؟ به همین جهت برنامه نویس جهت ساده‌تر کردن آزمایشات، مجبور خواهد شد که کد خود را به قسمت‌های مستقل کوچکتری تقسیم کند.