کتاب راهنمای جامع تست فرانتاند با تمرکز بر کیفیت کد با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
راهنمای جامع تست فرانتاند: تضمین کیفیت کد شما راهنمای جامع تست فرانتاند: کدنویسی پایدار، محصولی درخشان! مقدمه دوره: از باگهای ناخواسته تا تجربهای بینقص برای کاربر آیا از صرف ساعتها وقت برای رفع ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره راهنمای جامع تست فرانتاند با تمرکز بر کیفیت کد
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای دوره
- 1. بخش اول: مبانی و اصول تست**
- 2. چرا تست فرانتاند اهمیت دارد؟
- 3. تست نرمافزار چیست؟ مروری بر مفاهیم پایه
- 4. هرم تست (Testing Pyramid): معرفی و کاربرد
- 5. تفاوت تست واحد (Unit)، یکپارچهسازی (Integration) و سرتاسری (End-to-End)
- 6. ذهنیت یک توسعهدهنده تستمحور
- 7. کیفیت کد چیست و چگونه با تست مرتبط میشود؟
- 8. آشنایی با توسعه تستمحور (TDD) و توسعه رفتارمحور (BDD)
- 9. ابزارهای کلیدی در اکوسیستم تست فرانتاند
- 10. هزینه رفع باگ در مراحل مختلف توسعه
- 11. تنظیم محیط توسعه برای تستنویسی
- 12. بخش دوم: تست واحد (Unit Testing) با Jest**
- 13. معرفی Jest به عنوان فریمورک تست
- 14. راهاندازی Jest در یک پروژه جاوا اسکریپت
- 15. ساختار یک تست: `describe`, `it`, `expect`
- 16. آشنایی با Matcherهای پرکاربرد در Jest
- 17. گروهبندی تستها و سازماندهی فایلهای تست
- 18. استفاده از هوکهای `beforeEach`, `afterEach`, `beforeAll`, `afterAll`
- 19. مفهوم Mocking، Stubbing و Spying
- 20. شبیهسازی (Mock) توابع با `jest.fn()`
- 21. شبیهسازی ماژولها با `jest.mock()`
- 22. شبیهسازی تایمرها و مدیریت زمان با `jest.useFakeTimers`
- 23. تست کدهای ناهمگام (Asynchronous): Promises و async/await
- 24. مفهوم پوشش کد (Code Coverage) و نحوه تحلیل گزارش آن
- 25. استراتژی تست توابع خالص (Pure Functions)
- 26. مثال عملی: تست یک تابع کمکی (Utility Function)
- 27. تست مدیریت خطا و حالات استثنا (Error Handling)
- 28. تست اسنپشات (Snapshot Testing): موارد استفاده و معایب
- 29. ساخت Matcherهای سفارشی در Jest
- 30. بهترین شیوهها در نوشتن تستهای واحد خوانا و قابل نگهداری
- 31. بخش سوم: تست کامپوننت با React Testing Library**
- 32. فلسفه React Testing Library: تست رفتار، نه جزئیات پیادهسازی
- 33. راهاندازی React Testing Library به همراه Jest
- 34. رندر کردن کامپوننتها برای تست با تابع `render`
- 35. آشنایی با انواع کوئریها: `getBy`, `findBy`, `queryBy`
- 36. اولویتبندی کوئریها: چگونه بهترین کوئری را انتخاب کنیم
- 37. استفاده از آبجکت `screen` برای دسترسی به DOM مجازی
- 38. تست رندر شدن یک کامپوننت نمایشی ساده
- 39. شبیهسازی رویدادهای کاربر با `fireEvent`
- 40. کتابخانه `user-event`: شبیهسازی واقعیتر تعاملات کاربر
- 41. تست تعاملات کاربر: کلیک، وارد کردن متن و ارسال فرم
- 42. درک عملکرد `act` و زمان استفاده از آن
- 43. تست رندر شرطی (Conditional Rendering)
- 44. تست کامپوننتهای ناهمگام (مثلاً دریافت داده از API)
- 45. معرفی Mock Service Worker (MSW) برای شبیهسازی API
- 46. راهاندازی و پیکربندی MSW برای تستها
- 47. تست هوکهای سفارشی (Custom Hooks) با `renderHook`
- 48. تست کامپوننتهای وابسته به Context API
- 49. تست کامپوننتهای مرتبط با مسیریابی (Routing)
- 50. ایجاد یک تابع `render` سفارشی برای تستهای پیچیده
- 51. روشهای دیباگ کردن تستها در React Testing Library
- 52. اشتباهات رایج در کار با React Testing Library و نحوه اجتناب از آنها
- 53. بخش چهارم: تست سرتاسری (E2E) با Cypress**
- 54. تست سرتاسری چیست و چه جایگاهی در هرم تست دارد؟
- 55. معرفی Cypress، معماری و مزایای آن
- 56. نصب و راهاندازی Cypress در یک پروژه
- 57. نوشتن اولین تست E2E و آشنایی با ساختار آن
- 58. دستورات (Commands) و ادعاها (Assertions) پایه در Cypress
- 59. انتخاب المانها در صفحه (Selectors)
- 60. تعامل با المانها: کلیک، تایپ، اسکرول و ...
- 61. مدیریت زمان و انتظار (Waits) در Cypress
- 62. استفاده از Fixtures برای مدیریت دادههای تست
- 63. رهگیری و شبیهسازی درخواستهای شبکه با `cy.intercept()`
- 64. ساخت دستورات سفارشی (Custom Commands) برای تستهای خواناتر
- 65. پیادهسازی الگوی Page Object Model (POM) برای مدیریت بهتر تستها
- 66. استفاده از متغیرهای محیطی (Environment Variables)
- 67. تست احراز هویت (Authentication) و مدیریت سشن کاربر
- 68. تست واکنشگرایی (Responsiveness) در اندازههای مختلف صفحه
- 69. اجرای تستهای Cypress در حالت Headless و در محیط CI
- 70. ابزارهای دیباگینگ در Cypress مانند Time Travel و `cy.debug()`
- 71. مقایسه کوتاه Cypress با ابزارهای دیگر مانند Playwright
- 72. بخش پنجم: کیفیت کد و موضوعات پیشرفته**
- 73. نقش لینترها (ESLint) و فرمترها (Prettier) در تضمین کیفیت
- 74. تحلیل استاتیک کد (Static Code Analysis)
- 75. مبانی تست دسترسیپذیری (Accessibility Testing)
- 76. استفاده از `jest-axe` برای تست خودکار دسترسیپذیری
- 77. مبانی تست عملکرد (Performance Testing) در فرانتاند
- 78. معرفی Lighthouse و Core Web Vitals
- 79. تست رگرسیون بصری (Visual Regression Testing): چیستی و کاربرد
- 80. معرفی Storybook برای توسعه کامپوننتها به صورت ایزوله
- 81. نوشتن تستهای تعاملی و بصری در Storybook
- 82. تست جهش (Mutation Testing) برای سنجش کیفیت مجموعه تستها
- 83. تست مبتنی بر ویژگی (Property-Based Testing)
- 84. معیارهای کیفیت کد: پیچیدگی سایکلوماتیک و بدهی فنی
- 85. استراتژیهای تست هنگام بازنویسی (Refactoring) کد
- 86. مدیریت دادههای تست (Test Data Management)
- 87. شناسایی و مدیریت تستهای ناپایدار (Flaky Tests)
- 88. بخش ششم: یکپارچهسازی، فرهنگسازی و جمعبندی**
- 89. مبانی پایپلاین CI/CD و نقش تست در آن
- 90. یکپارچهسازی تستها با GitHub Actions
- 91. گزارشدهی نتایج تست و پوشش کد در CI
- 92. ایجاد فرهنگ تست در تیمهای توسعه نرمافزار
- 93. تدوین استراتژی تست برای یک پروژه واقعی
- 94. تعادل بین سرعت توسعه و پوشش تست
- 95. بدهی فنی در تستها و نحوه مدیریت آن
- 96. آینده تست فرانتاند: هوش مصنوعی و ابزارهای نوین
- 97. بازبینی هرم تست و جمعبندی مفاهیم کلیدی دوره
- 98. خلاصه و نقشه راه برای ادامه یادگیری
- 99. **تست دیداری (Visual Testing) و تست دسترسپذیری (Accessibility Testing):** بررسی تکنیکها، ابزارها و بهترین شیوهها برای اطمینان از صحت بصری و دسترسپذیری رابط کاربری.
- 100. **استراتژیهای تست برای معماریهای مدرن فرانتاند:** پوشش تست در میکر وفرانتاندها، کامپوننتها با استیت پیچیده، و اپلیکیشنهای Server-Side Rendered (SSR) و Static Site Generated (SSG).
تگها:
Angular
code quality
end-to-end testing
Front-End Test آموزش
Front-end testing
Integration Testing
JavaScript
Programming
React
Unit Testing
Vue.js
آموزش تست فرانتاند
برنامه نویسی
تست E2E
تست فرانتاند
تست واحد
تست یکپارچه سازی
جاوا اسکریپت
کیفیت کد
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.