Software Engineer Labdon
624 subscribers
43 photos
4 videos
2 files
796 links
👑 Software Labdon

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Make Selenium Test Smarter with AI — Local/Cloud LLMs

🟢 خلاصه مقاله:
این ویدئوی کوتاه از Karthik K.K. نشان می‌دهد چگونه می‌توان با ترکیب Selenium و AI (به‌ویژه LLMs)، فرایند تست خودکار را هوشمندتر کرد. تمرکز بر قابلیت‌هایی مانند تولید خودکار اسکریپت از توضیحات طبیعی، self-healing برای locatorها، ساخت assertionهای معنادار، و تحلیل خطاها و لاگ‌ها برای ریشه‌یابی سریع‌تر است. همچنین به مزایا و معایب LLMهای Local در برابر Cloud پرداخته می‌شود: حفظ داده و هزینه قابل پیش‌بینی در Local در مقابل کیفیت، مقیاس‌پذیری و سهولت اتصال در Cloud. در نهایت، رویکردی گام‌به‌گام برای شروع پیشنهاد می‌شود تا تیم‌ها بدون جایگزین‌کردن مهارت مهندس تست، با افزودن AI به Selenium، سرعت تولید تست، پایداری و کیفیت بازخورد را بهبود دهند.

#Selenium #AI #LLM #TestAutomation #SoftwareTesting #QA #DevTools #CI_CD

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


👑 @software_Labdon
🔵 عنوان مقاله
Mutation testing — not just for unit tests

🟢 خلاصه مقاله:
mutation testing روشی برای سنجش کیفیت واقعی آزمون‌هاست: با ایجاد تغییرات کوچک در کد، بررسی می‌کند آیا تست‌ها می‌توانند خطاهای احتمالی را کشف کنند یا نه. این رویکرد فقط مخصوص unit tests نیست؛ می‌توان آن را در سطح integration و API و حتی سناریوهای انتها به انتها به‌کار گرفت تا مطمئن شویم تست‌ها رفتار قابل مشاهده را به‌خوبی پوشش می‌دهند. Bas Dijkstra با یک مثال گام‌به‌گام نشان می‌دهد چگونه ابزار را پیکربندی کنیم، mutants بسازیم، تست‌ها را اجرا کنیم و نتایج را تفسیر کنیم؛ و چگونه با تقویت assertions، افزودن سناریوهای لبه، یا حذف کد مرده کیفیت را بالا ببریم. پیشنهاد عملی این است که با یک بخش کوچک شروع کنید، ابزار مناسب پشته‌تان را انتخاب کنید، در CI آستانه‌های معقول بگذارید و اجرای سنگین‌تر را دوره‌ای انجام دهید تا با هزینه منطقی، بازخورد مؤثر بگیرید.

#MutationTesting #SoftwareTesting #UnitTesting #TestQuality #BasDijkstra #CodeCoverage #CI_CD #DevOps

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


👑 @software_Labdon
🎉1
🔵 عنوان مقاله
WOW. Playwright is significantly better than Selenium

🟢 خلاصه مقاله:
این روزها بسیاری از تسترها می‌گویند Playwright نسبت به Selenium برتری چشمگیری دارد و بحث‌های Reddit نیز با تجربه‌های واقعیِ مهاجرت این موضوع را تأیید می‌کند. مهم‌ترین مزیت‌ها: کاهش چشمگیر فلِیکی به‌خاطر auto-waiting و زمان‌بندی هوشمند، API مدرن و سازگار در مرورگرهای مختلف، و ابزارهای یکپارچه مثل test runner، اجرای موازی، tracing، و ضبط ویدئو/اسکرین‌شات که دیباگ را ساده و چرخه بازخورد در CI/CD را کوتاه می‌کنند. بسیاری گزارش داده‌اند که با Playwright کد کمتر، پایداری بیشتر و پوشش cross-browser روان‌تری دارند. با این حال، در کنار این مزایا به بلوغ و اکوسیستم گسترده Selenium هم اشاره می‌شود؛ انتخاب نهایی به نیازها و زمینه پروژه وابسته است، اما برای تیم‌هایی که سرعت، پایداری و تجربه توسعه‌دهنده را در اولویت می‌گذارند، Playwright گزینه برتر جلوه می‌کند.

#Playwright #Selenium #TestAutomation #WebTesting #QA #E2E #CI_CD #Reddit

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


👑 @software_Labdon
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Windows (GitHub Repo)

🟢 خلاصه مقاله:
** این GitHub Repo راه‌اندازی Windows داخل یک محیط Docker را ساده می‌کند: با دانلود خودکار ISO و بهره‌گیری از شتاب‌دهی KVM، یک ماشین مجازی Windows با کارایی نزدیک به بومی اجرا می‌شود. هدف، ارائه محیطی تکرارپذیر، قابل‌حمل و یک‌بارمصرف برای توسعه و تست است؛ با امکان دسترسی از راه دور (مثلاً RDP/VNC) و نگه‌داری داده‌ها از طریق volumeها. این راه‌حل برای CI/CD، تست میان‌سکویی و اجرای ابزارهای مخصوص Windows مفید است. نیازمندی‌ها معمولاً شامل یک میزبان Linux با پشتیبانی KVM و رعایت الزامات لایسنس Windows است.

#Windows #Docker #KVM #Virtualization #DevOps #ISO #CloudNative #CI_CD

🟣لینک مقاله:
https://github.com/dockur/windows?utm_source=tldrinfosec


👑 @software_Labdon
🤝1
🔵 عنوان مقاله
Building Smarter Tests with Custom Annotations and Listeners in TestNG — A Practical Guide

🟢 خلاصه مقاله:
**این مقاله نشان می‌دهد چگونه با ترکیب annotationهای سفارشی و listenerها در TestNG می‌توان تست‌هایی هوشمندتر، پایدارتر و مقیاس‌پذیرتر ساخت. با افزودن متادیتا مانند مالک، شدت، مؤلفه یا شرایط اجرا به‌صورت annotation، اجرای تست‌ها قابل کنترل‌تر می‌شود: فیلترکردن در CI، تنظیم داینامیک retry برای تست‌های flaky، اعمال timeout و skipهای شرطی—all بدون شلوغ‌کردن بدنه تست‌ها. در سوی دیگر، listenerها از رویدادهای چرخه عمر TestNG برای لاگ‌گیری یکدست، ثبت اسکرین‌شات و آرتیفکت در خطا، جمع‌آوری متریک زمان، قرنطینه‌کردن تست‌های flaky، fail-fast و یکپارچه‌سازی با گزارش‌دهی‌هایی مثل Allure استفاده می‌کنند؛ بنابراین کد تست تمیزتر و رفتار مقطعی یکپارچه می‌شود. مقاله همچنین نکات اجرای موازی را پوشش می‌دهد: پرهیز از state مشترک، استفاده از منابع thread-local (مثل WebDriver)، جداسازی داده و تنظیم timeout برای حفظ ایزولیشن و کاهش flakiness در مقیاس CI. جمع‌بندی توصیه می‌کند مجموعه‌ای کوچک و شفاف از annotationها و یک listener عمومی بسازید که سیاست‌ها را از روی متادیتا اعمال کند، از بازتاب کنترل‌شده و قابل‌آزمون بهره ببرد و به‌تدریج قابلیت‌های باارزش مثل لاگ منسجم، آرتیفکت‌های خطا و retry هدفمند را اضافه کند. در پایان، Vaibhav Chavan نکات کلیدی و راهنمای تکمیلی Parallel Testing with TestNG را معرفی می‌کند.

#TestNG #JavaTesting #Annotations #Listeners #ParallelTesting #AutomationTesting #QA #CI/CD

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


👑 @software_Labdon
🔵 عنوان مقاله
trdl (GitHub Repo)

🟢 خلاصه مقاله:
خلاصه‌ای متن‌باز به نام trdl با تمرکز بر «تحویل مطمئن» آخرین مرحله‌ی توزیع نرم‌افزار را امن می‌کند: رساندن به‌روزرسانی‌ها از Git به کاربر نهایی با کانالی قابل‌اعتماد و قابل‌راستی‌آزمایی. این راهکار با اتصال طبیعی به فرآیندهای مبتنی بر Git و ادغام در اتوماسیون انتشار، تضمین می‌کند آنچه نصب می‌شود همان چیزی است که نگه‌دارندگان منتشر کرده‌اند. با تکیه بر امضا و راستی‌آزمایی رمزنگاری، اصالت، تمامیت و مبدأ به‌روزرسانی‌ها قبل از اعمال بررسی می‌شود؛ در نتیجه ریسک‌های زنجیره تأمین کاهش می‌یابد و امکان انتشارهای قابل‌ممیزی، بازگشت نسخه و سیاست‌های به‌روزرسانی (مانند stable یا pre-release) فراهم می‌شود. trdl متن‌باز است، می‌تواند self-hosted اجرا شود، و از طریق GitHub Repo در دسترس است؛ کاربران و تیم‌های عملیاتی نیز می‌توانند با یک رابط ساده مانند CLI به‌روزرسانی‌های مورد اعتماد را دریافت و اعمال کنند.

#trdl #SupplyChainSecurity #SecureUpdates #Git #OpenSource #DevOps #SoftwareDelivery #CI/CD

🟣لینک مقاله:
https://github.com/werf/trdl?utm_source=tldrinfosec


👑 @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
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Architecture Tests

🟢 خلاصه مقاله:
** تاراس Kizlo در ادامهٔ مجموعهٔ خود دربارهٔ سطوح تست، سراغ موضوع کمتر مطرح‌شده‌ای رفته است: تست‌های معماری. او توضیح می‌دهد که این تست‌ها مجموعه‌ای از قواعد اجرایی‌اند که مرزهای معماری، وابستگی‌های مجاز، نبود حلقه‌های وابستگی و قواعد نام‌گذاری/لایه‌بندی را بررسی می‌کنند تا از فرسایش تدریجی طراحی جلوگیری شود. مقاله نشان می‌دهد چگونه می‌توان این قواعد را کنار تست‌های معمول و در CI/CD اجرا کرد و با ابزارهایی مثل ArchUnit یا NetArchTest آن‌ها را به شکست‌پذیر کردن بیلد گره زد. توصیه‌های عملی شامل شروع از چند قانون پرتأثیر، پرهیز از قواعد شکننده، همگام‌سازی با تصمیم‌های معماری و به‌روزرسانی مداوم تست‌هاست. نتیجهٔ نهایی: تست‌های معماری قصد طراحی را به قراردادهای قابل اجرا تبدیل می‌کنند و به‌عنوان گاردریل‌های ماندگار، ساختار سالم کد را حفظ می‌کنند.

#ArchitectureTests #SoftwareArchitecture #SoftwareTesting #CleanArchitecture #CI/CD #ArchUnit #NetArchTest #CodeQuality

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


👑 @software_Labdon