در طی چند دهه گذشته، صنعت تست نرمافزار پیشرفت کرده است تا اطمینان حاصل شود که برنامههای نرمافزاری بدون هیچ گونه خرابی اجرا میشوند. این مقاله توضیح میدهد که تست نرمافزار مدرن شامل چه مواردی است و هر مرحله از چرخه تست نرمافزار (STLC) را با جزئیات شرح میدهد.
تست نرمافزار چیست؟
Techopedia تست نرمافزار را به عنوان "مجموعهای از فرآیندها با هدف بررسی، ارزیابی و مشخص کردن کامل بودن و کیفیت نرمافزار کامپیوتری تعریف میکند. تست نرمافزار تضمین سازگاری یک محصول نرمافزاری در رابطه با مقررات نظارتی، تجاری، فنی، عملکردی و کاربری است".
به عبارت دیگر، تست نرمافزار بررسی میکند آیا برنامه نرمافزاری:
همه خصوصیات فنی و تجاری را رعایت میکند.
عاری از هر گونه اشکالات بدیهی است که بر عملکرد و کارایی آن تاثیر میگذارد.
در قابلیت استفاده، سازگاری، امنیت و یا نصب هیچ مشکلی ندارد.
به طور کلی، تست نرمافزار میتواند به صورت دستی یا خودکار باشد. در تست نرمافزار دستی، موارد تست به صورت دستی اجرا میشوند. در تست خودکار نرمافزار، موارد تست با استفاده از ابزارهای مختلف تست خودکار انجام میشود، که مزایای زیادی برای تست نرمافزار دارد، مثل بهبود قابلیت اطمینان، اجرای سریعتر موارد تست و قابلیت استفاده مجدد بسیار عالی. با این حال، تست خودکار برای همه انواع تست مناسب نیست، به خصوص آنهایی که نیاز به تجربه، دانش، مهارتهای تحلیلی، شهود و خلاقیت تستکننده دارد.
تست نرمافزار، چه دستی چه خودکار، مزایای بسیاری دارد، که برخی از آنها نسبت به سایر موارد مشهودتر هستند:
در هزینه صرفهجویی میشود.
سود را افزایش میدهد.
رضایت مشتری را بهبود میبخشد.
منجر به تجربه کاربری بهتر میشود.
قابلیت اطمینان را تضمین میکند.
هزینههای نگهداری را کاهش میدهد.
اعتماد را بالا میبرد.
چرخه عمر تست نرمافزار چیست؟
کلمه "چرخه عمر" به عنوان یک سری مراحل تعریف میشود که طی آن چیزی (مانند کالای تولیدی) در این چرخه قرار میگیرد. وقتی در مورد چرخه عمر تست نرمافزار، یا به اختصار STLC، صحبت میکنیم، منظور ما دنباله فعالیتهایی است که توسط تیم تست انجام میشود تا از حداکثر نتایج تست نرمافزار اطمینان حاصل شود.
مراحل چرخه عمر تست نرمافزار شامل مراحل زیر است:
تحلیل مورد نیاز
برنامهریزی تست
توسعه موارد تست
تنظیم محیط تست
اجرای تست
بسته شدن چرخه تست
هر یک از این مراحل دارای ضوابط و معیارهای ورود و خروج معینی است که حداقل مجموعهای از شرایط را که باید قبل از شروع تست نرمافزار رعایت شود و حداقل مجموعهای از شرایطی را که باید برای متوقف کردن تست نرمافزار کامل شود، مشخص میکند. البته، همه چیز دقیقا مطابق برنامه در دنیای واقعی پیش نمیرود، و انتقال به مرحله بعدی بدون رعایت تمام معیارهای خروج برای مرحله قبل کاملا عادی است.
مرحله 1: تحلیل مورد نیاز
مرحله اول STLC تحلیل مورد نیاز است. هدف اصلی این مرحله فهمیدن آنچه باید مورد تست قرار گیرد و پیدا کردن الزامات قابل تست است. انواع مختلف الزامات شامل الزامات تجاری، معماری و طراحی، و الزامات سیستم و ادغام است. اگر تیم تست تلاش کند تا نیاز خاصی را درک کند، میتواند از ذینفعان مختلف مانند تحلیلگر تجاری بخواهد تا موضوع را روشن کند. سپس تیم تست RTM (ماتریس ردیابی نیازمندیها) را آماده میکند، که سندی است که نیازهای کاربر را با موارد تست ردیابی و نگاشت میکند. در صورت لزوم، تیم تست گزارش امکانسنجی اتوماسیون را نیز آماده میکند.
معیارهای ورود: سند مورد نیاز موجود، معیارهای پذیرش تعریفشده، سند معماری برنامه موجود
معیارهای خروج: امضای RTM، گزارش امکانسنجی اتوماسیون تست که توسط مشتری امضاء شده است
مرحله 2: برنامهریزی تست
دومین مرحله چرخه عمر تست نرمافزار برنامهریزی تست است. در طی این مرحله، کلیه استراتژی تست تعریف شده است، و مدیر تست میزان تخمین تلاش و هزینه را برای کل پروژه تعیین میکند. تلاش و هزینه تست تا حد زیادی به این بستگی دارد که کدام نوع تست تحت پوشش قرار میگیرد و کدام موارد نادیده گرفته میشوند. انواع تستهای متداول شامل تست واحد، تست API، تست یکپارچهسازی، تست سیستم، تست smoke، تست install/uninstall، تست اینترفیس، تست رگرسیون و تست agile است. هر نوع تست ویژگیها و برنامههای خاص خود را دارد و تستکننده باید با آنها آشنا باشد تا بتواند بر اساس الویت آنها را مرتب کند.
معیارهای ورود: اسناد مورد نیاز، ماتریس ردیابی نیازمندیها، سند امکانسنجی اتوماسیون تست
معیارهای خروج: سند استراتژی/برنامهریزی تست تصویبشده، سند تخمین تلاش امضاء شده
مرحله 3: توسعه موارد تست
مرحله سوم STLC توسعه موارد تست است. همانطور که از نام آن پیداست، هدف اصلی این مرحله ایجاد موارد تست دقیق و آماده کردن داده برای تست است. یک مورد تست، ورودیها، شرایط اجرا، روش تست و نتایج مورد نیاز را مشخص میکند که یک تست واحد را برای رسیدن به یک هدف خاص تست نرمافزار تعریف میکند. نظرات در مورد نحوه ایجاد دقیق موارد تست بسیار هستند، اما ساده بودن، شفاف بودن و منحصربهفرد بودن همیشه مهم است. همه نیازهای نرمافزار باید 100% پوشش داده شود که میتوان با کمک RTM از این مورد اطمینان حاصل کرد. اگر قرار است از تست خودکار استفاده شود، این زمانی است برای تولید اسکریپتهای تست خودکار.
معیارهای ورود: اسناد مورد نیاز، RTM و برنامه تست، گزارش تحلیل خودکارسازی
معیارهای خروج: اسکریپتها/موارد تست امضاء شده و بررسی شده، دادههای تست امضاء شده و بررسی شده
مرحله 4: تنظیم محیط
مرحله چهارم STLC تنظیم محیط است. حتی اگر این مرحله بسیار وقتگیر باشد، بسیار مهم است زیرا تیم توسعه را قادر میسازد تا موارد تست را به طور موثر انجام دهد. ابزارهای نرمافزاری و سختافزاری بسیاری وجود دارد که میتواند برای تست نرمافزارها استفاده شود، ازجمه Selenium، Katalon Studio، TestComplete، Appium، یا Ranorex. همه تستها بر روی دستگاه های لوکال (محلی) اجرا نمیشوند، بنابراین ممکن است نیاز به ایجاد یک سرور تست باشد که بتواند از برنامه نرمافزار تستشده پشتیبانی کند. smoke test برای تایید آمادگی محیط تست انجام میشود. اگرچه این مرحله به موازات مرحله قبل هم میتواند انجام شود، اما معمولا بهتر است آنها را به ترتیب انجام دهیم.
معیارهای ورود: اسناد معماری و طراحی سیستم، برنامه موجود برای تنظیم محیط
معیارهای خروج: راهاندازی محیط کار به وسیله برنامه و چک لیست، تنظیم کامل دادههای تست، smoke test موفقیتآمیز
مرحله 5: اجرای تست
مرحله پنجم STLC اجرای تست است. با آمادهسازی محیط تست، زمان آن رسیده که تستها را بر اساس برنامههای تست و موارد تست آماده شده در مرحله 2 و مرحله 3 انجام دهید. موارد تستی که با موفقیت اجرا میشوند، به عنوان " passed" علامتگذاری میشوند، در حالی که موارد تستی که شکست میخورند " failed" هستند و برای تحلیل بیشتر به توسعهدهنده نرمافزار گزارش میشوند. اگر اجرای یک مورد تست به دلیل برخی نقصها غیرممکن باشد، باید با عنوان " blocked" علامتگذاری شود. وقتی مورد تست از حالت مسدود خارج شد، باید با عنوان " not run" علامتگذاری شود. بعد از اجرای همه موارد تست، تیم تست گزارش اجرای تست و حتی گزارشهای دقیق را برای موارد تست منحصربهفرد تهیه میکند.
معیارهای ورود: RTM بیسلاین، برنامه تست، اسکریپتها/موارد تست که در دسترس هستند، محیط تستی که آماده شده است، تنظیم دادههای کامل تست، گزارشهای موجود تست واحد/یکپارچگی (unit/integration test) برای تست
مرحله 6: بستن چرخه تست
مرحله ششم و پایانی STLC بستن چرخه تست است. این مرحله شامل جلسه تست برای ارزیابی مسائل شناخته شده و نقص کیفیت کد، بحث در مورد تکمیل چرخه عمر تست نرمافزار بر اساس زمان، پوشش تست، هزینه، اهداف مهم تجاری، کیفیت و سایر عوامل میباشد، و همچنین شناسایی تنگناهای مختلف که باید حذف شود تا بهرهوری تستهای آتی بهبود یابد. درنهایت، گزارش اتمام تست توسط تیم تست آماده شده و توسط مشتری امضاء میشود.
معیارهای ورود: تست تکمیلشده، نتایج تست موجود، گزارشات مربوط به نقصها
معیارهای خروج: گزارش بسته شدن تست که توسط مشتری امضاء شده است
جمعبندی
چرخه عمر تست نرمافزار را میتوان به عنوان روش اصولی و متوالی اداره تست نرمافزار توصیف کرد. این امر شامل شش مرحله مجزا است: تحلیل موردنیاز، برنامهریزی تست، توسعه موارد تست، تنظیم محیط تست، اجرای تست و بسته شدن چرخه عمر. هر یک از این شش مرحله دارای معیارهای ورود و خروج خاصی است که تعیین میکند چه وقت تستکننده نرمافزار میتواند به مرحله بعد برود. وقتی این کار به درستی انجام شود، تست نرمافزار میتواند موجب صرفهجویی هزینه، افزایش سود، بهبود رضایت مشتری، تضمین قابلیت اطمینان، کاهش هزینههای نگهداری و بهبود اعتماد شود، و آن را به بخش مهمی از توسعه نرمافزار مدرن تبدیل میکند.
نظرات کاربران در رابطه با این دوره