Software Engineer Labdon
653 subscribers
43 photos
5 videos
6 files
859 links
👑 Software Labdon

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Testing and Programming Are Not Separate Disciplines

🟢 خلاصه مقاله:
** این یادآوری از Ravisuriya Eswara تأکید می‌کند که توسعه و تست نرم‌افزار باید یک فرایند یکپارچه باشند، نه دو رشته جدا. با وارد کردن تست در متن کار روزانه—از تعریف معیارهای پذیرش و شناسایی ریسک‌ها تا نوشتن تست‌ها کنار کد، اجرای TDD و پایپ‌لاین‌های CI/CD—کیفیت از ابتدا طراحی می‌شود، نه در انتها ارزیابی.

این رویکرد مزایایی مانند کاهش نقیصه‌های تولید، بازخورد سریع‌تر، تحویل قابل‌پیش‌بینی، تجربه کاربری بهتر و هزینه نگه‌داری کمتر دارد. همکاری جایگزین تحویل‌های مرحله‌ای می‌شود: توسعه‌دهندگان بر طراحیِ قابل‌تست تمرکز می‌کنند و تسترها با نگاه اکتشافی و کل‌نگر کیفیت را غنی می‌کنند؛ اتوماسیون و تست اکتشافی مکمل هم‌اند. نتیجه، چرخه‌ای سالم‌تر و محصولی پایدارتر در راستای اصول Agile و DevOps است.

#تست_نرم‌افزار #برنامه‌نویسی #کیفیت #DevOps #TDD #CI_CD #Agile #مهندسی_نرم‌افزار

🟣لینک مقاله:
https://cur.at/N39OqUZ?m=web


👑 @software_Labdon
1
🔵 عنوان مقاله
Mastering Pytest: The Complete Guide to Modern Python Testing

🟢 خلاصه مقاله:
این مقاله با عنوان Mastering Pytest: The Complete Guide to Modern Python Testing مروری جامع و عملی بر Pytest برای توسعه‌دهندگان Python ارائه می‌دهد. نویسنده، Sharath Chandran، از راه‌اندازی و ساختار پروژه تا امکانات کلیدی مانند fixtures، parametrization، markers و assertهای خوانا را پوشش می‌دهد و سپس به مباحث پیشرفته‌ای مثل افزونه‌های pytest-cov و pytest-xdist، استفاده از Hypothesis برای property-based testing، mocking با unittest.mock یا pytest-mock، تست‌های async و ابزارهایی مانند tmp_path و monkeypatch می‌پردازد. همچنین ادغام تست‌ها با CI/CD (مانند GitHub Actions و GitLab CI و Jenkins)، تولید گزارش‌ها و اعمال آستانه‌های coverage و نکات بهترین‌روش‌ها برای ساخت تست‌های سریع، پایدار و قابل‌نگهداری توضیح داده می‌شود. نتیجه اینکه چه برای شروع با Pytest و چه برای ارتقای مهارت‌ها، این راهنما الگوها و نکات کاربردی لازم برای مدرن‌سازی فرآیند تست در Python را فراهم می‌کند.

#Pytest #Python #Testing #TestAutomation #SoftwareTesting #TDD #CICD

🟣لینک مقاله:
https://cur.at/5l6Ats4?m=web


👑 @software_Labdon
🔵 عنوان مقاله
In Sprint Test Automation

🟢 خلاصه مقاله:
در آزمون‌سازی درون‌اسپرینت در Agile، هدف این است که تست‌ها همزمان با توسعه نوشته و اجرا شوند تا بازخورد سریع و خطاهای انباشته کاهش یابد. تجربه‌ها نشان می‌دهد موفقیت به چند عامل وابسته است: خرد کردن قصه‌ها به قطعات کوچک و قابل‌آزمون، پذیرش «Definition of Ready» و «Definition of Done» که شامل آزمون خودکار است، همکاری نزدیک Dev و QA با رویکردهای TDD/BDD، و برخورد با تست مثل کد (همان مخزن، همان استراتژی شاخه، همان بازبینی کد).

برای پشتیبانی از این جریان، CI/CD باید سریع و قابل‌اعتماد باشد: اجرای موازی، محیط‌های موقتی مبتنی بر کانتینر، مجازی‌سازی سرویس‌ها و Mockها برای قطع وابستگی‌ها، و مدیریت داده‌ی تست که آزمون‌ها را تکرارپذیر و بدون نوسان نگه می‌دارد. تمرکز بر هرم تست ضروری است: پوشش بالای Unit و Integration/Contract، و تنها یک لایه نازک از E2E UI (مثلاً با Cypress یا Playwright)؛ در کنار آن، سنجه‌هایی مانند زمان رسیدن تغییر تا استقرار، نرخ شکست و زمان ترمیم رصد می‌شوند و تست‌های flaky سریع قرنطینه و اصلاح می‌گردند.

همچنین پرهیز از الگوهای ضدِکیفیت مانند «Hardening Sprint»، عقب‌انداختن اتوماسیون به‌عنوان بدهی، یا اتکا به E2E شکننده توصیه می‌شود. استفاده از Feature Flag، Contract Testing در معماری‌های مبتنی بر سرویس، و مالکیت مشترک کیفیت در کل تیم به تحقق «اتمام واقعی کار» در همان اسپرینت کمک می‌کند.

#Agile #TestAutomation #InSprintTesting #CI_CD #TDD #BDD #DevOps

🟣لینک مقاله:
https://cur.at/46VanjF?m=web


👑 @software_Labdon
👍1
🔵 عنوان مقاله
Every Bug Deserves a Test Case

🟢 خلاصه مقاله:
ایده اصلی این است که هر باگ پس از برطرف‌شدن باید با یک تست اختصاصی پوشش داده شود. به‌گفته‌ی Kevin Konda، برای هر باگ ابتدا یک تست بازتولیدکننده بنویسید، شکست آن را ببینید، مشکل را رفع کنید و سپس همان تستِ سبز را در مجموعه‌ی رگرسیون نگه دارید. این کار از بازگشت خطاها جلوگیری می‌کند، دانشِ لبه‌های پنهان را حفظ می‌کند، ریسکی‌بودن تغییرات را کاهش می‌دهد و به بهبود طراحی کمک می‌کند. با نام‌گذاری شفاف، پیوند به شناسه‌ی Issue، کوچک‌وساده نگه‌داشتن تست‌ها و تفکیک اجرای سریع و شبانه، می‌توان هزینه‌ی زمان و ناپایداری را کنترل کرد. در نهایت، «هر باگ یک تست» یک انضباط فرهنگی است: اشتباهات گذشته را به ریل‌های محافظ آینده تبدیل کنید.

#SoftwareTesting #RegressionTesting #QualityEngineering #TDD #BugFixing #TestCoverage #CI #EngineeringCulture

🟣لینک مقاله:
https://cur.at/Kvqi6KW?m=web


👑 @software_Labdon