تخفیف ویژه آموزش Git به همراه GitLab + Github و Azure DevOps مدت محدود

آموزش تست نرم افزار TDD و BDD

توضیحات دوره

تست نرم افزار را می‌توان یکی از زیر مجموعه‌های مبحث کیفیت نرم افزار با نام “تضمین کیفیت” در نظر گرفت. تست نرم افزار به دنبال خطایابی و اطمینان از صحت عملکرد محصول نرم افزاری قبل از تحویل به مشتری است که حقیقتا یکی از مهمترین مراحل در فرایند توسعه است که با گذشت زمان از حالت دستی (Manual Testing) به حالت اتوماتیک (Automated Testing) تغییر رویه داده است. تست نرم افزار در دنیای امروز به سه قسمت اصلی تست واحد (Unit Testing)، تست یکپارچگی (Integration Testing) و تست پذیرش (Acceptance or E2E Testing) تقسیم می شود که مجموعه آنها هرم تست ( Test Pyramid) را تشکیل می دهند. در دوره آموزش تست نرم افزار، هرم تست و مفاهیم آن و آنچه از آن استنباط می شود را آموزش می دهیم.

آموزش تست نرم افزار TDD BDD همانطور که گفته شد، در دنیای امروز دیگر برای نرم افزارها تست به صورت دستی انجام نمی گیرد زیرا تست دستی یا همان Manual Testing بسیار پر هزینه است و زمان را هدر می دهد. از طرفی تست دستی دقیق نیست و ممکن است تست موارد مهمی را فراموش کنیم که موجب بروز Production Bug خواهد شد. بنابراین، انجام عملیات تست نرم افزار به صورت اتوماتیک و از طریق کدهایی که فرایند تست را در بازه های زمانی کوتاه انجام می دهند، امری اجتناب ناپذیر است. در این دوره ما فرآیند تست نرم افزار را به صورت اتوماتیک و از طریق فریمورک های تست نویسی مانند XUnit آموزش می دهیم. تست ها به 3 سطح اصلی Unit Testing, Integration Testing و Acceptance Testing تقسیم می شوند که در دوره آموزش تست نرم افزار TDD و BDD هر 3 این موارد به همراه تمام جزئیات آموزش داده شده است. حال به شرح هر کدام از این موارد می پردازیم:

آموزش Unit Testing

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

آموزش Unit Testing

آموزش Integration Testing

زمانی که بخواهیم یک کامپوننت را به همراه وابستگی های آن تست کنیم تا از صحت عملکرد آن کامپوننت در ارتباط با دیگر کامپوننت های وابسته به آن اطمینان حاصل کنیم از Integration Test استفاده می کنیم. این تست ها در حقیقت چند بخش سیستم را به چالش می کشند و انتظارات ما را از آنها ارزیابی می کنند. انجام Integration Testing ابزارهای خاص خود را دارد که هر کدام از این ابزارها عملیات گوناگونی را برای اجرای تست ها در این سطح انجام می دهند.

آموزش Integration Testing

آموزش Acceptance Testing (E2E Testing)

پس از سطوح Unit و Integration برای اطمینان از کارآمد بودن نرم افزار برای مشتری نهایی، باید مرحله Acceptance Testing یا همان End-2-End Testing انجام شود. این مرحله عمدتا با استفاده از ابزارهای خاصی که خوانایی بالایی دارند و توسط افرادی غیر از برنامه نویسان قابل خواندن و فهمیدن است، نوشته می شوند.

آموزش Acceptance Testing

پیاده سازی هر کدام از سطوح تست که در بالا ذکر شد در قالب تکنیک هایی صورت می گیرد که انجام عملیات تست نرم افزار را تا حد زیادی راحت می کند. علاوه بر این، این تکنیک ها باعث می شوند تا ما از تمام مزایای تست نویسی بهره مند شویم. ما در دوره آموزش تست نرم افزار تکنیک های زیادی را آموزش می دهیم اما 2 مورد از این تکنیک ها بسیار شاخص هستند که آنها را در زیر معرفی می کنیم:

آموزش Test-Driven Development (TDD)

Test Driven Development یا به اختصار TDD یک متدولوژی توسعه نرم افزار است که از طریق تکنیک test first به ما در تست و توسعه هرچه سریعتر و باکیفیت تر نرم افزار کمک می کند. TDD در حقیقت تشکیل شده از یک چرخه بی نهایت تکراری (Iterative) شامل مراحل Red ,Green و Refactor که در شکل زیر نمایش داده شده است. در دنیای تست نرم افزار، تکنیک TDD یک از مهمترین و کاربردی ترین تکنیک ها برای نوشتن تست های اتوماتیک است. هیچ کتابی را در زمینه تست نرم افزار مشاهده نخواهید کرد مگر آنکه چند فصل را به TDD اختصاص داده باشد. ما در این دوره با استفاده از تکنیک TDD تست های خود را نوشته و از کدهای خود در فواصل زمانی کوتاه Feedback دریافت می کنیم. همپنین 3 قانون اصلی TDD را بررسی و هریک را به شیوه خاص خود رعایت و پیاده سازی می کنیم. ما در فصل 2 دوره آموزشی تست نرم افزار، شما را با TDD آشنا می کنیم و پس از آن تمام فرایند تولید پروژه را بر اساس اصول TDD پیش می بریم.

آموزش Test driven development (tdd)

آموزش Behavior-Driven Development (BDD)

Behavior Driven Development یا به اختصار BDD با تمرکز روی نیاز مشتری تلاش می کند تا نرم افزاری را که نیاز او را برطرف سازد تولید کرده و تحویل دهد. در BDD ما با نوشتن سناریوهایی که باید در نرم افزار پیاده سازی شوند، ابتدا آنها را تبدیل به یک Failing Test می کنیم و سپس با حرکت بر روی چرخه TDD آن سناریو را پیاده سازی می کنیم. ابزارهای فوق العاده کاربردی برای پیاده سازی BDD وجود دارند که تست ها را به فرمتی که همه افراد تیم حتی کسانی که از برنامه نویسی آشنایی ندارند نیز، خوانا و قابل فهم می کند. در دوره آموزش تست نرم افزار TDD و BDD ما این ابزارها را آموزش می دهیم و آنها را در پروژه پیاده سازی می کنیم.

آموزش behavior driven development (bdd)

سرفصل دوره

معرفی دوره آموزش تست نرم افزار (1 قسمت)

معرفی دوره تست نرم افزار

آموزش مفاهیم تست و دلیل نوشتن تست های اتوماتیک (10 قسمت)

معرفی بخش
Building The Right Software/Software Right
تست ها چه کمکی به ما می کنند؟
هرم تست (Test Pyramid)
واژگان مهم و کاربردی در دنیای تست نرم افزار
فریمورک های تست نویسی در #C و سایر زبان های برنامه نویسی
نوشتن اولین Unit Test و آموزش فریمورک XUnit
حل تمرین FizzBuzz در فریمورک XUnit
Theory & InlineData Attributes
جمع بندی این بخش

Test Driven Development (توسعه تست محور) (16 قسمت)

معرفی بخش
چرخه TDD (TDD Cycle)
TDD چطور به پروژه ما کمک می کند؟
3 قانون TDD
حل EvenOrOdd با روش TDD
حل FizzBuzz با روش TDD
Refactoring در چرخه TDD
Continuous Testing
Testing Happy Path
تست کردن Exception ها
Test Quality Attributes
Test Readability - Fluent Assertions - نام گذاری تست ها
Test maintainability - Builder Design Pattern
Test Trustworthiness - تولید Custom Exception
ادامه پروژه Course - AddSection
جمع بندی این بخش

انواع Setup Fixture در XUnit (8 قسمت)

معرفی بخش
یادآوری سطوح مختلف تست
4 فاز اصلی هر تست
استراتژی های Fixture Setup
Inline and Implicit Setup
IClassFixture در XUnit
ICollectionFixture در XUnit
جمع بندی این بخش

اصل معکوس سازی وابستگی (Dependency Inversion Principle) (6 قسمت)

اصول SOLID در برنامه نویسی شئ گرا
اصل معکوس سازی وابستگی (DIP)
مفهوم Tightly Coupled Dependency چیست؟
مفهوم Loosely Coupled Dependency چیست؟
اعمال اصل معکوس سازی وابستگی ها (DIP)
IOC Container چیست؟

Built-in .Net Core IOC Container (8 قسمت)

معرفی IOC Container موجود در DotNet Core
استفاده از IOC Container موجود در DotNet Core
طول عمر سرویس ها (Service Lifetimes)
طول عمر Transient
طول عمر Scoped
طول عمر Singleton
Resolving Services From Main
Service Registration Methods

آموزش معماری پیازی (Onion Architecture) (5 قسمت)

Onion Architecture Introduction
لایه دامین (Domain Layer)
لایه اپلیکیشن (Application Layer)
لایه کاربری (Presentation Layer)
لایه زیرساخت (Infrastructure Layer)

Test Doubles (Mock, Stub, Spy, Dummy) - Service Layer (13 قسمت)

معرفی بخش
معماری پروژه Course Management
تست های لایه Repository
تست بخش های Get و GetById
تست بخش Delete
Dependend-On Component
Testing Indirect Output
تست لایه سرویس (Course Service)
ابزار های Faker و Tynamix
تست Edit Course
تست GetAll و Delete Course
Test Doubles
جمع بندی این بخش

Integration Testing - تکمیل لایه API پروژه Course (15 قسمت)

معرفی بخش
Integration Tests دیتابیس - متد GetAll
Integration Tests دیتابیس - متد Create
Refactoring Database Fixture
افزودن اطلاعات تستی - Seed Data
Integration Tests دیتابیس - متد GetByName
قانون Single Assertion Per Test
Integration Tests دیتابیس - متد Delete, GetById
مروری بر تست های دیبابیس
نوشتن Unit Test برای لایه API
نوشتن Unit Test برای لایه API - بخش دوم
نوشتن Integration Test برای لایه API
نوشتن Integration Test برای لایه API - متد Create
نوشتن Integration Test برای لایه API - متد Create و Delete
جمع بندی این بخش

اطلاعات دوره آموزشی


  • مدرس دوره: حسین عباس آبادی
  • مدت زمان دوره: 11:40:15
  • تعداد ویدیو: 82
  • آخرین بروزرسانی: 1399/11/02
  • فیلم های نمونه: امکان دریافت بخش های رایگان

پیش نیازهای دوره

باتوجه به اینکه مبحث تست نرم افزار چیزی جدا از برنامه نویسی نیست و شما باید در زمان یادگیری هر زبان برنامه نویسی، نحوه نوشتن تست های اتوماتیک برای آن زبان را نیز فراگیری نمایید، پس پیشنیاز این دوره تنها تسلط بر یک زبان برنامه نویسی شی گرا مانند #C یا Java یا ... می باشد.

تجهیزات و استاندارد های ضبط دوره ها

یکی از مهمترین مواردی که برای تهیه یک دوره آموزشی حائز اهمیت است، کیفیت و رعایت استانداردهای ضبط دوره است. به طوری که کیفیت صدا و تصویر ویدیوهای آموزشی و همچنین رعایت استانداردهای ضبط، باید در بهترین حد و مطلوب باشد. برای این منظور، موسسه آموزشی آتریا با بهره گیری از بهترین تجهیزات ضبط صدا و تصویر و رعایت استانداردهای آموزشی تلاش کرده است تا بسته های آموزشی با بهترین کیفیت را در اختیار دانشجویان عزیز قرار دهد. در زیر به بخشی از این تجهیزات و استانداردها اشاره می کنیم:

میکروفون ضبط صدا

آموزش asp.net core 5

مسلم است که یکی از مهمترین ویژگی های هر ویدیو آموزشی، کیفیت صدای ویدیو است که باید بدون نویز، واضح و شفاف باشد. کیفیت صدای فوق العاده، شفافیت و صدای بدون نویز، از اصلی ترین ویژگی های میکروفون RODE NT-USB است که موسسه آموزش آتریا از آن برای ضبط دوره ها استفاده می کند. اگر ویدیوهای رایگان دوره را مشاهده کرده باشید، به وضوح کیفیت صدای استاد را احساس می کنید.

تصویر مدرس در کنار ویدیوها

آموزش asp.net core 5

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

کیفیت 1080p Full HD ویدیوها

آموزش asp.net core 5

از آنجا که مهمترین دغدغه ما در تولید آموزش ها، کیفیت مطلوب است، تمام ویدیوهای موسسه آموزشی آتریا با بالاترین کیفیت یعنی 1080p ضبط شده اند. کیفیت بالای تصویر بسته ها باعث می شود تا شما کدها و اسلایدهای مورد استفاده مدرس را بهتر ببیند.

استاندارد زمانی ویدیوهای آموزشی

یکی از استانداردهای ویدیوهای آموزشی، توجه به مدت زمان آن ویدیو است. به نحوی که ویدیوها دارای مدت زمان بین 5 تا 20 دقیقه باشند تا منجر به خستگی دانشجو نگردد. برای این منظور سعی شده است تا حتی الامکان این استاندارد در ضبط ویدیوهای آموزشی رعایت شده باشد.

جامعیت دوره ها

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

لطفا، بدون ریسک خرید کنید!

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

پلن های قیمتی

00ثانیه
00دقیقه
00ساعت
00روز

بسته پایه

  • ضمانت بازگرداندن وجه
  • دریافت به روزرسانی های دوره آموزشی
  • پشتیبانی از طریق واتساپ و تلفن
  • 2 ساعت خصوصی آنلاین جهت رفع اشکالات
  • 600,000 تومان 480,000
خرید دوره

بسته ویژه

  • ضمانت بازگرداندن وجه
  • دریافت به روزرسانی های دوره آموزشی
  • پشتیبانی از طریق واتساپ و تلفن
  • 2 ساعت خصوصی آنلاین جهت رفع اشکالات
  • 1,200,000 تومان 980,000
خرید دوره

دانشجویان این دوره، دوره های زیر را هم شرکت کرده اند

نظرات خود را به اشتراک بگذارید
موسسه آموزشی آتریا
نظرات (6)