تضمین کیفیت یا همان QA (Quality Assurance) یکی از مهمترین بخشهای فرایند توسعه و تست اپلیکیشن (App Developement) است. میدانیم که هیچوقت کدها از همان اول که نوشته میشوند، به درستی کار نمیکنند و خروارها ایراد دارند. برای آن که این ایرادات گرفته شود، لازم است یک فرایند تست اپلیکیشن وجود داشته باشد که از نقطه نظرات مختلف، اپ را آزمایش کرده و کیفیت آن را بسنجد.
وقتی تضمین کیفیت (QA) انجام میدهید، بسیاری از باگها و ایرادات اپلیکیشن خود را قبل از ورود آن به بازار میتوانید پیدا و اصلاح کنید؛ در نتیجه میتوانید تجربه کاربری بهتری را به مخاطب خود ارائه دهید.
تضمین کدام کیفیت دقیقاً؟!
ممکن است این سؤال برایتان پیش آمده باشد که خب این کیفیتی که قرار است در QA آن را تضمین کنیم، دقیقاً چه سطحی را مد نظر دارد؛ به بیانی دیگر، قرار است انتظاراتمان از کیفیت خوب چه سطحی باشد که با توجه به آن، پروسه تضمین کیفیت را پیش ببریم؟ هر کسی که در این پروسه درگیر است ممکن است یک سطح از کیفیت و انتظارات را مدنظر داشته باشد. طیف وسیعی از دیدگاهها از طرف افراد تیم، ذینفعان پروژه و کارفرماها ممکن است کیفیت اپلیکیشن را بر اساس این که با الزامات، انتظارات و استانداردهای خود مطابقت دارد، اندازهگیری کنند.
خب، در پاسخ باید بگوییم که کیفیت یک چیز کاملاً توافقی است. کارفرما یا تیم توسعه اپلیکیشن انتظاراتی که از کیفیت اپ دارند را برای تیم QA مطرح میکنند و این تیم هم بر اساس این که آیا نرمافزار بیرون آمده از چرخه عمر توسعه اپلیکیشن (SDLC) با این انتظارات همخوانی دارد یا نه، ایرادات و مشکلات مختلف اپلیکیشن را پیدا میکنند.
در این مقاله از وبلاگ راندمانو در خصوص تضمین کیفیت QA و تست اپلیکیشن صحبت میکنیم و نقش آن را در مراحل تست نرمافزار توضیح میدهیم.
تضمین کیفیت (QA) چیست؟
در وهله اول برای آن مطمئن باشیم اپلیکیشن ساخته شده با حداقلهای کیفی مطابقت دارد، باید قبل از لانچ آن، QA انجام دهیم. حداقلهای کیفی را هم الزامات، انتظارات و استانداردهای سازنده اپ تعیین میکند. فرایند تضمین کیفیت باعث میشود مطمئن شوید برنامه همان طوری که مد نظرتان بوده است کار میکند؛ در حقیقت، در فرایند تضمین کیفیت و تست اپلیکیشن با استفاده از تستهای مختلف، سعی میشود ایرادات فنی برنامه تشخیص داده شده و برای اصلاح آنها اقدام شود تا در نهایت یک نسخه از اپ که با استانداردهای کیفی سازنده مطابقت دارد از چرخه توسعه اپلیکیشن خارج شود.
تضمین کیفیت باعث میشود در زمان، انرژی و هزینهای که برای ساخت، راه اندازی و ارائه یک اپلیکیشن به بازار خرج میشود، صرفه جویی کنید.
اگر اپلیکیشن خود را بدون تضمین کیفیت QA و با وجود ایرادات فنی به بازار عرضه کنید، مخاطبین شما بعد از یک بار نصب و استفاده، سریعاً آن را از روی موبایل خود پاک میکنند.
در تست اپلیکیشن، تضمین کیفیت از کنترل کیفیت (QC) فراتر میرود تا کیفیت برنامه را بر اساس نقطه نظرات مختلف بررسی کند.
دیدگاههایی که در فرایند تضمین کیفیت بر اساس آنها اپلیکیشن را تست میکنیم، عبارتاند از:
Transcendental view (دیدگاه انتزاعی): این دیدگاه تصوری از کیفیت به ما میدهد؛ ولی نمیتوانیم مقدار کیفیت را اندازه بگیریم. فقط متوجه میشویم که برنامه، با کیفیت است.
User view (دیدگاه کاربر): چگونگی درک و تجربه کاربر نهایی از اپلیکیشن.
Manufacturing view (دیدگاه مبتنی بر ساخت): در این دیدگاه فرض میشود اپلیکیشن بدون کوچکترین خطا و ایرادی در طول پروسه SDLC ساخته شده است.
Product view (دیدگاه محصول محور): در این دیدگاه، این که محصول (اپلیکیشن) ساخته شده چقدر با الزامات و استانداردهای تعریف شده مطابقت دارد، مورد بررسی قرار میگیرد.
Value-based view (دیدگاه ارزش محور): اپلیکیشن ساخته شده، چقدر میتواند برای کارفرما ارزش خلق کند. آیا این اپلیکیشن نیازهای کارفرما را رفع میکند؟
چرا تضمین کیفیت (QA) مهم است؟
با وجود میلیونها اپلیکیشنی که در اپاستور، گوگلپلی استور و هزاران بازار اپ دیگر وجود دارد، رقابت شما بسیار سنگین میباشد. کاربران امروزی دیگر مثل قدیم نیستند که با وجود ایرادات یک اپلیکیشن، هنوز آن را روی موبایل خود نگه داشته و از آن استفاده کنند؛ چرا که الان به راحتی میتوانند آن را با هزاران نسخه دیگر که همان کار را بدون ایراد برایشان انجام میدهد جایگزین کنند. پس باید بتوانید یک اپلیکیشن با حداقل نقصهای فنی را به بازار عرضه کنید تا با این مشکلات مواجه نشوید.
فقط وقتی دارید برای توسعه اپلیکیشن خود زمانبندی و برنامهریزی میکنید، یادتان باشد که زمان مورد نظر برای پروسه QA را هم در نظر بگیرید. فرایند تضمین کیفیت و تست اپلیکیشن زمان بیشتری از توسعه برنامه شما میگیرد؛ چرا که در بیشتر مواقع اپلیکیشن بینقص نیست و باید یک سری از مشکلات آن برطرف شود. در نتیجه، دوباره به فرایند توسعه اپ باز میگردد و زمان زیادی ممکن است صرف رفع مشکلات اپلیکیشن شود. ولی بهتر است به آن به عنوان یک سرمایهگذاری نگاه کنید. هرچه اپلیکیشن شما کیفیت بیشتری داشته باشد، تجربه کاربری بهتری را به مخاطبانتان ارائه میدهد.
مراحل فرایند تضمین کیفیت (QA)
هر اپلیکیشنی متفاوت عمل میکند و این یعنی انجام فرایند تضمین کیفیت برای هر اپلیکیشن با دیگری متفاوت است. با این حال، بعضی مراحل استاندارد برای تستهای QA وجود دارند که میتوانید بر اساس آنها فرایند تضمین کیفیت اپلیکیشن خود را پیش ببرید.
تستهای عملکردی (Functionality Tests)
تست عملکرد معمولاً اولین گام در فرایند تضمین کیفیت است. توسعهدهندگان در این مرحله هر ویژگی برنامه را تست میکنند تا متوجه شوند که مطابق با هدف تعیین شدهاش کار میکند. در این مرحله، سناریوهای مختلف برای هر ویژگی اپلیکیشن تست میشود تا بفهمیم عملکردهای مختلف اپلیکیشن درست است.
اگر مشکلات اساسی در اپ وجود داشته باشد، در این مرحله متوجه آن میشوید.
تستهای چند پلتفرمی (Cross-Platform Tests)
اگر اپلیکیشن خود را برای سیستمعاملهای مختلف توسعه میدهید، با این تستها میتوانید متوجه شوید که تمام نسخههای اپلیکیشن شما (برای تمامی پلتفرمها) عملکرد یکسانی را ارائه میدهند.
توجه کنید که لازم نیست اپلیکیشن شما روی یک پلتفرم دقیقاً همانی باشد که روی پلتفرم دیگر است. به هر حال هر سیستم عاملی ویژگیهای خودش را دارد و برای آن که بتوانید بهترین عملکرد اپلیکیشن در سیستم عامل مورد نظر را داشته باشید، لازم است تغییراتی جزئی در بعضی ویژگیهای اپلیکیشن خود بدهید.
تست رابط و تجربه کاربری (UI/UX Testing)
برای آن که بتوانید یک اپلیکیشن خوب به بازار ارائه دهید، برنامه شما نه تنها باید درست کار کند، بلکه باید کار کردن با آن ساده یا حتی جذاب هم باشد. به بیانی دیگر، تجربه و رابط کاربری درستی باید به مخاطب خود ارائه بدهد؛ پس لازم است تستهای رابط و تجربه کاربری را هم بگذراند.
در این مرحله، از کاربران آزمایشی میخواهید تا از برنامه استفاده و ویژگیهای مختلف آن را امتحان کنند. این کاربران در طول استفاده از اپلیکیشن شما ممکن است مکانهایی را پیدا کنند که در آن، رابط کاربری به هم ریخته یا غیر قابل درک باشد. همچنین ممکن است پیشنهادهایی از طرف آنها مطرح شود که به بهینه سازی تجربه و رابط کاربری کمک زیادی کند.
حواستان باشد کاربران آزمایشی که انتخاب میکنید باید مطابق با پرسونای مخاطب اپلیکیشن و کسبوکارتان باشند.
تستهای امنیتی (Security Tests)
ما در دنیایی پر از تهدیدات امنیتی دیجیتال زندگی میکنیم. اپلیکیشن شما باید برای کاربر و کسبوکارتان امن باشد. بسته به اطلاعات و دادههایی که از مخاطب خود به هنگام استفاده از اپ جمعآوری میکنید، تستهای امنیتی ممکن است متفاوت باشند.
همچنین بر اساس صنعتی که در آن فعالیت میکنید، ممکن است لازم باشد بعضی قوانین امنیتی را رعایت کنید. برای مثال، در اپلیکیشنهای حوزه مراقبتهای بهداشتی یا صنایع مالی، نیاز به رعایت امنیت بیشتری دارید. به بیانی دیگر، اپ شما برای کاربریهای پزشکی و مالی، باید برای کاربر کاملاً امن باشد.
تست کارایی (Performance Testing)
این تست کمک میکند بفهمید آیا اپلیکیشن شما در یک محیط واقعی به درستی کار میکند یا نه.
ممکن است بپرسید فرق تست عملکرد (Functional) با تست کارایی (Performance) چیه.
خب، تست عملکرد به سادگی فقط از این که برنامه شما کار میکند یا نه مطمئن میشود. یعنی دامنه تست آن، فقط خود برنامه است. ولی تست کارایی برنامه شما را در یک محیط واقعی تست میکند؛ یعنی پارامترهای دیگر (مؤلفههای محیطی) را هم در نظر میگیرد.
برای مثال، ممکن است در تست کارایی متوجه شوید که برنامه شما حجم زیادی را روی موبایل افراد میگیرد. یا وقتی برنامه سامسونگ هلث (Samsung Health) باز است، اپلیکیشن شما به درستی کار نمیکند. یا حتی ممکن است متوجه شوید برنامه شما، باتری موبایل را زیاد مصرف میکند.
بنابراین، یکی از مهمترین مراحل تست QA، تست کارایی آن در ارتباط با شرایط محیط واقعی است.
تست بازگشت (Regression Testing)
به احتمال زیاد، در آینده نیاز دارید اپلیکیشن خود را بهروزرسانی کنید. این بهروزرسانی میتواند مشکلات زیادی را در برنامه به وجود بیاورد. برای آن که مطمئن شوید کدها آن قدر قوی هستند که تغییرات آینده را میتوانند هندل کنند، لازم است تست Regression را انجام دهید.
اپلیکیشن شما باید همیشه برای بهروزرسانی آماده باشد. تغییرات کوچک در اپ نباید مشکلات زیادی را به وجود بیاورد.
تست خودکار (Automation Testing)
تا اینجای کار، اپلیکیشن خود را از تمام تستهای لازم گذراندید و مطمئن شدید که برنامهتان کیفیت و استانداردهای لازم را برای عرضه به بازار دارد. ولی قبل از آن، بیایید یک تست دیگر هم انجام دهیم.
برنامههای تست اتومات، برنامههایی هستند که برای تست QA به صورت خودکار طراحی شدهاند. به طور کلی، شما میتوانید اپلیکیشن خود را به صورت خودکار یا دستی تست کنید. معمولاً تست خودکار برای عملیاتهای تکراری و روتین مانند لاگین استفاده میشود و به عنوان مکمل تست دستی کاربرد دارد چرا که با توجه به هر نوع اپلیکیشن خاص، تستهای خاصی هم باید از اپ گرفته شوند تا بتوان به نتیجه QA اعتماد کرد.
گفتیم که تا اینجای کار، تمام تستهای لازم را انجام دادید؛ حالا برای آن که خیالتان از همه نظر راحت باشد، بیایید با تست خودکار هم یک بار اپلیکیشن خود را تست کنید. شاید مشکلی در اپ وجود داشته باشد که در هر یک از مراحل قبلی، از چششم شما و تیمتان پنهان مانده باشد و یک تست خودکار بتواند آن را نمایان کند.
برای همین، پیشنهاد میکنیم که در انتهای کار، یک تست خودکار هم از اپ خود بگیرید.
برون سپاری تست QA
برای آن که بتوانید تست QA را به درستی انجام دهید، توصیه میشود این کار را به تیمی خارج از تیم توسعهدهندگان خود بسپارید. چرا که معمولاً برنامه نویسان و توسعهدهندگان اپ نمیتوانند ایرادات کار خود را آن طور که یک فرد بیرونی واضح میبیند، مشاهده کنند. طبیعی است متخصصی که از بیرون تیم اپلیکیشن را تست میکند، ایرادات فنی را بهتر میبیند و در نتیجه، میتوانید مشکلات بیشتری را قبل از لانچ کردن هر ورژن جدیدی از اپلیکیشن اصلاح کنید.
در این زمینه تیمهای مختلف تست QA وجود دارند که میتوانید اپلیکیشن خود را بعد از اتمام کار توسعه، به آنها بسپارید تا با ارتباط با تیم توسعهدهندگان، مشکلات کار را به آنها گفته و ایرادات را اصلاح کنند.
انجام تستهای QA یکی از خدمات آژانس پروداکت مارکتینگ راندمانو است. اگر تمایل دارید در این زمینه بیشتر بدانید، با متخصصین راندمانو در ارتباط باشید.
و در آخر
به یاد داشته باشید برای آن که تستهای تضمین کیفیت یا همان QA اپلیکیشن خود را به بهترین شکل ممکن انجام دهید، لازم است برنامه خود را روی دیوایسهای مختلف تست کنید، دادههای تست QA را جمعآوری و طبقهبندی کنید تا بتوانید به آنها در زمان نیاز رجوع کنید و از هر دو تست عادی و خودکار استفاده کنید.
حواستان باشد که تضمین کیفیت یک عنصر کلیدی در فرایند توسعه اپلیکیشن است؛ آن را دست کم نگیرید. کاربران امروزی نسبت به خرابیها و اشکالات اپلیکیشن بسیار حساس هستند و در بیشتر مواقع، با بروز کوچکترین مشکلها ممکن است اپلیکیشن شما را پاک کنند.
امیدواریم این مقاله برای شما مفید و کاربردی واقع شده باشد.
اگر سؤالی در زمینه QA یا مراحل تست تضمین کیفیت دارید، در قسمت نظرات زیر همین مقاله آن را مطرح کنید تا بتوانم در سریعترین زمان ممکن، راهنمای شما باشیم.