تاریخ انتشار نسخه اصلی نوامبر 13, 2016
همانطور که در پست مربوط به Web Automation نوشتم، خوب است که در مورد خود اتوماسیون تست هم صحبت بشود. اینکه چه زمانی تست را باید اتوماتیک کرد و چه زمانی به صورت دستی انجام داد؟ مزایا و معایب آن را با رسم شکل توضیح دهید؟ ?
راستش این سوال خیلی کلی است و اگر جواب کلی بخواهید به آن بدهید، در واقع همه چیز برمیگردد به ویژگیهای آشکار شیوه اتوماتیک در برابر شیوه دستی انجام دادن کارها. این کار میتواند خط تولید یک خودرو باشد یا فرایند تولید نرم افزار. یک اتوماسیون کارآمد، کارها ساده را سریعتر، دقیقتر و درنهایت با هزینه کمتر انجام میدهد. در مقابل کار دستی برای فرایندهایی که نیاز به ویژگیهای انسانی مثل خلاقیت، دید بازتر و چند جانبه دارد مناسبتر است. در مورد تست نرم افزار هم این اصل کلی حکم فرماست ولی سختی کار زمانیست که مدیر نرم افزار یا مدیر فنی باید با توجه به عوامل مختلف دربکارگیری این دو روش انتخاب بهینه را انجام دهد. با توجه به مشاهداتم در محیط کار این عوامل را میتوانم به صورت زیر دسته بندی کنم:
علاوه بر نقش عوامل بالا در تصمیم گیری، باید اضافه کرد که طراحی و پیاده سازی اتوماسیون تست فرایندی ادامه دار است. کد نوشته شده باید با تغییرات سیستم یا بازخوردهای مشتری مدام بروز رسانی شود تا هم از گزارشات false positive جلوگیری شود و هم اطمینان کاذب از کیفیت ایجاد نشود. بسیار دیده شده که کدهای تست بعد از مدتی صرفاً برای زیبایی و اینکه گفته شود که کاری در مورد اتوماسیون انجام شده است همچنان اجرا میشوند درحالی که هیچ بازخوردی به برنامه نویس نمیدهند. متاسفانه برخی از تیمهای نرم افزاری با اتوماسیون به عنوان یک کالای لوکس و دهان پر کن برخورد میکنند. مهندسین QA یا برنامه نوسان برای آنکه مهارت خود را در کدنویسی نشان دهند، اقدام به اتوماتیک کردن تستهایی میکنند که از اساس باید به صورت دستی و توسط یک کاربر معمولی انجام شوند.برای من اتوماسیون تست به ذات امری ضروری نیست. هدف تست بالا بردن کیفیت نرم افزار از طریق بازخوردهای دقیق و سریع است. اتوماسیون تنها وسیله است برای رسیدن به این هدف.