در فرایند توسعه نرمافزار (همان چرخه توسعه نرمافزار SDLC)، کار مهندس QA نرمافزار (کنترل کیفی)، اطمینان از درست کار کردن نرمافزار و تولید خروجیهای درست است. افراد دخیل در این زمینه باید با نوشتن سناریوهای مختلف تستینگ، استفاده از متدولوژیهای متفاوت و… از کار کردن درست نرمافزار در شرایط مختلف مطمئن شوند. برای اینکه درک کلی از سناریوهای مختلف تستینگ پیدا کنید میتوانید ایجاد یک محیط شبیهسازی شده برای ارسال هزاران درخواست در دقیقه به یک اپلیکیشن را بهعنوان یک نمونه در نظر بگیرید.
QAهای نرمافزار با توسعهدهندگان، مدیران پروژه و دیگر بخشها همواره در حال همکاری و تبادل نظر هستند تا تست پلنهای جامعی بنویسند که اهداف مختلفی را هدف قرار دهد. مثالی که در بالا ذکر کردم تنها یک سناریو ساده است، اما برای انجام آن باید تست پلن و اهداف تست مشخصی را پیادهسازی کرد. براساس تمام این موارد، نوع تست (فانکشنال، کارایی، واحد و…) تعیین میشود.
در نهایت هدف پیدا کردن مشکلات نرمافزاری در هر سطحی و بهبود وضعیت آن برای کاربران و همچنین در فرایند اجرا است.
در این مطلب با موضوعات زیر آشنا خواهید شد:
- مهندس QA نرمافزار کیست؟
- مهندس QA نرمافزار چه کارهایی را انجام میدهد؟
- انواع مهندس QA نرمافزار
- مهارتهای مورد نیاز
- ابزارها
مهندس QA نرمافزار چه کارهایی را انجام میدهد؟
پروژه نرمافزاری که بدون حضور مهندس QA پیش میرود، ممکن است با باگهای مختلفی منتشر شود. این باگها روی تجربه کاربری، اعتبار شرکت، آسیبهای امنیتی و… تاثیر منفی میگذارد.
با در نظر گرفتن این موضوع شرکتهای نرمافزاری مهندسین QA را استخدام میکنند تا مسئولیتها و کارهای زیر را انجام دهد:
مسئولیتها و وظایف مهندسین QA نرمافزار
مسئولیتها و وظایف QA Engineer شامل کارهای مختلفی میشود که در نهایت باید منجر به تولید نرمافزار با کیفیتتری شده و خروجی بهتری را تحویل دهد.
- پیادهسازی پلن برای انجام تست: Test Planning با این هدف ساخته میشود که استراتژیهای مربوط به تستینگ، اهداف، اسکوپ (دامنه) و منابع مورد نیاز مشخص شود.
- طراحی و اجرا تست کیسها: در این مرحله تست کیسهای مختلفی طراحی و اجرا میشوند. در واقع در این مرحله است که نحوه اجرا شدن نرمافزار، مشکلات، ناسازگاریها و نقاط پیشرفت و بهبود آن مشخص میشود.
- خودکارسازی تستها: بعد از اجرا تست کیسها، در برخی شرایط نیاز است که فرایند اجرا تستها بهصورت خودکار پیش برود. در این مرحله است که مهندس QA با استفاده از ابزارها، اسکریپتها و فریمورکهای مختلف، فرایند خودکارسازی تستها را پیش میگیرد. این کار باعث صرفهجویی در زمان، افزایش Test Coverage و دقت بیشتر در انجام تستها میشود.
- گزارشنویسی: بعد از شناسایی دقیق مشکلات، حال نیاز است که گزارشهایی راجع به آن نوشته شود. هر مشکلی برای حل شدن باید اولویتبندی داشته باشد. برای لیست کردن هر مشکل نیاز است که اطلاعات کاملی از چیستی و چگونگی بروز مشکل ارائه شود. همچنین گزارشات باید به تیم مربوطه انتقال بیابد.
- تست برگشتی یا Regression Testing: در این مرحله با ایجاد هرگونه تغییری در ساختار کد، تمام فرایند اجرا مجددا تست میشود. اینکار برای اطمینان از ظهور پیدا نکردن مشکلات جدید بعد از ادغام آپدیتها انجام میشود.
- تست کارایی یا Performance: در این نوع تست، روی عملکرد و کارایی نرمافزار تستهایی مانند مقیاسپذیری، استرس و لود انجام میشود. هدف این تست، توانایی نرمافزار در مدیریت بارهای کاری مختلف و پایداری آن است.
انواع مهندس QA نرمافزار
همه مهندسین QA نرمافزار یک کار را انجام نمیدهند، بلکه میتوانند در حوزههای مختلفی فعالیت داشته باشند. اگرچه در برخی حالتها از شما انتظار دارند که با بیشتر موارد آشنایی داشته باشید، اما معمولا روی یک یا دو مورد تمرکز خواهند داشت:
- Manual QA Tester: این دسته از تسترها مسئول اجرا کردن تستهای دستی هستند. معمولا این تستها در ابتدای فرایند تستینگ انجام میشود و برای اطمینان از انجام درست کارها صورت میگیرد.
- Automation QA Engineer: در این بخش تسترها با پیادهسازی فرایندهای تکرارشونده روی خودکارسازی بیشتر تستها کار میکنند. این تسترها روی بهینهسازی بیشتر اپلیکیشن تمرکز دارند.
- Security Testing Engineer: مهندسان تستینگ امنیت روی تشخیص نقاط ضعف و آسیبپذیریها تمرکز دارد. این دسته از متخصصان روی تستهای نفوذ، تهدیدها و اصول اولیه امنیت تمرکز میکنند. یکی از تلاشهای این تسترها تشخیص آسیبپذیریهای مربوط به دسترسی و اعتبارسنجیهای کاربران است.
- User Acceptance Testing (UAT) Engineer: این دسته از تسترها مستقیما با کاربران در تعامل هستند. هدف اصلی آنها اطمینان پیدا کردن از سطح رضایت کاربران و در اختیار داشتن تمام نیازمندیها است. در واقع مهندسان UAT با جمعآوری فیدبکهای مختلف تلاش میکنند تا محصول نهایی را با نیازمندیهای کاربران وفق دهند.
- Mobile App QA Engineer: تخصص اصلی مهندسان QA موبایل روی اپلیکیشنهای توسعه داده شده برای دستگاههای موبایل است. مهندسان QA اپلیکیشن موبایل روی سازگاری، استفادهپذیری و کارایی اپلیکیشنها روی دستگاههای مختلف موبایل تمرکز خواهند داشت.
- Web QA Engineer: درست مانند قبلی با این تفاوت که مهندسان این حوزه روی تست وب اپلیکیشنها و وبسایتها تمرکز دارند. وبسایتها در این مرحله با مرورگرهای مختلفی تست خواهند شد، واکشنگرایی آنها مورد ارزیابی قرار میگیرد و سرعت و تجربه کاربری نیز بررسی میشود.
مهارتهای مورد نیاز
- دانش فنی قوی: آشنایی با زبانهای برنامهنویسی، ابزارهای تست و مفاهیم توسعه نرمافزار.
- توجه به جزئیات: توانایی شناسایی نقصهای کوچک که ممکن است تأثیرات بزرگی داشته باشند.
- مهارتهای ارتباطی: توانایی انتقال مؤثر اطلاعات و همکاری با تیمهای مختلف.
- تفکر تحلیلی و انتقادی: قابلیت تحلیل مشکلات پیچیده و ارائه راهحلهای مناسب.
ابزارها و تکنولوژیهای مورد استفاده توسط مهندسین QA
ابزارهای مدیریت تست
- TestRail: برای مدیریت موارد تست و پیگیری نتایج.
- Zephyr: یک افزونه برای JIRA که امکان مدیریت تستها را فراهم میکند.
ابزارهای ردیابی اشکال
- JIRA: برای گزارشدهی و پیگیری اشکالات.
- Bugzilla: یک سیستم ردیابی اشکال متنباز.
ابزارهای تست خودکار
- Selenium WebDriver: برای تست خودکار وب اپلیکیشنها.
- Appium: برای تست خودکار اپلیکیشنهای موبایل.
- JUnit و TestNG: برای نوشتن و اجرای تستهای واحد در Java.
ابزارهای تست عملکرد
- JMeter: برای تست بار و عملکرد وب اپلیکیشنها.
- LoadRunner: برای شبیهسازی کاربران متعدد و تست ظرفیت سیستم.
ابزارهای تست امنیت
- OWASP ZAP: برای شناسایی آسیبپذیریهای امنیتی در وب اپلیکیشنها.
- Burp Suite: یک پلتفرم برای تست امنیت برنامههای تحت وب.
دیدگاهتان را بنویسید