چگونه بهره‌وری بیشتری از تست داشته باشیم؟ (قسمت دوم)

بهره‌وری تست نرم افزار و اپلیکیشندر بخش قبل، از بهره‌وری تست نرم افزار و اپلیکیشن صحبت کردیم. در ادامه مقاله قبلی میخواهیم نحوه انتخاب بین دو راهی تست اتوماتیک و تست دستی را مطرح کنیم.از پارامترهای مهم برای افزایش بهره‌وری تست نرم افزار و اپلیکیشن ،‌استفاده از تکنولوژی‌های مناسب برای محصول تحت تست می باشد. در همین راستا، پیش از هر چیز باید نیازمندی خود را شناسایی کنیم. برای تشخیص این نیازمندی‌ها باید ابتدا با سوالات اساسی زیر پاسخ دهیم:آیا بازخورد سریع از اجرای تست‌ها مهم است؟چه تست‌هایی برای اجرا داریم؟بازخورد تست‌ها برای چه کسانی مهم‌تر است؟ ‌مدیران، مهندسین تست‌ یا توسعه دهنده‌ها؟تسلط تیم تست بر روی چه ابزارهایی است؟تعداد تست‌های لازم برای پوشش مطلوب فیچر‌ها چندتاست؟مدت زمان اجرای تست‌های اتوماتیک چقدر است؟آیا محصول زیرساخت لازم برای mocking یا stub را دارد؟در طراحی محصول،‌ کامپوننت‌ها با چه کیفیتی طراحی شده یا پیاده‌ شده‌اند؟بعد از پاسخ به این سوالات می توانیم ابزارهای مناسب را انتخاب کنیم. برای نمونه نحوه انتخاب چند تا از ابزارها به عنوان بررسی می‌شود:نحوه انتخاب ابزار CI:یکی از دسته ابزارهایی که می‌تواند تاثیر زیادی در بهره‌وری آزمون نرم افزار داشته باشد ابزارهای CI (Continuous Integration یا همان یکپارچه‌سازی مداوم) است. در مورد تاثیرCI در چرخه تست بعدا شرح داده خواهد شد. این ابزارها به تستر‌ها کمک می‌کنند که بازخورد سریع‌تری از تست‌های خود داشته باشند. همچنین بسیاری از فرآیند‌های دستی و روتین خود را به یک فرایند اتوماتیک تبدلی کنند. در انتخاب این ابزار باید دقت کرد که استفاده کننده نهایی از این ابزار چه کسانی هستند. برای مثال در صورتی که استفاده کننده‌های نهایی، توسعه دهنده‌ها باشند و همچنین ابزار VCS در حال استفاده توسط تیم توسعه gitlab باشد بهتر است فرآیند Continuous Integration با استفاده از Gitlab-CI پیاده‌سازی شود. اما اگر بازخورد بیشتر برای تسترها یا مدیران مهم باشد می‌توان از ابزارهای open source ای مانند Jenkins استفاده کرد که امکانات قدرتمندی را در اختیار آزمونگر ها یا مدیران قرار می‌دهد و با پشتیبانی از plugin انعطاف بالایی در استفاده از آن می‌توان داشت.ابزار تست E2E :برای تست e2e ابزارهای مختلفی می توان استفاده کرد. برای مثال، فرض کنید می‌خواهیم برای محصول وب خود تست اتوماتیک e2e پیاده کنیم.اگر مهندسان تست زبان جاوا اسکریپت بدانند از طرفی محصول وبی که تحت آزمایش است به زبان انگولار پیاده شده باشد استفاده از protractor می تواند گزینه مناسبی باشد اما اگر تسترها به زبان پایتون آشنایی داشته باشند می توان از فریموورک سلنیوم (selenium) و با استفاده از پایتون تست های end-to-end خود را پیاده کند.از طرف دیگر اگر محصول، یک محصول Enterprise باشد که با رعایت تمام اصول حرفه‌ای طراحی، پیاده‌سازی و توسعه پیاده شده باشد استفاده از سایپرس (cypress) می‌تواند گزینه مناسبی باشد. با استفاده از سایپرس می‌توان علاوه بر پیاده‌سازی تست‌های e2e، تست‌هایی اتوماتیک UI نیز پیاده کرد. از طرفی در سایپرس امکان جداسازی کامپوننت‌ها در تست‌ها به صورت آسان‌تری فراهم هست اما همین فرآیند در ابزارهای selenium-base دشوار است. همچنین باید در نظر داشت که استفاده از سایپرس به فرد حرفه‌ای تری نیاز دارد که بتواند از امتیاز آن به نسبت سلنیوم استفاده کند.با این حال باید توجه داشت که سلنیوم امتیازهایی community قوی تری دارد و قابلیت‌هایی مانند multi-tab یا cross-platform،‌ پشتیبانی بهتری از مرورگرها را به نسبت سایپرس دارد.ابزار مدیریت تست و مدیریت باگ:ابزارهای دیگری که می‌توانند ما را در بهره‌وری بسته کمک کنند ابزارهای مدیریت تست‌ها یا باگ‌ها هستند. از فواید مدیریت تست کیس و مدیریت باگ در نوشته‌های آتی بیشتر گفته می‌شود.در بسیاری موارد، با استفاده از google-sheet یا یک فایل اکسل به اشتراک گذاشته شده می‌توان نیازمندی خود را برای مدیریت تست کیس‌ها پاسخگو بود اما اگر بخواهیم در یک تیم چند نفره، مدیریت دقیق‌تری از تست‌ها یا باگ‌ها داشته باشیم و یا بخواهیم از ارتباط بین تست‌ها و باگ‌ها استفاده کنیم می‌توان از ابزارهایی که برای Test Management طراحی شده‌اند استفاده کنیم. در این ابزارها می‌توانیم تاریخچه اجراهای تست دستی یا اتوماتیک را داشته باشیم. گزارش‌های مربوط به آن‌ها را ببینیم یا آنالیز کنیم. از طرفی امکان integrate شدن به ابزارهای مدیریت پروژه مانند Jira یا پیام‌رسان‌هایی مانند slack در این ابزارها فراهم است.برای مثال می‌توان از پلاگین‌ TestFlo برای مدیریت تست‌ها و باگ‌ها در جیرا استفاده نمود (این پلاگین رایگان نیست و استفاده از این پلاگین در ایران دشوار است).یا با استفاده از ابزار قدیمی و رایگان TestLink می‌توان کمی مدیریت تست‌ها را بهبود داد اما امکانات این ابزار به نسبت ابزارهای دیگر محدود و کم است.برای کسانی که از ابزارهای open source استقبال می‌کنند kiwiTCMS پیشنهاد می‌شود. این ابزار را می‌توان به صورت on premise برای محصول راه‌اندازی نمود و استفاده کرد. امکانات این ابزار رایگان نیز قابل توجه است. برای مثال می‌توان به موارد زیر اشاره کرد:مدیریت برنامه تست (test plan)مدیریت تست کیس (test case)مدیریت اجرای تست (test run و test execution)ردیابی خطاها یا باگ‌ها (Bug tracker)یکپارچه شدن یا Integerate شدن با ابزارهایی مانند jira، GitHub، GitLabنتیجه گیری:تا به اینجا دیدیم ابزارها می‌توانند استفاده از تست‌ها را آسان‌تر کنند و به عنوان نمونه نحوه انتخاب بعضی از این ابزارها را دیدیم. نکته مهم این است که برای هر بخش بهترین ابزار می‌تواند وابسته به نیازمندی یا شرایط ما متفاوت باشد.در نوشته‌های بعدی همراه ما باشیدhttps://qualatech.ir/