تصور کنید که مهمترین نرمافزار شرکت شما ناگهان از کار بیفتد - چه اتفاقی میافتد؟ ممکن است سفارشها از دست بروند، ممکن است مهلتها رعایت نشوند، اما مشتریان قطعاً شکایت خواهند کرد.
این سناریوی کابوسوار قابل اجتناب است: با اجرای یک فرآیند آزمایش مداوم و دقیق، که مشکلات را قبل از ایجاد هرج و مرج شناسایی میکند. اما اجرای چنین فرآیندی در سازمان شما آسانتر از آن است که گفته شود.
این مقاله هر آنچه را که هنگام شروع آزمایش در شرکت خود باید در نظر بگیرید و اینکه چگونه میتوانید در درازمدت از آزمایش بهرهمند شوید، به شما نشان خواهد داد.
آزمایش بهترین شیوهها برای تیمهای محصول
بخش اول این مقاله، فرآیند شروع پیادهسازی تست در گردش کار شما را پوشش میدهد.
فرهنگ تست را در تیم خود پیاده کنید
معرفی موفقیتآمیز تست در تیم شما مستلزم آن است که همه یک طرز فکر مشترک داشته باشند و کیفیت را نه به عنوان یک بار، بلکه به عنوان یک سرمایهگذاری ببینند. این فرآیندی است که مانند هر تغییر فرهنگی دیگر، نیاز به زمان و ثبات دارد.
یکی از چیزهایی که میتواند به شکلگیری این فرهنگ کمک کند، جلسات منظم برای بحث در مورد نقصها، تأثیر آنها، منشأ آنها و آنچه برای رفع آنها لازم است، است. این امر به ایجاد آگاهی در مورد اینکه چرا پیشگیری از چنین نقصهایی در وهله اول خوب است، کمک میکند.
داشتن یک فرد متعهد در تیم که بر تلاشها نظارت و آنها را هدایت کند، میتواند شانس موفقیت را به شدت افزایش دهد. کسی که دستورالعملهای تیمی - یا حتی در سطح سازمان - را تعریف میکند، بهترین شیوهها را جمعآوری کرده و آنها را به اشتراک میگذارد و از تلاشها در سطوح مختلف حمایت میکند.
یکی دیگر از ابزارهای مفید میتواند تغییر نقش پشتیبانی محصول شما باشد. دریافت بینشهای دست اول و بدون فیلتر از مشتریان و یادگیری در مورد مشکلات روزمرهای که آنها با محصول شما مواجه میشوند، میتواند تجربه ارزشمندی برای مدیران محصول، طراحان و توسعهدهندگان باشد.
هدف این است که همه اعضای تیم شما درک کنند که کیفیت یک ویژگی است، به اندازه هر قابلیت دیگری که برای محصول خود ایجاد میکنید. وقتی همه این طرز فکر را پذیرفتند، درک این که تستها نیز یک ویژگی هستند، یک پیشرفت طبیعی است. زیرا تستها هستند که کیفیت ارائه شده را تضمین میکنند.
فرآیند آزمایش گام به گام
زمانی که بین تیمهای مختلف درگیر در توسعه محصول هماهنگی وجود داشته باشد، میتوانید وجود و استفاده از تستها را رسمیتر کنید.
تستها را به بخشی از «تعریف انجامشده» تبدیل کنید
با اضافه کردن تستها به عنوان یک الزام برای ویژگی، شما اعلام میکنید که یک ویژگی تا زمانی که به درستی و به طور خودکار آزمایش نشود، آماده ارائه نیست.
آزمایشها را به طور منظم اجرا کنید
پس از پیادهسازی، تستهای خودکار میتوانند در هر مرحله از فرآیند توسعه، محافظ شما باشند. آنها نیازی به دخالت انسان ندارند و میتوانند در هر مرحله حیاتی از خط تولید شما اجرا شوند. به عنوان مثال:
- در هر کامیت.
- در هر درخواست pull.
- بعد از هر انتشار کامل یا تغییر محیط.
اگر در محیط تولید خود به سرویسهای شخص ثالث متکی هستید، حتی منطقی است که تستهای خود را در محیط تولید اجرا کنید تا مطمئن شوید APIهای شخص ثالث مطابق انتظار رفتار میکنند.
تعریف و جمعآوری معیارها
تعریف مجموعهای از معیارها برای سنجش اثربخشی تستهای شما و تأثیر گردشهای کاری تست بر کسبوکارتان مهم است. در اینجا چند نمونه از معیارهایی که میتوانید استفاده کنید، آورده شده است:
- تعداد انتشار در ماه : تعداد بیشتر انتشار در ماه میتواند نشاندهندهی یک فرآیند توسعهی چابکتر باشد. تست خودکار با اطمینان از ادامهی انتشارها، نقش کلیدی در اینجا ایفا میکند.
- گزارشهای باگ : روند کاهشی در گزارشهای باگ میتواند نشانهی مثبتی باشد که آزمایش (و فرآیندهای توسعه) شما مؤثر هستند.
- پوشش تست : اگرچه هرگز معیار دقیقی نیست، اما پوشش میتواند شاخص خوبی از میزان عمق آزمایش موارد استفاده حیاتی باشد.
توجه داشته باشید که این معیارها تحت تأثیر عوامل دیگری نیز قرار میگیرند که ممکن است آنها را منحرف کنند. برای مثال، ممکن است تعداد انتشارهای شما در فصل تعطیلات کاهش یابد، در حالی که گزارشهای باگ افزایش یابد. بنابراین فقط به تعداد کمی از آنها تکیه نکنید و مطمئن شوید که آنها را با سایر دادههای موجود در تیم خود تطبیق میدهید.
وقتی این مراحل را با موفقیت با تیم خود اجرا کنید، سلامت محصول شما قطعاً در درازمدت بهبود خواهد یافت. اما هنوز کارهای بیشتری میتوانید انجام دهید!
آزمایش بهترین شیوهها برای مدیران سیستم
تیمهای محصول نمیتوانند به تنهایی کار کنند. آنها به سختافزار، ابزارها و زیرساختهایی که توسط مدیران سیستم نگهداری میشوند، متکی هستند. اگرچه مدیران سیستم معمولاً مستقیماً در توسعه محصول مشارکت نمیکنند، اما همچنان میتوانند بر روند کار توسعه تأثیر مثبت بگذارند. به عنوان مثال، با مدیریت فعال نسخه مرورگر مورد استفاده گروههای کاربری خاص در شرکت.
بخش دوم مقاله، نحوهی عملکرد این قابلیت را با استفاده از کانالها و سیاستهای سازمانی کروم توضیح میدهد.
کانالهای انتشار کروم
بهطور پیشفرض، کروم بهطور خودکار بهروزرسانی میشود تا اطمینان حاصل شود که هر کاربر از جدیدترین، پایدارترین و امنترین نسخه کروم، شامل جدیدترین ویژگیها - نسخهای از کروم که در کانال پایدار منتشر شده است - استفاده میکند.
به عنوان شرکتی که در حال توسعه یک محصول مبتنی بر وب است، ممکن است بخواهید قبل از کانال پایدار از یک مرورگر استفاده کنید تا به تیمهای محصول خود زمان بدهید تا محصول شما را با تغییرات پلتفرم وب تطبیق دهند.
برای این مورد استفاده، کروم در مجموع چهار کانال انتشار ارائه میدهد که برای گروههای کاربری مختلف در نظر گرفته شدهاند.
در مورد کروم، کانالهای انتشار مختلفی وجود دارد که میتوانید از آنها استفاده کنید تا تغییرات آینده مرورگر را پیشبینی کنید و جدیدترین ویژگیها را قبل از اینکه به طور گسترده در دسترس قرار گیرند، آزمایش کنید:
- کانال پایدار : این کانال جایی است که بیشتر کاربران در آن قرار دارند. کانال پایدار به طور خودکار با انتشار نسخه جدید کروم ، که ماهانه اتفاق میافتد، بهروزرسانی میشود.
- کانال بتا : این نسخه ظرف چهار تا شش هفته پایدار خواهد شد و به شما این امکان را میدهد که نسخه پایدار آینده را پیشنمایش و آزمایش کنید و برای آن آماده شوید.
- کانال توسعهدهندگان : این کانال هفتهای یک بار نسخه جدیدی از کروم را دریافت میکند و شامل تمام آخرین اصلاحاتی است که در نهایت به نسخه بتا منتقل میشوند. همانطور که از نام کانال پیداست، این کانال در حال توسعه است و بنابراین ممکن است به طور غیرمنتظرهای با مشکل مواجه شود - اما همچنین شامل جدیدترین ویژگیها نیز میشود، گاهی اوقات خیلی قبل از اینکه به نسخه پایدار برسند. این امر کانال توسعهدهندگان را به ابزاری عالی برای نمونهسازی اولیه و توسعه پیشرفته تبدیل میکند.
- کانال قناری : آزمایشیترین کانال، شامل جدیدترین ویژگیها اما بدون آزمایش زیاد. حداقل روزانه منتشر میشود.
اگر میخواهید درباره کانالهای کروم بیشتر بدانید، قسمت مربوط به مفاهیم کروم را بررسی کنید.

استفاده از کانالها در یک سازمان نمونه
ساختار تیمهای محصول در بین سازمانها متفاوت است، زیرا هیچ رویکرد یکسانی برای توسعه نرمافزار وجود ندارد. به عنوان مثال، تیمی با نقشهای زیر را فرض میکنیم: مدیریت محصول، UX و UI، مهندسی، عملیات و پشتیبانی.
برای سازمانی مانند این، میتوانید تقسیمبندی کانال زیر را در نظر بگیرید:
- مدیریت محصول : مدیران محصول معمولاً میتوانند در کانال پایدار باشند تا از همان نسخهای که اکثر کاربران استفاده میکنند، استفاده کنند. گاهی اوقات اگر روی ویژگیای کار میکنند که به API نیاز دارد که هنوز راهاندازی نشده است، میتوانند از کانال بتا یا توسعه استفاده کنند.
- مهندسی و تجربه کاربری : بخشهایی از این تیمها میتوانند در کانال توسعه باشند تا به جدیدترین ویژگیها، مانند View Transitions ، حتی قبل از اینکه به نسخه پایدار برسند، دسترسی داشته باشند.
- عملیات : ممکن است در مرحله بتا باشد، تا پیشبینی شود که خرابی در مرحله بعدی کاربران را تحت تأثیر قرار دهد.
- پشتیبانی : میتواند در کانال پایدار باقی بماند تا مطمئن شود که آنها با همان مرورگری که اکثر مشتریان شما با آن در تعامل هستند، با محصول تعامل دارند.

استفاده از سیاستهای سازمانی برای مدیریت کانالها
کروم به جای ارائه دستورالعملها و واگذاری تصمیمگیری در مورد اینکه از کدام کانال استفاده شود، ابزارهای سازمانی و مدیریتی را نیز ارائه میدهد تا به طور فعال مدیریت کنند که هر کاربر در نهایت از کدام کانال استفاده میکند. این مفید است زیرا بلافاصله سطح آزمایش را از چند فرد به مجموعهای قطعی از کاربران افزایش میدهد که به شناسایی هرچه سریعتر و به روشی قابل ردیابی کمک میکند.
اگر میخواهید از آن سطح کنترل استفاده کنید، پیکربندی پیشنهادی ما این است:
- کارمندان (کاربران برنامه) : برای به حداقل رساندن خطر اختلال، اکثر کارمندان باید در کانال پایدار باشند که توسط تیم آزمایش کروم به طور کامل آزمایش شده است. علاوه بر این، درصد کمی از کاربران (از ۵ تا ۱۰٪) میتوانند در کانال بتا باشند. این کانال یک پیشنمایش ۴ تا ۶ هفتهای از نسخه پایدار دریافت میکند و میتواند به مدیران کمک کند تا مشکلات احتمالی یک نسخه را کشف کنند و زمان بیشتری برای رسیدگی به مشکلات قبل از انتشار نسخه برای همه افراد دیگر فراهم کند.
- بخش فناوری اطلاعات : اعضای بخش فناوری اطلاعات، از جمله خود مدیران سیستم، میتوانند در کانال بتا یا توسعهدهندگان باشند تا پیشنمایش ۴ تا ۶ یا ۹ تا ۱۲ هفتهای از آنچه که به نسخه پایدار کروم میآید را دریافت کنند.

کانالهای انتشار بلندمدت
ممکن است توسعه محصول به سرعت برنامهریزی شده پیش نرود و سرعت انتشار ماهانه کروم خیلی زیاد باشد. برای این مورد استفاده، کروم یک کانال پایدار توسعهیافته ارائه میدهد که امکان دریافت بهروزرسانیهای ویژگی را با فواصل زمانی کمتری فراهم میکند، اما همچنان رفع اشکالات امنیتی را دریافت میکند. این کانال هر هشت هفته بهروزرسانی میشود.
نمودار زیر نشان میدهد که چگونه مراحل مختلف از طریق کانالهای انتشار مختلف کروم طی میشوند:

- هر دو نسخهی پایدار و پایدار توسعهیافته، نسخههای یکسانی را برای چهار هفتهی اول ارائه میدهند و پس از آن، این دو از هم جدا میشوند.
- هیچ کانال بتای توسعهیافتهای وجود ندارد؛ در عوض، چرخه بتای استاندارد چهار هفتهای برای تثبیت هر دو نسخه پایدار و توسعهیافته استفاده میشود. شرکتهایی که تصمیم به استفاده از نسخه پایدار هشت هفتهای توسعهیافته میگیرند، باید به اجرای کانال بتا مانند امروز ادامه دهند تا بتوانند به طور پیشگیرانه مشکلاتی را که ممکن است بر محیطهایشان تأثیر بگذارد، شناسایی کنند.
اهمیت مداوم کانالهای توسعهدهندگان و بتا برای کاربران پایدار و توسعهیافته
در حالی که کانال پایدار به چرخه انتشار دو هفتهای شتاب میگیرد و سازمان شما در حال اتخاذ چرخه پایدار تمدید شده هشت هفتهای برای به دست آوردن زمان بیشتر برای آزمایش است، استفاده از کانالهای توسعه و بتا همچنان حیاتی است. هیچ کانال جداگانهای با عنوان «توسعه یا بتای تمدید شده» وجود ندارد؛ کانالهای توسعه و بتای استاندارد برای تثبیت هر دو نسخه پایدار و پایدار تمدید شده استفاده میشوند.
با ادامهی اجرای کانالهای توسعه و بتا، شرکتها توانایی شناسایی پیشگیرانهی مشکلاتی را که میتوانند بر محیطهایشان تأثیر بگذارند، حفظ میکنند. کانالهای توسعه و بتا یک پیشنمایش چهار هفتهای از نسخهی پایدار آینده ارائه میدهند. برای کاربران پایدارِ توسعهیافته، این پنجرهی پیشنمایش برای کشف و رفع مشکلات احتمالی، مدتها قبل از بهروزرسانی ویژگی هشت هفتهای، ضروری است.
کانالهای توسعه و بتا اساساً به عنوان سیستم هشدار اولیه اولیه برای هرگونه تغییری که در محیط پایدار هشت هفتهای شما ایجاد میشود، عمل میکنند و سازگاری برنامههای سازمانی شما را تضمین میکنند. مدیران سیستم میتوانند همچنان یک گروه کوچک و قطعی از کاربران (به عنوان مثال، ۵ تا ۱۰ درصد از کاربران برنامه) را به کانالهای توسعه و بتا اختصاص دهند تا این مزیت را به حداکثر برسانند.
نتیجهگیری
آزمایش بخش مهمی از شرکتهای توسعه نرمافزار برای اطمینان از کیفیت محصولاتشان و همچنین گامی مهم برای مدیران سیستم است تا به کارمندان یک سازمان دسترسی به نرمافزار با کیفیت بالا را بدهند و از ایجاد اختلال در فرآیندهای تجاری جلوگیری کنند.
برای موفقیت در پیادهسازی گردش کار تست در سازمان، مهم است که همه این طرز فکر مشترک را داشته باشند که کیفیت و در نتیجه تست یک ویژگی است.
در این مقاله، روشهای مختلفی را برای ادغام بهترین شیوههای تست در سازمان شما بررسی کردهایم، برای بررسی عمیقتر ابزارهای تست موجود، مقاله ما با عنوان «ابزارهایی از کروم برای تست خودکار و بدون اصطکاک» را بررسی کنید.
برای راهنمایی عملی در مورد تست، از ابتدا تا انتها، دوره اخیر «یادگیری تست» و بهترین شیوههای اتوماسیون تست ما را در web.dev نیز بررسی کنید.