در این قسمت از سایت پرووید آموزش ویدیویی رایگان دیگری را در رابطه با توسعه تست محور نرم افزار و یا همان Test-Driven Development در اختیار شما قرار می دهیم. امیدواریم که این آموزش نیز مورد توجه تمامی عزیزان قرار بگیرد. در ابتدای کار توصیه میکنیم که از آموزش تست واحد Unit Testing برای برنامه نویسان سی شارپ در سی شارپ و آموزش توسعه تست محور Test Driven Development پیشرفته در سی شارپ استفاده کنید.
توسعه تست محور و یا Test-Driven Development چیست؟
توسعه تست محور که به آن Test-Driven Development و یا به طور کوتاه TDD نیز میگوییم، یک فرآیند توسعه نرم افزار و یا Software Development Process می باشد. که تماما تمرکز خود را بر روی یک سیکل کوتاه قرار داده است. بر اساس این سیکل ابتدا نیازمندی ها، تبدیل به Test Case های بسیار مشخص و دقیق می شوند. پس از انجام این کار کدهایی در برنامه لحاظ میگردند تا منجر به Pass شدن تست ها شوند. پس از انجام این کار نیز در نهایت تست های نوشته شده Refactor شده و شرایط بهتری را دریافت خواهند کرد. در رابطه با Refactoring می توانید از آموزش ریفکتورینگ Refactoring در سی شارپ استفاده کنید. استفاده کردن از TDD باعث میشود تا کد هایی که عملاً نیازمندی خاصی را پیادهسازی نمیکنند به درون برنامه وارد نشوند. جالب است بدانید که فرآیند Test-Driven Development مرتبط با Test-First Programming و مفاهیم آن میباشد. که در سال ۱۹۹۹ در مبحث Extreme Programming مطرح شد. از Test-Driven Development می توان برای Debug کردن و اشکال زدایی از کدهای موروثی نیز استفاده کرد. در این رابطه می توانید از آموزش دیباگ کردن Debugging در سی شارپ نیز دیدن کنید. بگذارید در ادامه به طور دقیق تری در رابطه با سیکل توسعه نرم افزار با استفاده از روش Test-Driven Development صحبت کنیم.
مرحله اول: اضافه کردن یک تست
در توسعه نرم افزار مبتنی بر تست و یا Test-Driven Development هر نیازمندی جدید در ابتدا با نوشتن یک تست پیاده سازی می شود. نیازمندی های مختلف برنامه پس از تشخیص داده شدن از روشهای مختلف از قبیل Use Case ها و یا User Store ها توسط برنامه نویس در قالب تست های بسیار کوتاه و شفاف پیاده سازی می گردند. برای این کار می توان از Testing Framework های مختلف استفاده کرد. برای مثال از NUnit و MsTest و XUnit می توانید در توسعه تست محور استفاده کنید. در این رابطه می توانید از بسته ی آموزش ویدئویی Unit Testing فریم ورک xUnit.net و آموزش تست واحد Unit Testing پیشرفته استفاده کنید.
مرحله دوم: اجرا کردن تمامی تست ها و Fail شدن آنها
پس از لحاظ نمودن تست ها برای پیادهسازی کردن نیازمندی های جدید برنامه نویس آنها را اجرا کرده و طبیعتاً در مرحله اول شاهد شکست خوردن و یا Fail شدن آنها می شود. این موضوع باعث میشود تا برنامه نویس با تفکر و اعتماد به نفس بیشتری اقدام به پیاده سازی کردن نیازمندی های جدید کند.
مرحله سوم: نوشتن کد
در مرحله بعد برنامه نویس باید Production Code های مورد نیاز برای Pass شدن تست ها را لحاظ کند. این مرحله فقط تمرکز خود را بر روی Pass شدن تست ها قرار داده است. به عبارت دیگر در این مرحله برنامه نویس خود را درگیر با مباحث مربوط به کد نویسی تمیز نمی کند. در رابطه می توانید از آموزشکدنویسی تمیز: نوشتن کد برای انسان ها نیز استفاده کنید. شرایط کد در مراحل بعدی بهبود پیدا میکند. پس در این مرحله فقط هدف نوشتن کدی است که بتواند تست مورد نظر را با موفقیت Pass کند. البته برنامه نویس باید مراقب این باشد که کدهایی را لحاظ نکند که بیش از آنچه که تست ها به آنها نیاز دارند باشد.
مرحله چهارم: اجرا کردن تست ها
بعد از اینکه برنامه نویس توانست Production Code های مورد نیاز برای Pass شدن تست ها را لحاظ کند، توانسته است Requirement ها و یا نیازمندیها را پیاده سازی نماید. اما طبیعتا شرایط کدی که تا به حال نوشته شده اند، مناسب نیستند، بنابراین در مرحله بعدی کدهای نوشته شده Refactor میگردند.
مرحله پنجم: Refactor کردن کد
اهمیت Refactor کردن کد امروزه بر هیچ کس پوشیده نیست برای یادگیری مباحث مربوط به کد نویسی تمیز و Refcactor کردن کدها آموزش های زیادی بر روی وبسایت پرووید قرار داده شدهاند که می توانید از آموزشکدنویسی تمیز: نوشتن کد برای انسان ها و آموزش اصول کدنویسی با کیفیت بالا در سی شارپ و آموزش ریفکتورینگ Refactoring در سی شارپ استفاده کنید. پس از نوشته شدن کدها در مرحله اول توسط برنامه نویس نیاز است که آنها Refactor بشوند و مشکلات معمول حل و فصل بگردد. برای مثال Code Duplication و یا کدهای تکراری که به عنوان یک Code Smell شناخته می شوند، می بایست در این مرحله کشف شده و حل و فصل بگردند. نام گذاری مناسب برای متغیر ها به منظور افزایش قابلیت های Readability و Maintanability نیز می بایست در این مرحله لحاظ بگردند. استفاده کردن از مفاهیم مربوط به برنامه نویسی شی گرا و همچنین پیاده سازی الگوهای طراحی مناسب برای بهبود عملکرد و شرایط کد بخش دیگری از عملیاتی هستند که برنامه نویس در این قسمت آنها را انجام خواهد داد. در رابطه با این دو موضوع نیز می توانید از آموزش شی گرایی OOP در سی شارپ و آموزش الگو های طراحی (Design Pattern) ها در سی شارپ استفاده کنید. حذف کردن Magic Number ها و Magic String ها و استفاده کردن از Constant ها نیز بخش دیگری از شرایطی هستند که باید به آنها توجه شود و برنامه نویس در این قسمت آنها را انجام خواهد داد. در این رابطه توصیه میکنیم از آموزش رایگان کد نویسی تمیز Clean Coding در سی شارپ استفاده شود. این تمام سیکل مربوط به توسعه نرم افزارها با روش تست محور و یا Test-Driven Development میباشند. پس از لحاظ نمودن و پیاده سازی یک نیازمندی با این روش، برای پیاده سازی کرد نیازمندیهای دیگر نیز دقیقا همین سیکل تکرار خواهد شد.
در این قسمت از وبسایت پرووید آموزش ویدیویی رایگانی را برای یادگیری توسعه تست محور نرم افزار و یا همان Test-Driven Development به شما تقدیم میکنیم. پیشتر نیز آموزشهای مختلفی در رابطه با تست نرم افزار بر روی وبسایت پرووید قرار گرفتهاند. که به سادگی می توانید از آن ها استفاده کنید. دو مورد از مهمترین آنها آموزش تست واحد Unit Testing پیشرفته و آموزش نکات طلایی تست واحد Unit Test پیشرفته در سی شارپ میباشند. امیدوارم که این آموزش نیز مورد توجه تمامی عزیزان قرار بگیرد.
لینک های دانلود
- دانلود رایگان فایل های ویدئویی TDD – Episode 1
- دانلود رایگان فایل های ویدئویی TDD – Episode 2
- دانلود رایگان فایل های ویدئویی TDD – Episode 3
- دانلود رایگان فایل های ویدئویی TDD – Episode 4
- دانلود رایگان فایل های ویدئویی TDD – Episode 5
- دانلود رایگان فایل های ویدئویی TDD – Episode 6
- دانلود رایگان فایل های ویدئویی TDD – Episode 7
- دانلود رایگان فایل های ویدئویی TDD – Episode 8
- دانلود رایگان فایل های ویدئویی TDD – Episode 9
- دانلود رایگان فایل های ویدئویی TDD – Episode 10
- دانلود رایگان فایل پروژه Exercise Files
- دانلود رایگان NUnit 3 Test Adapter
- پسورد تمامی فایل های سایت www.provid.ir است.