شنبه , ۸ اردیبهشت ۱۴۰۳

TDD

TDD-Roundel
TDD-Roundel

یکی از مهمترین سطوح تست نرم افزار که اغلب اوقات انجام آن با ضعف شدیدی همراه هست، سطح Unit Testing است که جز تعهدات تیم فنی و Developerها محسوب می‌شود. این سطح از تست معمول اوقات به دلیل ضعف نگاه Developerها در حوزه تست نرم افزار با کم لطفی و ایضا ناشی گری انجام می‌شود. هر چند رویکردهای متفاوتی برای انجام تست در این سطح ارائه شده است اما یکی از مدرنترین Approachها برای اجرا در این سطح، TDD(Test Driven Development) یا همان توسعه تست محور نام دارد. اجرای این رویکرد منجر به طراحی و تولید تست‌های مستحکم در سطج مذبور می‌شود. هر چند تست در سطح یونیت مشتمل بر طیف متنوعی از تست‌های Dynamic و Static است، لکن TDD در بخش Functional Testing که لاجرم باید به صورت Dynamic اجرا شود، بسیار موفق ظاهر شده است.

به ضرس قاطع می‌توان مدعی بود، که این دوره با توجه به سیلابس آن کاملترین یا حداقل یکی از کاملترین دوره‌های TDD ارائه شده در ایران است، که تقریبا تمام ابعاد Practical و موجود در TDD را به صورت عملیاتی تدریس می‌کند. برای افزایش کیفیت این دوره، مدرس دوره یک بخش به انتهای دوره افزوده است، که پس از پایان دوره عملی، دانش پژوهان به سمت حل تمرینات گوناگون سوق داده می‌شوند. این تمرینات در بسیاری از اوقات توسط خود دانش‌پژوهان و بر اساس مسائل واقعی و جاری آنها در پروژه های فعلی‌شان مطرح می‌شود، که با راهنمایی مدرس دوره، به عنوان تمرین در کلاس حل شده، و بیش از پیش بر دانش و تجربه دانش‌پروژهان در مواجهه با مسائل واقعی می‌افزاید.

باید گفت این دوره یک کارگاه طولانی(حدودا سه ماه و نیم) است، که برای حضور و یادگیری در آن باید مقداری حوصله به خرج دهید، اما باید بدانید، که بعید است بتوانید در داخل یا حتی خارج از کشوردوره کاملتری در حوزه TDD به نسبت دوره پیش رو  پیدا کنید.

انواع برگزاری: حضوری/مجازی آنلاین

برگزاری‌های مختلف این دوره: تا کنون برگزار نشده است

وضعیت ثبت نام: در آینده نزدیک برگزار خواهد شد

  • رئوس مطالب
  • مدت
  • پیشنیاز
  • مخاطبین رویداد
  • انتظارات پس از رویداد
  • ملاحظات مهم
  • مدرس/سخنران

  • Preface
  • story time
  • Learn the basics of testing and TDD with a complete practical example
  • Test-Driven Development Patterns
    • Test n
    • Isolated Test
    • Test List
    • Test First
    • Assert First
    • Test Data
    • Evident Data
  • Red Bar Patterns
    • One Step Test
    • Starter Test
    • Explanation Test
    • Learning Test
    • Another Test
    • Regression Test
    • Break Test
    • Do Over Test
    • Cheap Desk, Nice Chair
  • Testing Patterns
    • Child Test
    • Mock Object
    • Self Shunt
    • Log String
    • Crash Test Dummy
    • Broken Test
    • Clean Check-in
  • Green Bar Patterns
    • Fake It (‘Til You Make It)
    • Triangulate
    • Obvious Implementation
    • One to Many
  • xUnit Patterns
    • Assertion
    • Fixture
    • External Fixture
    • Test Method
    • Exception Test
    • All Tests
  • Design Patterns
    • Command
    • Value Object
    • Null Object
    • Template Method
    • Pluggable Object
    • Pluggable Selector
    • Factory Method
    • Imposter
    • Composite
    • Collecting Parameter
  • ۱۰-Refactoring
    • Reconcile Differences
    • Isolate Change
    • Migrate Data
    • Extract Method
    • Inline Method
    • Extract Interface
    • Move Method
    • Method Object
    • Add Parameter
  • Mastering TDD
  • Workshop section

مدت زمان این دوره برابر با ۷۲ ساعت است

پیشنیاز این دوره صرفا داشتن دانش کدنویسی به زبان Java در سطح Developer است. البته Developerهای دیگری که با زبان‌های Object Oriented کار کرده‌اند(به دلیل شباهت مفاهیم اصلی با Java) می‌توانند در این دوره شرکت کنند. باقی پیش نیازها تا حدی که مورد نیاز دانش پژوهان باشد، توسط مدرس ارائه و آموزش داده می‌شود.

  • Developerهای علاقمند به تولید کدهای با کیفیت

در انتهای این دوره دانش‌پژوهان توانمندی‌های زیر را کسب می‌کنند:

  • قادر به ایجاد اپلیکیشن‌های با کیفیت با استفاده از تکنیک های توسعه تست محور باشید
  • یادگیری Patternهای مختلف عملیاتی و پرکاربرد در حوزه TDD
  • یادگیری نحوه تست نویسی برای سناریوهای پیچیده تر
  • استفاده از تکنیک‌های TDD برای رفع ایراد در برنامه‌هایی که با استفاده از TDD ایجاد نشده‌اند

امکانات دوره

  • پذیرایی در زمان تنفس(ویژه دوره‌های حضوری).

عدم امکان صدور فاکتور رسمی

  • فاکتورهای صادر شده از سمت ما دارای شکل رسمی(که شامل شماره ثبت شرکت تیستن، شماره تماس ثابت و دیگر اطلاعات حقوقی می‌شود) نمی‌باشد. در عوض به صورت غیر رسمی و در سربرگ تیستن صادر می‌گردد. لذا افراد یا شرکت‌هایی که تمایل به ثبت نام در دوره دارند، در نظر داشته باشند که اگر نیاز به فاکتور دارند، این فاکتورها شکل رسمی نخواهند داشت. بنابراین در صورتیکه بعد از پرداخت وجه درخواست فاکتور رسمی نمایند، نه تنها امکان آن وجود ندارد، بلکه امکان استرداد وجه نیز مقدور نمی‌باشد.
  • برخی از شرکت‌ها به جای فاکتور درخواست اسکن کارت ملی مدیر مجموعه یا مدرس دوره را دارند. طبق سیاست تیستن این کار تنها در شرایطی مقدور است که ۱۰%(به منظور پرداخت کسورات قانونی از جمله مالیات احتمالی) مبلغ بلیت خریداری شده به قیمت بلیت افزوده شود. بنابراین در صورتیکه برخی شرکت کنندگان بعد از پرداخت وجه درخواست ارائه اسکن کارت ملی نمایند، فقط با اضافه پرداخت مذبور امکان دریافت کپی کارت ملی را خواهند داشت.

استرداد وجه

  • پس از تهیه بلیت و پرداخت وجه، امکان مرجوعی بلیت وجود ندارد. لطفا در خرید خود دقت فرمایید.
  • در صورتیکه دوره به هر دلیلی لغو شود، که مقصر آن ثبت نام کنندگان نباشند، وجه ثبت نام به طور کامل و بدون کم و کاست، حداکثر ظرف ۴۸ ساعت به شماره کارت ثبت نام کننده مسترد شده و واریز می‌گردد.

محدودیت‌های برگزاری دوره

  • کلاس راس ساعت آغاز می‌گردد، حتی اگر فقط یک نفر از ثبت نام شدگان در کلاس حضور داشته باشد. لذا خواهشمند است راس ساعت و یا کمی قبلتر از آن در کلاس حضور یابید.
  • در این دوره آموزش ابزار خاصی ارائه نمی‌شود، اما طبق سیلابس در رابطه با ابزار صحبت خواهد شد.

مطول شدن برگزاری دوره

  • بسته به شرایط برگزاری از جمله پرسش و پاسخ زیاد، یا عدم برگزاری برخی از کلاس‌ها به دلیل رویدادهای فورس ماژور، احتمالا اینکه دوره از مدت در نظر گرفته شده فراتر رود، و یا روزهایی به عنوان جایگزین به علت رویدادهای فورس ماژور در نظر گرفته شود وجود. به هر حال در هیچ یک از موارد هزینه اضافه‌ای شامل حال دانشپژوهان نخواهد شد.

صدور مدرک و سرتیفیکیت

  • در پایان این دوره بنا به درخواست ثبت نام شدگان، مدرک پایان دوره ارائه می‌شود که البته در آن درج می‌شود که “این مدرک به معنی سرتفیکیت نیست، و صرفا اعلام پایان دوره مذبور می‌باشد”.

Ebrahimi Soltan Abadi

مربی تیم منتخب ایران در فیراکاپ تایوان(مسابقات جهانی رباتیک)

آموزش