🔵 عنوان مقاله
Selenium tests breaking constantly after every UI change. Is test maintenance really supposed to take this much time?
🟢 خلاصه مقاله:
این مسئله مطرح شد که چرا تستهای Selenium با هر تغییر در UI میشکنند و آیا این حجم از نگهداری طبیعی است یا نشانهی مشکل در رویکرد. جامعهی کاربری توصیه کرد وابستگی تستها به جزئیات شکنندهی رابط را کم کنند (استفاده از data-test-id)، از الگوهایی مثل Page Object Model برای متمرکزکردن انتخابگرها کمک بگیرند، و طبق Test Pyramid بیشتر پوشش را به لایههای Unit/API بدهند و فقط سناریوهای کاربرمحور کلیدی را با end‑to‑end اجرا کنند. برای کاهش test flakiness نیز بر waits مبتنی بر شرایط تجاری، کنترل وضعیت داده و محیط، اجتناب از تاخیرهای ثابت و انیمیشنها، ایزولهسازی در CI، mock/stub کردن فراخوانیهای ناپایدار، و قرنطینه و triage خودکار تستهای flaky تأکید شد. جمعبندی این بود که نگهداری سنگین اغلب نتیجهی استفادهی بیشازحد یا کوپلینگ شدید به UI است؛ با راهبردهای درست میتوان automated tests پایدارتر و کمهزینهتر داشت.
#Selenium #TestAutomation #FlakyTests #UITesting #SoftwareTesting #QA #CICD #E2E
🟣لینک مقاله:
https://cur.at/Scyp8xS?m=web
➖➖➖➖➖➖➖➖
👑 @software_Labdon
Selenium tests breaking constantly after every UI change. Is test maintenance really supposed to take this much time?
🟢 خلاصه مقاله:
این مسئله مطرح شد که چرا تستهای Selenium با هر تغییر در UI میشکنند و آیا این حجم از نگهداری طبیعی است یا نشانهی مشکل در رویکرد. جامعهی کاربری توصیه کرد وابستگی تستها به جزئیات شکنندهی رابط را کم کنند (استفاده از data-test-id)، از الگوهایی مثل Page Object Model برای متمرکزکردن انتخابگرها کمک بگیرند، و طبق Test Pyramid بیشتر پوشش را به لایههای Unit/API بدهند و فقط سناریوهای کاربرمحور کلیدی را با end‑to‑end اجرا کنند. برای کاهش test flakiness نیز بر waits مبتنی بر شرایط تجاری، کنترل وضعیت داده و محیط، اجتناب از تاخیرهای ثابت و انیمیشنها، ایزولهسازی در CI، mock/stub کردن فراخوانیهای ناپایدار، و قرنطینه و triage خودکار تستهای flaky تأکید شد. جمعبندی این بود که نگهداری سنگین اغلب نتیجهی استفادهی بیشازحد یا کوپلینگ شدید به UI است؛ با راهبردهای درست میتوان automated tests پایدارتر و کمهزینهتر داشت.
#Selenium #TestAutomation #FlakyTests #UITesting #SoftwareTesting #QA #CICD #E2E
🟣لینک مقاله:
https://cur.at/Scyp8xS?m=web
➖➖➖➖➖➖➖➖
👑 @software_Labdon
Reddit
From the QualityAssurance community on Reddit
Explore this post and more from the QualityAssurance community
🔵 عنوان مقاله
If you have 100 pages, do you create 100 Page Objects?
🟢 خلاصه مقاله:
اگر در یک اپلیکیشن ۱۰۰ صفحه دارید، آیا باید ۱۰۰ تا Page Objects بسازید؟ Đinh Công Cảnh یادآوری میکند که Page Objects قرار نیست نقشهی یکبهیک از UI باشند؛ آنها باید رفتارهای پایدار و معنادار برای کاربر را کپسوله کنند تا تستها خوانا و مقاوم در برابر تغییرات ظاهری بمانند. بهجای پیروی کورکورانه از ساختار DOM، مرزها را بر اساس «قصد و کار» تعریف کنید: احراز هویت، جستوجو، افزودن به سبد، تسویهحساب. اجزای تکرارشونده مثل ناوبری، سربرگ، فیلترها، جدولها و مودالها را به صورت component objectهای قابلاستفادهمجدد جدا کنید.
قانون سرانگشتی این است که تعداد Page Objects را نه با تعداد صفحات، بلکه با انسجام مسئولیتها و میزان تغییرپذیری تعیین کنید: گاهی یک صفحه به چند object کوچکتر (فرم، لیست، ویجت سبد) نیاز دارد، و گاهی چند صفحه با رفتار مشابه یک object مشترک را به اشتراک میگذارند. نامگذاری را هدفمحور کنید و جزییات تعاملی و locatorهای پایدار را در خود Page Objects نگه دارید تا تستها در سطح دامنهٔ کسبوکار بیان شوند. از الگوهای مکمل مثل Screenplay Pattern هم میتوان در دامنههای پیچیده بهره گرفت.
نتیجه اینکه عدد «۱۰۰» پاسخی ندارد؛ معیار واقعی، نگهداشتپذیری و کاهش اثر موجی تغییرات UI است. پیام اصلی Đinh Công Cảnh درباره شمردن objectها نیست، بلکه ساختن انتزاعهای درست است تا تستها سریعتر تغییر کنند، واضحتر بمانند و سختتر بشکنند.
#PageObjects #TestAutomation #UITesting #DesignPatterns #Selenium #QA #SoftwareTesting #Maintainability
🟣لینک مقاله:
https://cur.at/vvybnfG?m=web
➖➖➖➖➖➖➖➖
👑 @software_Labdon
If you have 100 pages, do you create 100 Page Objects?
🟢 خلاصه مقاله:
اگر در یک اپلیکیشن ۱۰۰ صفحه دارید، آیا باید ۱۰۰ تا Page Objects بسازید؟ Đinh Công Cảnh یادآوری میکند که Page Objects قرار نیست نقشهی یکبهیک از UI باشند؛ آنها باید رفتارهای پایدار و معنادار برای کاربر را کپسوله کنند تا تستها خوانا و مقاوم در برابر تغییرات ظاهری بمانند. بهجای پیروی کورکورانه از ساختار DOM، مرزها را بر اساس «قصد و کار» تعریف کنید: احراز هویت، جستوجو، افزودن به سبد، تسویهحساب. اجزای تکرارشونده مثل ناوبری، سربرگ، فیلترها، جدولها و مودالها را به صورت component objectهای قابلاستفادهمجدد جدا کنید.
قانون سرانگشتی این است که تعداد Page Objects را نه با تعداد صفحات، بلکه با انسجام مسئولیتها و میزان تغییرپذیری تعیین کنید: گاهی یک صفحه به چند object کوچکتر (فرم، لیست، ویجت سبد) نیاز دارد، و گاهی چند صفحه با رفتار مشابه یک object مشترک را به اشتراک میگذارند. نامگذاری را هدفمحور کنید و جزییات تعاملی و locatorهای پایدار را در خود Page Objects نگه دارید تا تستها در سطح دامنهٔ کسبوکار بیان شوند. از الگوهای مکمل مثل Screenplay Pattern هم میتوان در دامنههای پیچیده بهره گرفت.
نتیجه اینکه عدد «۱۰۰» پاسخی ندارد؛ معیار واقعی، نگهداشتپذیری و کاهش اثر موجی تغییرات UI است. پیام اصلی Đinh Công Cảnh درباره شمردن objectها نیست، بلکه ساختن انتزاعهای درست است تا تستها سریعتر تغییر کنند، واضحتر بمانند و سختتر بشکنند.
#PageObjects #TestAutomation #UITesting #DesignPatterns #Selenium #QA #SoftwareTesting #Maintainability
🟣لینک مقاله:
https://cur.at/vvybnfG?m=web
➖➖➖➖➖➖➖➖
👑 @software_Labdon
Medium
If you have 100 pages, do you create 100 Page Objects?
An interview question you may encounter