اپلیکیشن اندرویدی فلشکارت آموزشی تست نویسی (Unit Testing و UI Testing) برای اپلیکیشنهای iOS
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب تست نویسی (Unit Testing و UI Testing) برای اپلیکیشنهای iOS
موضوع کلی: برنامه نویسی
موضوع میانی: برنامهنویسی iOS (iOS Native)
📋 سرفصلهای کتاب (100 موضوع)
- 1. مقدمهای بر تست نویسی و اهمیت آن در توسعه iOS
- 2. آشنایی با انواع تست: Unit, Integration, UI, Snapshot, Performance
- 3. معرفی هرم تست (Test Pyramid) و جایگاه هر نوع تست
- 4. آشنایی با رویکردهای TDD (توسعه آزمونمحور) و BDD
- 5. معرفی کامل چارچوب XCTest اپل
- 6. راهاندازی محیط و ایجاد اولین Test Target در Xcode
- 7. آناتومی یک کلاس تست: متدهای setUp, tearDown و متدهای تست
- 8. نوشتن و اجرای اولین Unit Test
- 9. آشنایی با انواع Assertion ها در XCTest (Assert, Equal, Nil, True)
- 10. تست کردن توابع خالص (Pure Functions) و متدهای استاتیک
- 11. اصول کدنویسی قابل تست: مقدمهای بر SOLID
- 12. مفهوم تزریق وابستگی (Dependency Injection) به عنوان کلید تستپذیری
- 13. انواع تزریق وابستگی: Constructor, Property, Method Injection
- 14. آشنایی با Test Doubles: Mock, Stub, Spy, Fake, Dummy
- 15. ساخت یک Stub به صورت دستی برای کنترل وابستگیها
- 16. ساخت یک Mock به صورت دستی برای بررسی تعاملات
- 17. تست کردن کدهای Asynchronous مبتنی بر Completion Handler
- 18. کار با XCTestExpectation و waitForExpectations
- 19. تست کردن کدهای مدرن Asynchronous با async/await و Task
- 20. تست کردن کدهای Reactive با فریمورک Combine
- 21. مدیریت و تست مقادیر Optional با XCTUnwrap
- 22. تست کردن مدیریت خطا (Error Handling) با throws
- 23. کار با XCTAssertThrowsError و XCTAssertNoThrow
- 24. روشهای تست متدهای Private (و چرا نباید این کار را انجام داد)
- 25. تست کردن Protocol ها و Extension ها
- 26. مفهوم Code Coverage و نحوه فعالسازی و تحلیل آن در Xcode
- 27. سازماندهی تستها: الگوهای نامگذاری و ساختار فایلها
- 28. پیادهسازی ساختار Given-When-Then برای خوانایی بیشتر تستها
- 29. تست کردن کدهای وابسته به NotificationCenter
- 30. تست کردن کدهای وابسته به UserDefaults
- 31. تستهای عملکرد (Performance Testing) با متد measure
- 32. بازنویسی (Refactoring) یک کد غیرقابل تست به کد قابل تست
- 33. مقدمهای بر تست الگوهای معماری در iOS
- 34. تست کردن اجزای معماری MVC (Model, View, Controller)
- 35. تست کردن ViewModel در معماری MVVM
- 36. تست کردن Presenter و Interactor در معماری VIPER
- 37. تست کردن Reducer و State در معماریهای State-Driven (مانند TCA)
- 38. استراتژیهای Mock کردن لایه شبکه (Networking)
- 39. استفاده از URLProtocol برای Mock کردن درخواستهای شبکه
- 40. تست کردن درخواستهای API و پاسخهای موفقیتآمیز
- 41. تست کردن مدیریت خطاهای شبکه
- 42. تست کردن منطق Parsing و Decoding مدلهای JSON
- 43. تست کردن پایگاه داده: کار با Core Data in-memory
- 44. مدیریت دادههای تست (Test Data و Fixtures)
- 45. معرفی Snapshot Testing برای UI Components
- 46. راهاندازی کتابخانه SnapshotTesting در پروژه
- 47. ثبت و مقایسه Snapshot برای UIView و UIViewController
- 48. استفاده از Snapshot Testing برای تست View های SwiftUI
- 49. استراتژیهای مختلف برای Snapshot Testing (تصویر، متن، جیسون)
- 50. تست کردن کلاسهای وابسته به فریمورکهای اپل (UIKit, Foundation)
- 51. تستهای پارامتریک: اجرای یک تست با ورودیهای گوناگون
- 52. تفاوت Integration Test و Unit Test در عمل
- 53. مقدمهای بر UI Testing و تفاوتهای آن با Unit Testing
- 54. راهاندازی اولین UI Test Target در پروژه
- 55. آشنایی با فریمورک XCUI: XCUIApplication و XCUIElement
- 56. ضبط کردن یک UI Test با Xcode Test Recorder
- 57. چرا تستهای ضبط شده شکننده هستند و چگونه آنها را بهبود دهیم
- 58. پیدا کردن عناصر در صفحه (Querying for Elements)
- 59. اهمیت Accessibility Identifier برای نوشتن تستهای پایدار
- 60. تعامل با عناصر: tap, typeText, swipe و سایر Gestures
- 61. Assert کردن وضعیت عناصر: exists, isHittable, isSelected
- 62. نوشتن تست برای ناوبری (Navigation) بین صفحات
- 63. مدیریت Alert ها، Sheet ها و Popover ها در تستها
- 64. تست کردن لیستها: UITableView و UICollectionView
- 65. اسکرول کردن برای پیدا کردن عناصر خارج از صفحه
- 66. تست کردن عناصر کنترلی: Switch, Slider, Segmented Control
- 67. تست کردن PickerView و DatePicker
- 68. وارد کردن متن در TextField و SecureTextField
- 69. انتظار برای ظاهر شدن یا ناپدید شدن عناصر (Waits)
- 70. استفاده از XCTWaiter برای مدیریت انتظارهای سفارشی
- 71. معرفی الگوی Page Object Model (POM) برای UI Test
- 72. پیادهسازی اولین Page Object برای یک صفحه
- 73. بازنویسی یک تست ضبط شده با استفاده از الگوی POM
- 74. مدیریت وضعیت اولیه اپلیکیشن با Launch Arguments
- 75. استفاده از Launch Environment Variables برای Mock کردن داده
- 76. استراتژی Mock کردن شبکه در UI Testing
- 77. عیبیابی (Debugging) تستهای UI ناموفق
- 78. گرفتن اسکرینشات در هنگام شکست تستهای UI
- 79. تست کردن سناریوهای پیچیده کاربر (Complex User Flows)
- 80. تست UI برای اندازههای مختلف صفحه نمایش (Screen Sizes)
- 81. تست UI برای حالتهای مختلف دستگاه (Portrait/Landscape)
- 82. تست کردن Dark Mode و Light Mode
- 83. UI Testing برای اپلیکیشنهای SwiftUI
- 84. تعامل با عناصر SwiftUI در UI Test
- 85. تست ویژگیهای دسترسیپذیری (Accessibility Testing)
- 86. بهترین شیوهها برای نوشتن تستهای UI سریع و پایدار
- 87. معرفی Continuous Integration (CI) و Continuous Delivery (CD)
- 88. اجرای تستها از طریق خط فرمان (Command Line) با xcodebuild
- 89. آشنایی با Test Plans در Xcode
- 90. مدیریت چندین پیکربندی تست با Test Plans
- 91. اجرای تستهای منتخب با استفاده از Test Plans
- 92. موازیسازی اجرای تستها (Parallel Testing) برای افزایش سرعت
- 93. یکپارچهسازی تستها با GitHub Actions
- 94. یکپارچهسازی تستها با سایر پلتفرمهای CI (مانند Jenkins, GitLab CI)
- 95. تحلیل گزارشهای تست (Test Reports) در پلتفرم CI
- 96. تنظیم اجرای خودکار تستها در CI/CD Pipeline
- 97. تست روی دستگاههای واقعی در Cloud (Device Farms)
- 98. مروری بر سایر ابزارها و فریمورکهای تست در اکوسیستم iOS
- 99. جمعبندی دوره و گامهای بعدی برای تبدیل شدن به یک متخصص تست
- 100. **استفاده از Mock ها و Stub ها برای جداسازی وابستگیها و تست ایزوله (Isolation)**
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.