اپلیکیشن اندرویدی فلشکارت آموزشی راهنمای جامع تست فرانتاند با تمرکز بر کیفیت کد
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره راهنمای جامع تست فرانتاند با تمرکز بر کیفیت کد
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای دوره
- 1. چرا تستنویسی در توسعه فرانتاند حیاتی است؟
- 2. مفاهیم پایه تست نرمافزار: تعریف و انواع تست
- 3. سیکل توسعه نرمافزار و جایگاه تست فرانتاند
- 4. اهداف اصلی تست فرانتاند: اطمینان از کیفیت، قابلیت اطمینان، تجربه کاربری
- 5. انواع تست در فرانتاند: Unit, Integration, E2E, Visual, Performance, Accessibility
- 6. هرم تست (Test Pyramid) و استراتژیهای پیادهسازی آن
- 7. نقش کیفیت کد در تستپذیری (Testability)
- 8. مقدمهای بر ابزارهای تست فرانتاند: اکوسیستم و انتخاب صحیح
- 9. مفاهیم کلیدی JavaScript برای تستنویسی: Closure, Scope, Prototype
- 10. کار با DOM در JavaScript: انتخابگرها و دستکاری عناصر
- 11. رویدادها (Events) و Event Handling در مرورگر
- 12. عملیات Asynchronous در JavaScript: Callbacks, Promises, Async/Await
- 13. ماژولها و سازماندهی کد در پروژههای فرانتاند
- 14. محیطهای اجرا (Runtime Environments): مرورگر و Node.js در تست
- 15. انتخاب فریمورک تست: Jest، Vitest، Mocha، Jasmine
- 16. معرفی و نصب Jest: شروع به کار با Jest
- 17. نوشتن اولین تست Unit با Jest: `describe`, `it`, `expect`
- 18. Matcherهای پایه Jest: `toBe`, `toEqual`, `not`, `toBeTruthy`, `toBeFalsy`
- 19. تنظیمات اولیه پروژه تست: `package.json` و فایلهای پیکربندی
- 20. تست توابع خالص (Pure Functions) در JavaScript
- 21. تست کامپوننتهای فرانتاند بدون فریمورک خاص (Vanilla JS)
- 22. معرفی کتابخانههای کمکی: React Testing Library (RTL) vs Enzyme
- 23. نصب و راهاندازی React Testing Library
- 24. اصول RTL: "The more your tests resemble the way your software is used..."
- 25. Querying در RTL: `getBy`, `findBy`, `queryBy` و انواع Selectorها
- 26. Interaction با کامپوننتها در RTL: `fireEvent`, `userEvent`
- 27. تست State و Props در کامپوننتهای React با RTL
- 28. تست Custom Hooks در React
- 29. تست Render Conditional و لیستها در کامپوننتها
- 30. Mocking و Spying با Jest: `jest.fn()`, `jest.spyOn()`
- 31. Mocking ماژولها و سرویسها در Jest
- 32. مدیریت Side Effects در تستهای Unit
- 33. بهترین شیوهها برای نوشتن تستهای Unit موثر و قابل نگهداری
- 34. تفاوت Unit Test و Integration Test در فرانتاند
- 35. چرا تستهای Integration مهم هستند؟
- 36. استراتژیهای تست Integration برای کامپوننتها و ماژولها
- 37. تست تعامل بین کامپوننتهای والد و فرزند
- 38. تست فرمها و اعتبارسنجی (Validation) با RTL
- 39. تست ارتباط با APIها: Mocking API calls با MSW (Mock Service Worker)
- 40. تست Redux/Zustand/Context API (State Management)
- 41. تست روترها (React Router, Vue Router)
- 42. مدیریت دادههای تست (Test Data Management)
- 43. Refactoring برای تستپذیری: اصول SOLID و Dependency Injection
- 44. مفهوم Test Doubles: Stubs, Mocks, Spies, Fakes, Dummies
- 45. تکنیکهای پیشرفته Mocking برای سناریوهای پیچیده
- 46. تست Asynchronous Code با Jest: `async/await`, `waitFor`, `waitForElementToBeRemoved`
- 47. تست Error Boundaries و مدیریت خطا در UI
- 48. تست کامپوننتهای شخص ثالث (Third-Party Libraries)
- 49. مقدمهای بر Test-Driven Development (TDD) در فرانتاند
- 50. پیادهسازی چرخه TDD: Red, Green, Refactor
- 51. مزایای TDD در بهبود کیفیت کد و طراحی
- 52. معرفی تست End-to-End: اهداف و چالشها
- 53. انتخاب ابزار E2E: Cypress، Playwright، Selenium
- 54. نصب و راهاندازی Cypress: اولین تست E2E
- 55. معماری Cypress و نحوه کار با آن
- 56. Selectorها در Cypress: انتخاب عناصر به روش Robust
- 57. Interaction با عناصر UI در Cypress: `click`, `type`, `select`
- 58. Assertions در Cypress: `should`, `expect`
- 59. مدیریت Waitها و Synchronization در Cypress
- 60. Mocking API Calls در Cypress (Cypress Intercept)
- 61. تست فلوهای کاربری پیچیده با Cypress
- 62. مدیریت دادههای تست در تستهای E2E
- 63. تست Login و Authentication Flow با Cypress
- 64. بهترین شیوهها برای نوشتن تستهای E2E پایدار (Reliable)
- 65. معرفی Playwright: مزایا و تفاوت با Cypress
- 66. نصب و راهاندازی Playwright: شروع به کار
- 67. تست چند مرورگر (Cross-Browser Testing) با Playwright
- 68. تست ریسپانسیو بودن UI با Playwright (Viewport)
- 69. تست Accessibility در E2E با ابزارهای کمکی (مانند Axe)
- 70. گزارشگیری و Dashboards در Cypress و Playwright
- 71. مقایسه Cypress و Playwright: انتخاب صحیح بر اساس نیاز پروژه
- 72. مقدمهای بر Visual Regression Testing: چرا و چگونه؟
- 73. ابزارهای Visual Regression Testing: Storybook، Percy، Chromatic، Happo
- 74. راهاندازی Storybook برای توسعه کامپوننت و تست بصری
- 75. نوشتن Storyها برای کامپوننتها در Storybook
- 76. یکپارچهسازی Visual Regression Testing با Storybook (مثال Percy)
- 77. مدیریت خطاهای Visual Regression و Baseline Images
- 78. مقدمهای بر Performance Testing در فرانتاند
- 79. معیارهای عملکردی (Performance Metrics): FCP, LCP, TBT, CLS
- 80. ابزارهای تست عملکرد: Lighthouse، WebPageTest، Chrome DevTools
- 81. نوشتن تستهای عملکردی با ابزارهای E2E (مثال Playwright Performance API)
- 82. اهمیت Accessibility (A11y) در توسعه فرانتاند
- 83. استانداردهای WCAG و چکلیستهای A11y
- 84. تست Accessibility با ابزارهای خودکار: Axe Core، Pa11y
- 85. تست دستی Accessibility: استفاده از Screen Readerها و کیبورد
- 86. Integration تستهای Accessibility در CI/CD
- 87. اصول کدنویسی تمیز (Clean Code) برای فرانتاند
- 88. مفهوم Refactoring و چگونگی بهبود کد برای تستپذیری
- 89. Code Review با تمرکز بر کیفیت و تستپذیری کد
- 90. اصول DRY (Don't Repeat Yourself) در تستها
- 91. مدیریت بدهی فنی (Technical Debt) مرتبط با تستها
- 92. یکپارچهسازی تستها با CI/CD: Jenkins، GitHub Actions، GitLab CI
- 93. پیکربندی CI/CD برای اجرای تستهای Unit, Integration, E2E
- 94. گزارشگیری پیشرفته از نتایج تست در CI/CD
- 95. استراتژیهای تست موازی (Parallel Testing) برای سرعت بخشیدن به تستها
- 96. مدیریت Secretها و Environment Variables در CI/CD برای تست
- 97. تستهای Snapshot با Jest برای جلوگیری از تغییرات ناخواسته UI
- 98. چالشها در تستنویسی فرانتاند و راهحلها
- 99. نگهداری و بروزرسانی تستها در پروژههای بزرگ
- 100. آینده تست فرانتاند: AI در تست و ابزارهای نوین
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.