Software Engineer Labdon
609 subscribers
43 photos
4 videos
2 files
763 links
👑 Software Labdon

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
"Shift Right" Testing, Done Right

🟢 خلاصه مقاله:
تست شیفت-رایت یعنی ادامه‌دادن اعتبارسنجی و پایش نرم‌افزار پس از انتشار و یادگیری از رفتار واقعی کاربران در محیط Production. Arik Aharoni توصیه‌هایی در سطح بالا ارائه می‌دهد: تعریف SLO و بودجه خطا، سرمایه‌گذاری در Observability، تحویل تدریجی با Feature Flags و Canary Release، خودکارسازی انتشار و Rollback، توجه به حریم خصوصی و امنیت، شروع تدریجی در سناریوهای کم‌ریسک، و همکاری میان Dev، QA، Ops، SRE و Product. دستاوردها شامل بازخورد سریع‌تر و واقعی‌تر، شناسایی مشکلاتی که قبل از انتشار دیده نمی‌شوند، بهبود قابلیت اتکا و تاب‌آوری، و کاهش MTTR است. شیفت-رایت جایگزین شیفت-لفت نیست، بلکه مکمل آن است و نیازمند ریل‌گذاری‌های ایمن مانند کنترل دسترسی، محدودکردن شعاع ریسک و برنامه‌های Rollback روشن است.

#ShiftRightTesting #Observability #DevOps #SRE #ProgressiveDelivery #FeatureFlags #CanaryRelease #SoftwareQuality

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


👑 @software_Labdon
🔵 عنوان مقاله
"Why didn't testing find this issue?" Because you desire something that doesn't exist!

🟢 خلاصه مقاله:
وقتی خطایی به تولید می‌رسد، پرسش تکراری این است: «چرا تست‌ها این مشکل را پیدا نکردند؟» Maaike Brinkhof می‌گوید ریشه‌ی این پرسش اشتباه است، چون چنین قطعیتی از تست انتظار داریم که اصلاً وجود ندارد. تست فقط می‌تواند اعتماد را افزایش دهد و ریسک‌ها را آشکار کند؛ هرگز نمی‌تواند نبودِ باگ را ثابت کند.

به‌جای سرزنش «تست»، بحث را به مسئولیت جمعی و یادگیری سیستمی تغییر دهیم: «چطور فرایند، فرض‌ها و طراحی ما اجازه‌ی فرار این باگ را داده‌اند؟» عوامل رایج شامل ابهام در نیازها، تفاوت محیط‌ها با تولید، داده‌ی ناکافی، مشاهده‌پذیری ضعیف، یا مصالحه‌های زمان‌بندی است. مجموعه تست‌ها فقط نمونه‌ای از واقعیت‌اند، نه تمام آن.

راه‌حل، مدیریت ریسک و بهبود چرخه‌های بازخورد است: تقویت logging و telemetry، استفاده از feature flag و انتشار تدریجی، بهبود تست‌های قرارداد و سفرهای حیاتی کاربر، و سرمایه‌گذاری روی تست اکتشافی برای کشف ناشناخته‌ها. با postmortem بدون سرزنش بپرسیم: ریسک را درست فهمیدیم؟ نظارت ما برای کشف سریع و محدودکردن دامنه مشکل کافی بود؟ داده و محیط مناسب داشتیم؟ آیا pairing، بازبینی یا risk storming می‌توانست زودتر هشدار بدهد؟

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

#SoftwareTesting #QualityEngineering #BlamelessPostmortem #RiskBasedTesting #Testability #Observability #DevOps #Agile

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


👑 @software_Labdon
🔵 عنوان مقاله
When Tests Start Drawing the Map

🟢 خلاصه مقاله:
** در دنیای واقعی توسعه، محیط‌های تست به‌ندرت کامل‌اند: اطلاعات ناقص است، وابستگی‌ها تغییر می‌کنند و قطعیت کم است. Charlie Kingston پیشنهاد می‌کند به تست مثل «نقشه‌کش» نگاه کنیم؛ هر تست یک کاوش است که مرزها، خطرها و رفتارهای واقعی سیستم را روشن می‌کند و نقشه‌ای زنده از آنچه می‌دانیم می‌سازد.

با بیان شفاف فرضیه‌ها و تبدیلشان به تست، استفاده از ابزارهـای مشاهده‌پذیری برای رفع نقاط کور، ایجاد چرخه‌های بازخورد سریع و اولویت‌بندی ریسک (مسیرهای بحرانی، حالت‌های خرابی، و درزهای یکپارچه‌سازی)، این نقشه قابل اعتماد می‌شود. تست‌ها فقط دروازه انتشار نیستند؛ دانسته‌های تیم را مستند می‌کنند، قراردادهای بین سرویس‌ها را شفاف می‌سازند و بازطراحی امن را ممکن می‌کنند. با هر تغییر، تست‌ها نشان می‌دهند کجا نقشه با واقعیت نمی‌خواند و باید دقیق‌تر بررسی شود.

ترکیبی از روش‌ها این نقشه را کامل‌تر می‌کند: Contract Testها برای انتظارات بین سرویس‌ها، Property-based Testing برای پوشش لبه‌ها، تست اکتشافی برای کشف ناشناخته‌ها، و پایش مصنوعی در محیط اجرا برای تشخیص تغییر رفتار. پیام نهایی: منتظر مشخصات کامل نمانید؛ با تست، نقشه را همزمان با حرکت ترسیم کنید تا عدم‌قطعیت کاهش یابد و کیفیت با اطمینان بیشتری ارائه شود.

#تست_نرم‌افزار #کیفیت #بازخورد_سریع #مدیریت_ریسک #Observability #مهندسی_نرم‌افزار #توسعه_چابک #QA

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


👑 @software_Labdon
1
🔵 عنوان مقاله
How to Test Asynchronous Processes That Complete Hours Later

🟢 خلاصه مقاله:
** دانیل Delimata نشان می‌دهد چگونه با بازطراحی کوچک در سیستم و تست‌ها می‌توان فرایندهای ناهمگامی را که نتیجه‌شان ساعت‌ها بعد دیده می‌شود، به‌صورت خودکار و سریع راستی‌آزمایی کرد. رویکرد پیشنهادی بر «assertionهای در نهایت» با مهلت مشخص تکیه دارد: به‌جای sleep طولانی، رویداد را آغاز کنید و با polling یا اشتراک در خروجی‌ها (داده، رویداد، ایمیل) نتیجه را تا ضرب‌الاجل تعیین‌شده بررسی کنید. زمان را تزریق‌پذیر کنید (clock فیک)، زمان‌بندی‌ها را قابل‌پیکربندی کنید یا test hook امن برای اجرای فوری کارها فراهم کنید؛ و با شناسه‌های همبستگی و مشاهده‌پذیری (مثل OpenTelemetry) مسیر انتهابه‌انتها را رهگیری کنید. برای پایداری، هندلرهای idempotent، داده‌ی تست ایزوله و محیط‌های موقتی به کار ببرید و سطح مناسب تست (واحد، یکپارچه، انتهابه‌انتها، contract) را انتخاب کنید. در CI، مسیر سریع با زمان شتاب‌داده/هوک و مسیر آهسته شبانه‌ی واقع‌گرایانه را ترکیب کنید تا فرایندهایی که ساعت‌ها طول می‌کشند، در چند دقیقه به‌طور مطمئن تست شوند.

#AsynchronousTesting #EventualConsistency #Automation #DistributedSystems #E2ETesting #Observability #CI_CD #MessageQueues

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


👑 @software_Labdon
🔵 عنوان مقاله
It's Not Your Tests, It's Your Testability

🟢 خلاصه مقاله:
**
بی‌ثباتی تست‌ها همیشه تقصیر تست‌ها نیست؛ اغلب ریشه در سیستم کم‌تست‌پذیر دارد. وقتی زمان، هم‌روندی، تصادفی‌بودن یا وابستگی‌های بیرونی کنترل‌نشده باشند، تست‌ها ناپایدار می‌شوند. راه‌حل، ارتقای تست‌پذیری است: قابل‌کنترل و قابل‌مشاهده کردن سیستم، تزریق زمان و بذر تصادفی، جداسازی مرزهای شبکه با قراردادها و فیک‌ها، و هرمتیک‌کردن محیط تست. Gil Zilberfeld توصیه می‌کند برای جلب حمایت، هزینه فلیکینس را با داده نشان دهید و از بردهای کوچک (مثل افزودن seam، تزریق وابستگی برای زمان/I-O، و تست‌های قراردادی) شروع کنید. با گنجاندن تست‌پذیری در تصمیم‌های معماری و معیارهای پذیرش، تیم از آتش‌نشانی تست‌های flaky به ساخت نرم‌افزار ذاتاً تست‌پذیر و قابل‌اتکا منتقل می‌شود.

#Testability #FlakyTests #SoftwareTesting #QualityEngineering #DevOps #ContinuousIntegration #TestDesign #Observability

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


👑 @software_Labdon