این راهنما شما را به دورن و برون تست نرمافزار میبرد. اگر قصد دارید که در تست نرمافزار حرفهای شوید، باید این مطلب را بخوانید!
تست نرمافزار چیست؟
تست نرمافزار فرآیند تایید و تصدیق یک سیستم کامپیوتری/برنامه کامپیوتری است تا بر اساس آن تصمیم بگیرید آیا آن برنامه با نیازمندیهای مشخص شده مطابقت داشته یا خیر، و اینکه آیا نتایج مورد نظر را تولید میکند یا نه. در نتیجه این فرآیند، اشکالات را در محصول/پروژه نرمافزاری شناسایی میکند.
تست نرمافزار برای ارائه یک محصولِ با کیفیت بدون هیچ مشکلی یا مشکل اساسی وارد عمل میشود. البته در نظر داشته باشید که طبق اصول تست نرمافزار هیچ برنامه بدون باگی وجود ندارد، و اصطلاح Bug Free به معنی این است که طی یک مدت زمان از پیش تعیین شده، باگی مشاهده نشده است، و سیستم به درجه مناسبی از بلوغ رسیده است.
مهارتهای مورد نیاز برای تبدیل شدن به تستر نرمافزار
ما در مورد مسائل فنی و غیرفنی مورد نیاز برای تبدیل شدن به تستر نرمافزار بحث خواهیم کرد.
مهارتهای غیرفنی
مهارتهای زیر برای تبدیل شدن به یک تستر نرمافزار خوب ضروری است. برای تعیین اینکه آیا تست نرمافزار میتواند برای شما یک واقعیت شغلی باشد یا خیر، مهارتهای خود را در برابر چک لیست زیر مقایسه کنید:
- مهارتهای تحلیلی: یک تستر نرمافزار خوب باید مهارتهای تحلیلی دقیقی داشته باشد. مهارتهای تحلیلی به تجزیه یک سیستم نرمافزاری پیچیده به واحدهای کوچک کمک میکند تا درک بهتری کسب کرده و Test Caseها را ایجاد نمایید. اگر مطمئن نیستید که مهارتهای تحلیلی خوبی دارید این لینک را مرور کنید. اگر بتوانید حداقل یک مساله را حل کنید، مهارتهای تحلیلی شما عالیست.
- مهارت ارتباطی: تستر نرمافزار خوب باید مهارت کلامی و ارتباطی خوبی داشته باشد. فرآوردههای تست (مانند ،Test Case/Test Plan، استراتژیهای تست، Bug Report و غیره) که توسط تستر نرمافزار تولید میشوند باید برای خواندن و درک کردن آسان باشند. تستر نرمافزار در رابطه با توسعهدهندگان(در صورت اشکالات و یا هر مساله دیگر)، نیازمند سایهای از ملاحظه و دیپلماسی است.
- مدیریت زمان و مدیریت سازمان: تست در زمانهای مختلف میتواند به عنوان یک شغل دارای خواهان(به ویژه در هنگام انتشار کد) مطرح باشد. یک تستر نرمافزار باید به صورت کارآمد حجم کار را مدیریت کرده، بهرهوری بالایی داشته باشد و مدیریت مطلوب زمان و مهارتهای سازمانی را نمایش دهد.
- گرایش عالی: به عنوان یک تستر نرمافزار خوب شما باید یک گرایش عالی داشته باشید، و این یعنی گرایش به “تست برای شکستن”، جهتگیری دقیق، تمایل به یادگیری و پیشنهاد بهبود فرآیند. در صنعت نرمافزار، فناوریها با سرعت بسیار بالا پیشرفت میکنند و یک تستر نرمافزار خوب باید مهارتهای فنی خود را با فناوریهای در حال تغییر ارتقا دهد. گرایش شما باید میزان استقلال خاصی را نشان دهد که در آن مالکیت وظایف را به دست آورید و آنرا بدون نظارت مستقیم تکمیل نمایید.
- اشتیاق: برای بهتر بودن در هر حرفه یا شغل، باید میزان قابل توجهی از اشتیاق را در آن نشان دهید. یک تستر نرمافزار باید به رشته خود علاقه داشته باشد. اما قبل از ورود به تست، چگونه میتوان تعیین کرد که آیا شما به تست نرمافزار علاقمند هستید یا نه؟ به سادگی آن را امتحان کنید و اگر تست نرمافزار شما را تحریک نکرد، به چیز دیگری که علاقه شما بدان میل دارد تغییر جهت دهید.
مهارتهای فنی
این یک لیست طولانیست پس لطفا با ما همراه باشید:
- دانش پایه پایگاه داده/SQL: سیستمهای نرمافزاری مقدار زیادی اطلاعات در پس زمینه دارند. این اطلاعات در انواع مختلف پایگاههای داده مانند اوراکل، MySQL و غیره در backend ذخیره میشوند. بنابراین، شرایطی وجود خواهد داشت که این اطلاعات نیاز به اعتبارسنجی داشته باشند. در این مورد، میتوان از کوئری ساده/پیچیده SQL برای بررسی اینکه آیا دادههای مناسب در پایگاه داده ذخیره شده است یا خیر استفاده کرد.
- دانش پایهای روی فرمانهای لینوکس: اکثر برنامههای کاربردی مانند سرویسهای وب، پایگاه دادهها، سرورهای کاربردی در ماشینهای لینوکس مستقر هستند. بنابراین برای تسترها اطلاع داشتن در مورد دستورات لینوکس بسیار مهم است.
- دانش و مهارت عملی روی یک ابزار مدیریت تست: مدیریت تست یک جنبه مهم تست نرمافزار است. بدون تکنیکهای مناسب مدیریت تست، فرآیند تست نرمافزار شکست خواهد خورد. مدیریت تست چیزی جز مدیریت فرآوردههای مرتبط با تست شما نیست.
به عنوان مثال: یک ابزار مانند Testlink میتواند برای ردیابی تمام Test Caseهای نوشته شده، توسط تیم شما استفاده شود. ابزار دیگری نیز وجود دارد که میتواند برای مدیریت تست استفاده شود. بنابراین، مهم است که دانش و تجربه کار روی این ابزارها را داشته باشیم زیرا در اکثر شرکتها استفاده میشوند. - دانش و تجربه در مورد هر ابزار Defect Tracking(ردیابی نقص): ردیابی نقص و چرخه عمر نقص(Defect Lifecycle) از جنبههای کلیدی تست نرمافزار است. بسیار مهم است که مدیریت نواقص به درستی انجام شده و آنها به طور سیستماتیک پیگیری شوند. ردیابی نقص یک کار ضروریست زیرا تمام تیم باید در مورد نقص از جمله مدیران، توسعهدهندگان و تسترها اطلاع داشته باشند. ابزارهای مختلفی برای قفل کردن نواقص استفاده میشود، مانند QC، Bugzilla، Jira و غیره.
- دانش و تجربه روی ابزار اتوماسیون: اگر پس از چند سال کار بر روی تست دستی(Manual Testing)، خودتان را به عنوان تستر اتوماتیک شناختید، باید یک ابزار را در اختیار داشته باشید و دانشی عمیق روی ابزارهای اتوماسیون به دست آورید. توجه کنید که فقط آگاهی از هر ابزار اتوماسیون برای مصاحبه کافی نیست، بلکه شما باید تجربه خوبی داشته باشید. بنابراین ابزار انتخابی خود را برای دستیابی به مهارت تمرین کنید. اگر به دنبال یک کار برای اتوماسیون هستید، داشتن دانش روی هر زبان برنامهنویسی مانند VBScript، جاوا اسکریپت و C-Sharp همیشه به عنوان یک تستر برای شما مفید است. شرکتهای کمی نیز از اسکریپتهای Shell/Perl استفاده میکنند و البته تقاضای زیادی هم برای تسترهایی با دانش مشابه وجود دارد. به هر حال این موضوع بستگی به شرکت و ابزار مورد استفاده آن شرکت دارد.
همچنین محدوده وسیعی برای ابزارهای Performance Testing وجود دارد. زیرا برنامههای کاربردی برای Performance خود باید مورد تست قرار گیرند که بخشی از Non-Functional Testing است.
این قسمت محدودهای از دانشهای فنی بود. لطفا توجه داشته باشید که شما به تمام مهارتهای فنی ذکر شده در بالا نیاز ندارید. مجموعه مهارتهای فنی مورد نیاز بسته به نقش شغلی و فرآیندهای شرکت متفاوت است.
پسزمینه علمی
پسزمینه علمی تستر نرمافزار باید در علوم کامپیوتر باشد.
داشتن مدرک دانشگاهی در این حوزه باعث میشود شما فورا در کار جا بیفتید.
اگر مدرک دانشگاهی مناسب ندارید، باید گواهینامههای تست نرمافزار مانند ISTQB و CSTE را اخذ کنید که به شما کمک میکند Software Development/Test Life Cycle و متدولوژیهای دیگر تست را فرا بگیرید.
حقوق و دستمزد
دستمزد تستر نرمافزار، شرکت به شرکت متفاوت است. محدوده حقوق و دستمزد یک تستر نرمافزار در ایالات متحده ۴۵,۹۹۳ دلار تا ۷۴,۹۳۵ دلار در سال است. محدوده حقوق و دستمزد یک تستر نرمافزار در هند ۲۴۷,۳۱۵ روپیه تا ۴۴۹,۱۱۱ روپیه است. در ایران این رقم در سال ۹۷ بین ۱,۵۰۰,۰۰۰ تومان تا ۶,۵۰۰,۰۰۰ تومان تخمین خورده است. البته ارقام مشاوره در این حوزه تا حدود ۳۰۰,۰۰۰ در ساعت نیز میرسد.
باید در نظر داشت به یک تسترنرمافزار بیمه درمانی، پاداش، عیدی و سایر مزایا نیز داده میشود، که ممکن است با مجموع این ارقام به حد نهایی دستمزد برسند، و البته گاهی اوقات این موارد مازاد بر دستمزد به وی تعلق میگیرد.
یک تستر نرمافزار چه کار میکند؟
در هر روز کاری معمولی، شما مشغول درک اسناد نیازمندیها، ایجاد Test Caseها، اجرای Test Caseها، گزارش و Retest باگها، شرکت در جلسات بازبینی(Review Meeting) و سایر فعالیتهای Team Building، هستید.
مسیر شغلی تستر نرمافزار
پیشرفت شغلی شما به عنوان یک تستر نرمافزار (QA Analyst) در یک کمپانی با CMMI سطح ۵، شبیه به موارد زیر خواهد بود. اما در نظر داشته باشید این موضوع شرکت به شرکت متفاوت خواهد بود:
- تحلیلگر QA (تازهکار یا Fresher)
- تحلیلگر ارشد QA (تجربه ۲ تا ۳ سال)
- هماهنگ کننده تیم QA (تجربه ۵ تا ۶ سال)
- مدیر تست (تجربه ۸ تا ۱۱ سال)
- مدیر ارشد تست (تجربه بالای ۱۴ سال)
حرفه جایگزین به عنوان یک تستر نرمافزار
هنگامی که دست خود را به تست دستی میآلایید، میتوانید تخصصهای زیر را دنبال کنید:
- تست اتوماتیک: به عنوان یک مهندس تست اتوماتیک، شما مسئولیت خودکارسازی Test Caseهای دستی را انجام میدهید که در غیر این صورت میتواند زمان زیادی صرف آن شود. ابزارهای مورد استفاده IBM Rational Robot، Silk performer، و QTP است.
- تست Performance: به عنوان یک مهندس تست Performance، شما مسئول بررسی پاسخگویی اپلیکیشن(زمان صرف شده برای بارگیری یا Load، و حد اکثر بارگیری که اپلیکیشن میتواند تحمل کند) و غیره هستید. ابزار مورد استفاده میتواند WEBLoad و Loadrunner باشد.
- تحلیلگر کسب و کار: یک مزیت عمده تسترها بیش از توسعهدهندگان این است که آنها یک دانش کسب و کاری End-To-End دارند. یک پیشرفت حرفهای برای تسترها، تبدیل شدن به یک تحلیلگر کسب و کار است. به عنوان یک تحلیلگر کسب و کار، شما مسئول تحلیل و ارزیابی مدل کسب و کار و جریانهای کاری شرکت خود خواهید بود. به عنوان یک کارشناس ارشد، شما این مدلها و جریانهای کاری را با تکنولوژی ادغام خواهید کرد.
افسانههای مشترک
به تست نرمافزار به عنوان یک فرصت شغلی حقوق کمتری پرداخت میشود. توسعهدهندگان نسبت به تسترها احترام بیشتری دارند.
بر خلاف باور عمومی، تسترهای نرمافزار(که بیشتر به عنوان متخصصان QA شناخته میشوند) هم حقوق میگیرند و هم در همه شرکتهای مشتاق در مقایسه با توسعهدهندگان نرمافزار با آنها به صورت مساوی رفتار میشود. یک حرفهای در تست نرمافزار هرگز نباید به عنوان “رتبه دوم” در نظر گرفته شود.
تست نرمافزار خسته کننده است
تست نرم افزار در واقع میتواند اعصاب شما را تست کند، زیرا شما نیاز به درک نیازمندیهای کسب و کار و پیشنویس کردن Test Caseها مبتنی بر ادراک خود دارید. تست نرمافزار خسته کننده نیست، چیزی که خسته کننده است انجام مجموعهای از وظایف به صورت مکرر است. کلید حل این مشکل امتحان کردن چیزهای جدید است. اگر هنوز بر باور نادرست خود پای میفشارید، آیا تا به حال با یک توسعهدهنده نرمافزار با تجربه بیش از ۳ سال صحبت کردهاید؟ او به شما میگوید که کارش خسته کننده است.
چگونه تستر نرمافزار شویم
برای یک شخص کاملا تازه وارد، روش پیشنهادی من این است که تست نرمافزار را یاد بگیرد.
شما با یادگیری اصول اساسی تست نرمافزار شروع میکنید. پس از انجام کار شما به صورت Freelance کار میکنید. این موضوع به شما کمک خواهد کرد تا دانش عملی بدست آورید و مفاهیم تست را یاد بگیرید.
سپس، به سمت Selenium(ابزار اتوماسیون)، سپس Jemeter(ابزار تست Performance) و در نهایت TestLink(ابزار مدیریت تست) بروید. همه این موارد در حالیست که شما در حال یادگیری هستید، پیشنهاد میکنم که به سمت کار Freelance حرکت کنید(به غیر از مزایای دیگر پول هم در میآورید).
هنگامی که شما با تمام ابزارها درگیر هستید، ممکن است در فکر اخذ یک گواهینامه باشید. توصیه من ISTQB است. با این حال، چنین کاری اختیاریست. هر چند که طی سالهای گذشته در تمام آمریکا، اروپا، و شرق آسیا داشتن این مدرک برای مهندسین تست نرمافزار تقریبا الزامی شده است.
امتحانات صدور گواهینامه
ISTQB Foundation level گواهینامه پایه در زمینه تست است.
اخذ این گواهینامه اجباری نیست، اما چنین مدرکی باعث افزایش شانس گرفتن شغل شما خواهد شد. اکثر شرکتها این معیار را دارند.
به یک تستر نرمافزار با گواهینامه ISTQB اولویت بیشتری نسبت به دیگران داده میشود.
پس از آن، هنگامی که شما برای مشاغل دائمی در شرکتهای بزرگ درخواست میدهید، مهارتهای زیادی برای ارائه تجربه از گذشته حرفهای خود خواهید داشت که میتواند ارزشمند باشد و شانس انتخاب شما را افزایش دهد.
شما همچنین میتوانید گواهینامه خود را در یک ابزار تست انتخاب کنید.
این مطلب بخشی از دوره آموزشی رایگان تست نرمافزار بود، که میتوانید تمامی مطالب این دوره رایگان را در اینجا مشاهده نمایید.
از این بهتر و کامل تر نمیشد. ممنون از مقاله خوبتون
به عنوان پیشنهاد اینکه یا در انتهای هر مطلبتون امکان دانلود پی دی اف اون هم باشه. یا در انتها هممه ی مطالبتون رو در قالب یک پی دی اف برای دانلود بگذارید.
متشکرم .