کتاب طراحی تستهای قابل نگهداری برای فرانتاند با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
دوره جامع طراحی تستهای قابل نگهداری برای فرانتاند اعتماد به نفس در کدنویسی: آینده فرانتاند خود را با تستهای پایدار تضمین کنید! آیا از نوشتن تستهایی که با هر تغییر کوچک در کد میشکنند خسته شدهاید...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره طراحی تستهای قابل نگهداری برای فرانتاند
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای دوره
- 1. مقدمهای بر دنیای برنامهنویسی فرانتاند
- 2. چالشهای توسعه فرانتاند مدرن
- 3. اهمیت و ضرورت تست در فرانتاند
- 4. انواع تستها: مروری کلی (Unit, Integration, E2E)
- 5. چرخه عمر توسعه نرمافزار و جایگاه تست
- 6. مفهوم "قابلیت نگهداری" در تستهای نرمافزار
- 7. معرفی اکوسیستم و ابزارهای تست فرانتاند
- 8. تنظیم محیط توسعه و ابزارهای مورد نیاز برای تست
- 9. اصول اولیه JavaScript برای تستنویسی
- 10. درک DOM و نحوه تعامل با آن در تستها
- 11. مفاهیم پایه Test Runnerها و نقش آنها
- 12. Jest به عنوان یک Test Runner قدرتمند
- 13. نصب و پیکربندی Jest/Vitest در پروژههای فرانتاند
- 14. نوشتن اولین تست ساده با Jest/Vitest
- 15. Assertionها: چگونه نتایج تست را تأیید کنیم؟
- 16. معرفی کتابخانههای کمکی Assertion (مانند Jest-dom)
- 17. مفهوم Matcherها و Custom Matcherها در Jest
- 18. Test Suites و Test Cases: سازماندهی منطقی تستها
- 19. Hookها در Jest (beforeEach, afterEach, beforeAll, afterAll)
- 20. اجرای تستها و گزارشگیری اولیه نتایج
- 21. تعریف Unit Test و هدف آن در فرانتاند
- 22. تست کردن توابع Pure و Utility JavaScript
- 23. جداسازی واحد (Unit Isolation) در تست
- 24. مفهوم Mocking در تستهای واحد
- 25. Mock کردن توابع و ماژولها با Jest
- 26. Stubbing در مقابل Mocking: تفاوتها و کاربردها
- 27. Spy کردن توابع برای رصد فراخوانیها
- 28. تست کردن Logicهای JavaScript بدون وابستگی به UI
- 29. تستهای Asynchronous: Promises و Async/Await در تستها
- 30. کار با Timerها در تست (setTimeout, setInterval)
- 31. مفهوم Test-Driven Development (TDD) و چرخه آن
- 32. پیادهسازی TDD در توسعه فرانتاند
- 33. Refactoring کد پس از نوشتن تستها
- 34. تست کردن Error Handling و سناریوهای شکست
- 35. مزایا و معایب Unit Test در پروژههای بزرگ
- 36. معرفی Component Testing در فرانتاند مدرن
- 37. چالشهای تست UI Components با وابستگیهای UI
- 38. انتخاب ابزار مناسب برای Component Testing (مثلاً React Testing Library)
- 39. نصب و پیکربندی React Testing Library (RTL) یا مشابه آن
- 40. رندر کردن کامپوننتها برای تست
- 41. Query کردن عناصر در RTL (getByRole, getByText, findBy)
- 42. شبیهسازی رویدادهای کاربری (fireEvent, user-event)
- 43. تست کردن Inputها و Formها در کامپوننتها
- 44. تست کردن وضعیت (State) داخلی کامپوننتها
- 45. تست کردن Props و Callbackها در ارتباط با والد
- 46. Mock کردن سرویسها و API در Component Test
- 47. تست کردن کامپوننتهای حاوی Effect (مانند useEffect)
- 48. تست کامپوننتهای با Context API یا Providerها
- 49. استفاده از User Event Library برای تعاملات واقعگرایانه
- 50. Best Practices برای Component Testing قابل نگهداری
- 51. تعریف Integration Test و تمایز با Unit Test و E2E
- 52. چرا به Integration Test نیاز داریم؟
- 53. تست Flowهای کاربری در سطح چند کامپوننت
- 54. تست تعامل کامپوننتها با یکدیگر
- 55. Mock کردن APIها در Integration Test (MSW یا Nock)
- 56. تست با ابزار Mock Service Worker (MSW)
- 57. تست مسیریابی (Routing) در اپلیکیشنهای SPA
- 58. تست با Context API یا Redux/Vuex Store
- 59. تست تعامل با Local Storage و Session Storage
- 60. تست Authentication و Authorization Flow در سطح Integration
- 61. تست با Shared State و Global State Management
- 62. تست Utility Hooks یا Composableهای سفارشی
- 63. تست کامپوننتهای Higher-Order یا Render Props
- 64. استراتژیهای Mocking برای Integration Test
- 65. سازماندهی Integration Testها برای مقیاسپذیری
- 66. معرفی End-to-End (E2E) Testing و اهداف آن
- 67. ابزارهای محبوب E2E (Cypress, Playwright)
- 68. انتخاب ابزار مناسب E2E برای پروژه فرانتاند
- 69. نصب و پیکربندی Cypress برای اولین بار
- 70. نوشتن اولین تست E2E با Cypress
- 71. Cypress Dashboard و قابلیتهای آن برای تحلیل تستها
- 72. Page Object Model (POM) در E2E برای نگهداری بهتر
- 73. مدیریت دادههای تست در E2E: رویکردها و چالشها
- 74. Mock کردن درخواستهای شبکه در Cypress (cy.intercept)
- 75. تست Login و User Journey کامل در E2E
- 76. تست کردن فرمهای پیچیده و اعتبارسنجی سمت کاربر
- 77. تست آپلود فایل و تعامل با عناصر پیچیده
- 78. تست Drag and Drop و تعاملات پیشرفته
- 79. تست کردن چندین مرورگر (Cross-Browser Testing)
- 80. مزایا و معایب E2E Test و جایگاه آن در هرم تست
- 81. Snapshot Testing: مزایا و موارد استفاده
- 82. Visual Regression Testing (VRT): معرفی و ابزارها (Percy, Storybook VRT)
- 83. پیادهسازی VRT با Storybook و Chromatic
- 84. Accessibility Testing (A11y): اصول و ابزارها (Lighthouse, axe-core)
- 85. تست کارایی (Performance Testing) در فرانتاند (اصول اولیه)
- 86. تست امنیتی (Security Testing) در فرانتاند (اصول اولیه)
- 87. Mutation Testing: معرفی و کاربردها در سنجش کیفیت تستها
- 88. تستهای مبتنی بر Property (Property-based Testing)
- 89. Code Coverage: اندازهگیری پوشش کد و تفسیر نتایج
- 90. پیکربندی Code Coverage با Jest/Istanbul
- 91. اصول تستنویسی قابل نگهداری: DRY, YAGNI, Single Responsibility
- 92. معماری تست: سازماندهی پوشهها و فایلهای تست
- 93. جلوگیری از تستهای Flaky (ناپایدار) و استراتژیهای رفع آنها
- 94. Test Data Management: استراتژیها و ابزارها
- 95. Mock Factories و Builderها برای تولید داده تست
- 96. Test Reporting و ابزارهای آن برای تیمهای بزرگ
- 97. Debugging تستهای فرانتاند: تکنیکها و ابزارها
- 98. ادغام تستها در CI/CD Pipeline (GitHub Actions, GitLab CI)
- 99. فرهنگ توسعهدهنده تستمحور و مزایای آن
- 100. آینده تست فرانتاند: روندهای جدید و ابزارهای نوظهور
تگها:
frontend testing
JavaScript testing
React testing
Vue.js Testing
آموزش فرانتاند
اتوماسیون تست
برنامه نویسی
پایداری تست
تست E2E
تست UI
تست رابط کاربری
تست فرانتاند
تست قابل نگهداری
تست نویسی فرانتاند
فرانتاند
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.