این مقاله ترجمهای از مقاله A Context-Driven Approach to Automation in Testing نوشته جیمز باخ(James Bach) و مایکل بولتون(Michael Bolton) است که دو تن از بزرگان و مشهورترین افراد در حوزه تست نرمافزار دنیا هستند. این مقاله در فوریه ۲۰۱۶ به رشته تحریر در آمده است.
مقاله پیش رو نسبتا طولانیست که احتمالا طی ۷ تا ۱۰ پست منتشر خواهد شد.
ترجمه این مقاله توسط سرکار خانم مهندس طنانه پارسا کردآسیابی آماده شده است.
خلاصه: راههای شگفت انگیز بسیاری وجود دارند که میتوان از ابزارها برای کمک به تست نرمافزار استفاده کرد. در حال حاضر از ابزارها استفاده مناسبی نمیشود که این موضوع سردرگمی و مشکلات بسیاری را به آنچه در حال حاضر یک مشکل سخت است، اضافه میکند. چرا اینطور است؟ چه کاری میتوان انجام داد؟ ما فکر میکنیم که مشکل اساسی، نگرش سطحی به استفاده از ابزار است. و این مشکل با یک باور همه گیر و غلط درباره تست، که تست را یک فرآیند تکراری و مکانیکی میداند تشدید شده است. یک تست خوب مانند برنامهنویسی، یک فرآیند فکری و چالشی است. بنابراین تست کردن باید به دست افرادی سپرده شود که پیچیدگیهای ابزارها و تستها را متوجه میشوند. این موضوع در مورد توسعه نرمافزار و برنامهنویسی و در واقع برای هر شغل و مهارتی از نجاری تا داروسازی صدق می کند.
فهرست عناوین:
رباتها! کمک!
مشکل ما در مواجه با خودکارسازی(Automation)
اول: آنها را ابزار بنامید[نه خودکارسازی تست (Test Automation)]
دوم: به تست بسیار بیشتر از چک کردن خروجی(Output Checking) فکر کنید
- تفاوت بین تست کردن و چک کردن
- چک کردن مهم است
سوم: روشهای بسیاری برای استفاده از ابزارها کشف کنید!
- اجازه دهید متن شما، ابزارتان را هدایت کند
- به طور مشخص چطور متن، ابزار را هدایت میکند؟
- روی ابزارهایی سرمایهگذاری کنید که آزادیهای بیشتری در موقعیتهای مختلف به شما بدهند
- روی تستپذیر بودن سرمایهگذاری کنید
اجازه دهید در عمل با ابزارهای پشتیبانی کننده تست آشنا شویم!
- مورد اول: ابزار بدون چک کردن استفاده میشود
- مورد دوم: استفاده از ابزار پشتیبانی همراه با تولید دادههای الگو، برای یک Oracle[پیشبینی کننده نتیجه تست] قدرتمند و پوشش بهتر
- مورد سوم: چک کردن خودکار
- چرا خودکارسازی فعالیتهایی که از طریق واسط گرافیکی کاربر(GUI) انجام میشود بسیار سخت است؟
خودکارسازی فعالیتها یک تاکتیک است و نباید یک کار تکراری و روزمره باشد
قدم سوم: روشهای بیشتری برای استفاده از ابزارها را کشف کنید!
مهارت و طرز تفکر آزمونگر برای استفاده مسئولانه از ابزارها بسیار مهم است. با این حال وقتی چنین چیزی میگوییم ، به نظر میرسد برخی از افراد معتقدند که ابزارها مهم نیستند، یا اینکه آزمونگران Context Driven از ابزارها متنفرند.
در ادامه فهرست ابزار مختلفی که در فرآیند آزمون به ما کمک می کند، آورده شده است:
- در طراحی، ما از ابزارها برای کمک در امور زیر استفاده میکنیم:
- تولید داده های تست یا Test Data(ابزارهایی مانند صفحه گسترده مثل Excel؛ تولید کنندههای State-Model؛ شبیه سازی مونت کارلو؛ تولید کنندههای ارقام تصادفی)
- مبهمسازی یا پاکسازی دادههای Production به دلایل حفظ حریم خصوصی(مخلوط کننده دادهها یا Data Shuffler؛ جایگزین کننده نام یا Name Replacer)
- ایجاد ترکیبات مشخص از پارامترها(تولید کننده دادههای جفتی یا ترکیبی)
- ایجاد جریان از روی محصولی که شرایط خاصی را پوشش میدهد(تولید کنندگان مسیر Flow Model یا State Model)
- در تعامل با محصول، ما از ابزارها برای کمک در امور زیر استفاده میکنیم:
- ستاپ کردن و پیکربندیِ محصول یا محیط تست(مانند ابزارهای استقرار مداوم Continuous Deployment؛ ابزارهای مجازیسازی یا ابزارهای کلونسازی سیستم)
- ارسال و زمانبندی تراکنشها در طولانی مدت، در حجم بالا و تحت استرس(ابزارهای Profiling و Benchmarking)
- شبیهسازی نرمافزار یا سختافزاری که هنوز تولید نشده است. یا اینکه در حال حاضر در دسترس ما نیست.
- بررسی وضعیت داخلی سیستم و تجزیه و تحلیل ترافیک داخلی آن هنگام انجام تست(ابزار دقیق؛ Log Analysis؛ مانیتورهای Process یا File، ابزار اشکال زدایی)
- در ارزیابی، ما از ابزارها برای کمک در امور زیر استفاده میکنیم:
- مرتبسازی ، فیلتر و تحلیل لاگهای خروجی(ویرایشگر متن و صفحه گسترده)
- مصورسازی خروجی برای تحلیل مقایسهای(ابزارهای مقایسه، طراحی چارت، طراحی گراف، قالببندی خروجی مشروط)
- توسعه ، مطابقسازی و اعمال Oracleهایی(اشاره به Test Oracle) که به ما در تشخیص مشکلات احتمالی کمک میکنند(ابزارهای مقایسه خروجی یا Source File؛ الگوریتمهای موازی یا قابل مقایسه؛ بررسیهای ثبات داخلی در اپلیکیشن؛ ابزارهای تحلیل آماری)
- در ضبط(Recording) و گزارشگیری، ما از ابزارها برای کمک در امور زیر استفاده میکنیم:
- ثبت فعالیتها و مستندسازی رویهها(ابزارهای یادداشت برداری، ابزارهای ضبط ویدئو، لاگبرداری توکار یا Built-in Logging؛ ابزارهای پردازش کلمات؛ ابزارهای رکرود کردن تعاملات کاربری)
- تهیه گزارش برای مشتریان(نقشههای ذهنی یا Mind Map، پردازندههای کلمات مثل Word، صفحه گسترده مانند Excel و نرمافزارهای پرزنتیشن مانند Power Point)
- در مدیریت تست، ما از ابزارها برای کمک در امور زیر استفاده میکنیم:
- مشخص کردن استراتژیها(نقشه های ذهنی، پردازشگرهای متنی و غیره)
- شناسایی اینکه چه مواردی توسط آزمون گوشش داده میشوند یا نمیشوند.(ابزارهای Coverage، پروفایلرها؛ Log File Analysis)
- حفظ اطلاعات در مورد محصولات ما، و کمک به افراد دیگر در پشتیبانی و توسعه آینده(ویکیها، Knowledge Baseها، و File Serverها)
و اما این یک لیست ناقص از موارد ستفاده ما از ابزارهاست. علاوه بر این، ما از برخی ابزارها برای کمک به تولید ابزارهای دیگر که از آنها بهره میگیریم، نیز استفاده میکنیم.
شما احتمالاً متوجه شدهاید که چگونه بارها و بارها ما از عبارت ” ما از ابزارها برای کمک در امور زیر استفاده میکنیم…” به کار بردیم. ما این کلمات را عامدانه انتخاب کردیم تا یک بار دیگر تأکید کنیم که ابزارها کار آزمون نرم افزار را انجام نمیدهند. بلکه ابزارها به آزمونگران کمک میکنند تا کار آزمون را انجام دهند. در گفتگو درباره تست، ممکن است ابزارها مهم باشند ، اما مرکز آزمون باید مجموعه مهارت ها و طرز فکر فردی خود آزمونگر باشد.
ممنون.
خیلی مفید و کاربردی بود
خیلی بهتر میشه اگه یه سناریوی عملی هم مرحله به مرحله اجرا و توضیح داده بشه
منم موافقم.
ولی گویا این مفاله ترجمه شده، و به همین دلیل مترجم حفظ امانت کرده، و متن رو صرفا ترجمه کرده.
در ابتدای مقاله نوشته شده، که نویسندگان جیمز باخ و مایکل بولتون هستند.
سلام.
ممنون از شما. ما هم با کامنت شما موافقیم اما چون قرار شد صرفا ترجمه انجام بشه و به منظور رعایت اصل امانتداری، از بیان هرگونه توضیح اضافه که به نوعی تغییر در مقاله محسوب میشه، معذوریم.