دوره راهنمای جامع تست فرانتاند با تمرکز بر کیفیت کد همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره راهنمای جامع تست فرانتاند با تمرکز بر کیفیت کد
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای دوره
- 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).
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.