مرورگر شما از این ویدیو پشتیبانی نمی کند.
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
(صرفا برای مشاهده نمونه ویدیو، ممکن هست نیاز به شکن داشته باشید.)
بارگزاری مجدد
توضیحات دوره:
مسیر شغلی خود را در تست نرمافزار با دوره جامع آموزش تستر پایتون PCAT آغاز کنید. در این دوره بیاموزید چگونه با استفاده از unittest، PyTest و توسعه تستمحور (TDD)، تستهای قابل اعتماد و کارآمد بنویسید. بر مفاهیم بنیادی اتوماسیون تست در پایتون و تضمین کیفیت (QA) مسلط شوید تا از اجرای صحیح نرمافزار اطمینان حاصل کنید. این دوره برای تسترهای آینده، مهندسان QA و توسعهدهندگانی که به دنبال ایجاد یک پایه قوی در تست پایتون هستند، ایدهآل است. این آموزش آنلاین PCAT برای مبتدیان در زمینه تست نرمافزار و تضمین کیفیت طراحی شده است. همچنین برای توسعهدهندگانی که قصد دارند مهارتهای تست پایتون خود را ارتقا دهند و تجربه عملی در کار با unittest، PyTest و TDD کسب کنند، بسیار ارزشمند است.
سرفصل ها و درس ها
مقدمهای بر تست نرمافزار
Introduction to Software Testing
تست نرمافزار چیست؟
What is Software Testing?
چهار ویژگی تستهای موثر
The Four Traits of Effective Testing
تفاوت خطاها، نقصها، باگها و خرابیها
Errors vs. Defects vs. Bugs vs. Failures
چالش و راهکار: تستهای متنی ساده
Challenge & Solution: Plain-Text Tests
درک سطوح مختلف تست
Understand the Different Levels of Testing
تست واحد (Unit Testing)
Unit Testing
تست یکپارچگی (Integration Testing)
Integration Testing
تست سیستم و تست End-to-End
System Testing and End-to-End Testing
چالش و راهکار: نوشتن تستهای ساده
Challenge & Solution: Writing Simple Tests
هفت اصل تست نرمافزار
The Seven Principles of Software Testing
هفت اصل تست
The Seven Principles
تست وجود نقصها را نشان میدهد
Testing Shows the Presence of Defects
تست جامع غیرممکن است
Exhaustive Testing is Impossible
تست زودهنگام
Early Testing
خوشهای شدن نقصها
Defect Clustering
پارادوکس آفتکش
The Pesticide Paradox
مغالطه نبود خطا
The Absence-of-Errors Fallacy
چالش و راهکار
Challenge & Solution
مبانی Assertions (تأکیدها)
Basics of Assertions
Assertions چیستند؟
What Are Assertions?
سینتکس پایه Assertion
Basic Assertion Syntax
انواع مختلف Assertionها
Different Types of Assertions
چالش و راهکار: نوشتن Assertionهای شخصی
Challenge & Solution: Write Your Own Assertions
معماری xUnit و ماژول Unittest
xUnit Architecture and the Unittest Module
مقدمهای بر معماری xUnit
Introduction to xUnit Architecture
موردهای تست (Test Cases) در xUnit
xUnit Test Cases
اجرای تستهای xUnit و بهبود Assertionها
Running xUnit Tests and Making Better Assertions
مجموعه تستها (Test Suites) و اجراکنندگان xUnit
xUnit Test Suites and Runners
چالش و راهکار: ایجاد مجموعههای تست شخصی
Challenge & Solution: Create Your Own Suites
بررسی کلی Assertions در Unittest
A Tour Of Unittest Assertions
انواع اصلی Assertionها
The Main Assertion Types
Assertionهای پایه
Basic Assertions
Assertionهای مربوط به کانتینرها
Container Assertions
Assertionهای مربوط به استثناها (Exceptions)
Exception Assertions
چالش و راهکار: نوشتن Assertionها
Challenge & Solution: Writing Assertions
بررسی عمیق Assertions در Unittest
Unittest Assertions In-Depth
اهمیت Assertionهای سفارشی
The Importance of Custom Assertions
ایجاد Assertionهای سفارشی
Creating Custom Assertions
Assertionهای عددی
Numeric Assertions
تأکید بر انواع دادهها (Types)
Asserting Types
چالش و راهکار: ایجاد Assertionهای سفارشی خودتان
Challenge & Solution: Create Your Own Custom Assertions
مدیریتکنندههای متن (Context Managers) پایتون برای تست
Python Context Managers for Testing
مبانی Context Managers
Basics of Context Managers
ایجاد Context Manager سفارشی: روش دکوراتور
Creating Custom Context Managers: The Decorator Way
ایجاد Context Manager سفارشی: روش کلاسی
Creating Custom Context Managers: The Class Way
استفاده از Context Managers برای تست
Using Context Managers for Testing
چالش و راهکار: ایجاد Context Manager شخصی
Challenge & Solution: Create Your Own Context Manager
دکوراتورهای تابع پایتون برای تست
Python Function Decorators for Testing
مبانی توابع درجه اول (First Class Functions)
Basics of First-Class Functions
ایجاد دکوراتورهای سفارشی
Creating Custom Decorators
دکوراتورهای تست در Unittest
Unittest's Testing Decorators
چالش و راهکار: ایجاد دکوراتورهای شخصی
Challenge & Solution: Create Your Own Decorators
دکوراتورهای کلاس پایتون برای تست
Python Class Decorators for Testing
مبانی دکوراتورهای کلاس
Basics of Class Decorators
موردهای استفاده از دکوراتور کلاس
Class Decorator Use Cases
استفاده از دکوراتورهای کلاس در تستها
Using Class Decorators in Tests
چالش و راهکار: تستهای پارامتریک
Challenge & Solution: Parameterized Tests
کار با Test Fixtures در unittest
Working with Test Fixtures in unittest
اهمیت Test Fixtures
The Importance of Test Fixtures
متدهای setUp و tearDown
The setUp and tearDown Methods
استفاده از Fixtureها برای عملیات فایل
Using Fixtures for File Operations
چالش و راهکار: Fixtureها برای کلاسها
Challenge & Solution: Fixtures for Classes
مبانی کتابخانه PyTest
Basics of the PyTest Library
شروع کار با PyTest
Getting Started with PyTest
مقایسه Assertionهای PyTest و Unittest
PyTest Assertions vs. Unittest Assertions
Fixtureهای PyTest
PyTest Fixtures
چالش و راهکار: Fixtureهای Tear Down در PyTest
Challenge & Solution: PyTest Tear-Down Fixtures
راهنمای تستهای پارامتریک (Parameterized Testing)
Parameterized Testing Guide
تست پارامتریک چیست؟
What is Parameterized Testing?
پارامتریک کردن دستی
Manual Parameterization
استفاده از کتابخانه Parameterized
Using the Parameterized Library
چالش و راهکار: بازنویسی دکوراتور Parameterize
Challenge & Solution: Rewriting Our Parameterize Decorator
پارامتریک کردن پیشرفته تستها
Advanced Test Parameterization
پارامتریک کردن در PyTest
lParameterization in PyTest
پارامتریک کردن Test Fixtures
Parameterizing Test Fixtures
پارامتریک کردن متقاطع (Cross Parameterization)
Cross-Parameterization
چالش و راهکار: اعمال پارامتریک کردن متقاطع
Challenge & Solution: Applying Cross-Parameterization
مبانی Test Doubles (جایگزینهای تست)
Basics of Test Doubles
پنج نوع اصلی Test Doubles
The 5 Main Types of Test Doubles
استفاده از Dummies در تستها
Using Dummies in Tests
استفاده از Stubs در تستها
Using Stubs in Tests
استفاده از Spies در تستها
Using Spies in Tests
چالش و راهکار: استفاده از چندین Spy
Challenge & Solution: Using Multiple Spies
بررسی عمیق Test Doubles
Test Doubles In-Depth
استفاده از Mocks در تستها
Using Mocks in Tests
استفاده از Fakes در تستها
Using Fakes in Tests
Assertionهای Mock
Mock Assertions
چالش و راهکار: جاسوسی (Spying) روی Fakes
Challenge & Solution: Spying on Fakes
تکنیکهای پیشرفته Mocking
Advanced Mocking Techniques
استفاده از patch برای Mock کردن وابستگیها
Using patch for Mock Dependencies
Mock کردن کلاسها در مقابل توابع، ماژولها و اشیاء
Mocking Classes vs. Functions vs. Modules vs. Objects
Mock کردن توابع داخلی، فایلها و زمان
Mocking Builtins, Files, and Time
چالش و راهکار: تبدیل دکوراتورها به Context Managers
Challenge & Solution: Converting Decorators to Context Managers
نوشتن تستهای واحد با اصول F.I.R.S.T
Writing Unit Tests with F.I.R.S.T. Principles
مقدمهای بر اصول F.I.R.S.T
Introduction to F.I.R.S.T. Principles
سریع کردن تستها (Fast)
Making Tests Fast
ایزوله و مستقل کردن تستها (Isolated)
Making Tests Isolated/Independent
تکرارپذیر کردن تستها (Repeatable)
Making Tests Repeatable
خود-تأیید کننده کردن تستها (Self Validating)
Making Tests Self-Validating
بهموقع کردن تستها (Timely)
Making Tests Timely
چالش و راهکار: اصلاح تست
Challenge & Solution: Fix the Test
استراتژیهای تست متدهای پایتون
Strategies for Testing Python Methods
انواع مختلف متدها
The Different Method Types
تست متدهای نمونه (Instance Methods)
Testing Instance Methods
تست متدهای کلاس (Class Methods)
Testing Class Methods
تست متدهای استاتیک (Static Methods)
Testing Static Methods
چالش و راهکار: افزودن متدها و تستها
Challenge & Solution: Adding Methods and Tests
تکنیک Monkeypatching در Pytest
Monkeypatching in Pytest
مبانی Monkeypatching
The Basics of Monkeypatching
پچ کردن توابع و متدها
Patching Functions and Methods
پچ کردن ویژگیها (Attributes)
Patching Attributes
پچ کردن متغیرهای محیطی (Environment Variables)
Patching Environment Variables
پچ کردن ورودی کاربر
Patching User Input
چالش و راهکار: استفاده از Monkeypatch
Challenge & Solution: Using Monkeypatch
مبانی توسعه تستمحور (TDD)
Basics of Test-Driven Development (TDD)
توسعه تستمحور (TDD) چیست؟
What is Test-Driven Development?
چرخه قرمز-سبز-بازسازی (Red Green Refactor)
The Red-Green-Refactor Cycle
بررسی گامبهگام و دقیق
A Detailed Walkthrough
چالش و راهکار: پیشروی بیشتر
Challenge & Solution: Take it Further
مبانی توسعه رفتارمحور (BDD)
Basics of Behavior-Driven Development (BDD)
توسعه رفتارمحور (BDD) چیست؟
What is Behavior-Driven Development?
سینتکس Gherkin
Gherkin Syntax
ایجاد فایلهای feature.
Creating .feature Files
نوشتن و لینک کردن تستها
Writing and Linking Tests
چالش و راهکار: افزودن سناریوهای بیشتر
Challenge & Solution: Adding More Scenarios
مفاهیم متوسط توسعه رفتارمحور
Intermediate Behavior-Driven Development Concepts
توسعه رفتارمحور پیشرفته
Advanced Behavior-Driven Development
داستانهای کاربر (User Stories) در BDD
User Stories in BDD
کتابخانه Behave به عنوان جایگزینی برای Pytest
The "Behave" Library as an Alternative to Pytest
نوشتن، اجرا و عیبیابی تستهای Behave
Writing, Running, and Troubleshooting Behave Tests
چالش و راهکار: پارامتریک کردن انواع دادههای مختلف
Challenge & Solution: Parameterizing Different Data Types
بهترین شیوههای تست در پایتون
Python Testing Best Practices
پنج نشانه که نشان میدهد بهترین شیوهها را دنبال نمیکنید
Five Signs You're Not Following Best Practices
بهترین شیوهها برای ساختار فایلها
Best Practices for File Structure
بهترین شیوهها برای نامگذاری فایلها و تستها
Best Practices for Naming Files & Tests
تستهای واحد به عنوان مستندات
Unit Tests as Documentation
چالش و راهکار: الگوی Arrange, Act, Assert (AAA)
Challenge & Solution: The Arrange, Act, Assert (AAA) Pattern
مبانی تستهای مبتنی بر ویژگی (Property Based Testing)
Basics of Property-Based Testing
تست مبتنی بر ویژگی (Property Based Testing) چیست؟
What is Property-Based Testing?
کتابخانه Hypothesis
The Hypothesis Library
کار با استراتژیهای مختلف Hypothesis
Working with Different Hypothesis Strategies
چالش و راهکار: آناگرامها
Challenge & Solution: Anagrams
مبانی تست اینترفیسها
Basics of Testing Interfaces
تست اینترفیس چیست؟
What is Interface Testing?
اطلاعات پایه و کنترلهای اینترفیس
Basic Interface Info and Controls
ثبت اقدامات پیچیدهتر
Recording More Complicated Actions
چالش و راهکار: نوشتن یک تست اینترفیس کامل
Challenge & Solution: Writing a Complete Interface Test
مفاهیم پیشرفته تست اینترفیس
Advanced Interface Testing Concepts
یافتن و تعامل پویا با المانها
Finding and Interacting with Elements Dynamically
یکپارچهسازی تست اینترفیس با PyTest
Integrating Interface Testing with PyTest
تست و استفاده از کلیدهای میانبر (Hotkeys)
Testing and Using Hotkeys
چالش و راهکار: استفاده از Hotkeys و BDD
Challenge & Solution: Using Hotkeys and BDD
تست اینترفیسهای وب
Testing Web Interfaces
تست اینترفیس وب چیست؟
What is Web Interface Testing?
راهاندازی Selenium
Getting Selenium Set Up
یافتن و تعامل با المانها
Finding and Interacting with Elements
نوشتن Assertionها برای صفحات وب
Making Assertions About Webpages
چالش و راهکار: یکپارچهسازی با PyTest
Challenge & Solution: Integrating with PyTest
تست پیشرفته اینترفیس وب
Advanced Web Interface Testing
چگونه منتظر رویدادها بمانیم (Waiting)
How to Wait For Things
کلیک کردن روی المانها
Clicking On Elements
مروری کوتاه بر CSS Selectors
A Brief Review of CSS Selectors
چالش و راهکار: انتخاب المانهای درست
Challenge & Solution: Selecting the Right Elements
اصول بازسازی کد (Refactoring) در پایتون
Python Code Refactoring Principles
چرا بازسازی کد (Refactoring) بسیار مهم است؟
Why is Refactoring So Important?
پنج نشانه که نیاز به Refactor دارید
Five Signs You Need to Refactor
بازسازی کدهای تکراری
Refactoring Duplicated Code
بازسازی توابع طولانی، کلاسهای بزرگ و تودرتوییهای عمیق
Refactoring Long Functions, Large Classes, and Deep Nesting
بازسازی ماژولهای با وابستگی شدید (Tightly Coupled)
Refactoring Tightly Coupled Modules
چالش و راهکار: بازسازی کد
Challenge & Solution: Refactor the Code
نمایش نظرات