تست نرم افزار برای توسعه دهندگان – انجمن DEV

چرا تست می کنیم
با استفاده از سیستمی که آزمایش نشده است چقدر احساس امنیت می کنید؟
فرض کنید شما قصد خرید خودرو را دارید، اما هیچ آزمایشی انجام نشد و مهندسان صرفاً بر اساس تجربه خود روی خودرو کار کردند.
در مورد استفاده از ماشین چه احساسی دارید؟
به همین دلیل است که ما نرم افزار را آزمایش می کنیم تا حس بهتری از کیفیت را به کاربر نهایی نرم افزار بدهیم.
دلایل آزمایش
-
سازش
- بسته به اشکال نرم افزار، یک خطا می تواند یک شخص، یک گروه یا کل عملیات را در معرض خطر قرار دهد.
-
تضمین کیفیت
- اطمینان حاصل می کند که نرم افزار با استانداردهای کیفیت مورد انتظار کاربر نهایی مطابقت دارد. رفتار نرم افزار را طبق برنامه ریزی تایید می کند.
-
امنیت
- داشتن یک نرم افزار امن برای محافظت در برابر حملات مخرب و جلوگیری از نقض اطلاعات ضروری است.
-
هزینه
- در زمان و هزینه سازمان شما صرفه جویی می شود، تست یکی از مقرون به صرفه ترین راه ها برای اطمینان از کیفیت و قابلیت اطمینان نرم افزار شما است.
-
دیگر
- دلایل زیادی برای در نظر گرفتن تست نرم افزار وجود دارد، مانند مستندات، بهره وری، انطباق، تجربه کاربری و غیره.
انواع آزمون ها
انواع مختلفی از تست ها وجود دارد مانند تست بار، تست جهش، تست پذیرش، تست دود و غیره. برای تمرکز بر آنچه در این مقاله ضروری است، ما بر روی 3 نوع آزمایش اصلی تمرکز خواهیم کرد که توسعه دهندگان می توانند در نظر بگیرند:
- تست های واحد
- تست های یکپارچه سازی
- تست های پایان به انتها
تست های واحد
Unit Tests بر روی واحدها یا اجزای یک نرم افزار تمرکز دارد. یک واحد معمولاً متدی در یک کلاس یا برنامه است. بخش کوچکی از کد را تأیید می کند، باید سریع اجرا شود و معمولاً خودکار باشد.
تست های یکپارچه سازی
تستهای واحد عالی هستند زیرا یک واحد از برنامه را آزمایش میکنند، اما اگر به تستهای واحد تکیه کنید نمیتوانید مطمئن باشید که سیستم شما کار میکند. تست یکپارچه سازی به تایید نحوه عملکرد اجزا در یکپارچگی با سیستم های خارجی کمک می کند. هدف شناسایی عیوب در تعامل بین واحدهای یکپارچه است.
تست تعادل
حفظ تعادل بین تست های واحد و ادغام بسیار مهم است. تعداد تستهای بین ادغام و واحد بسته به نیاز میتواند به شدت از برنامهای به برنامه دیگر متفاوت باشد.
تست های پایان به انتها
در تست انتها به پایان، کل برنامه در یک سناریوی واقعی مانند تعامل با پایگاه داده، فرانت اند، شبکه، سخت افزار و سایر برنامه ها آزمایش می شود. این می تواند شامل چندین مؤلفه از سیستم باشد که با هم کار می کنند، مانند پایگاه داده، رابط کاربر، شبکه و API ها.
هرم آزمایش
هنگام کار با تست، مهم است که ابتدا درک روشنی داشته باشید که آیا آزمون های مختلف معایب و مزایای خود را دارند یا خیر. بنابراین، میتوانید روی هر چیزی که برای هدف سازمان یا پروژه در دستتان منطقیتر است، سرمایهگذاری کنید.
هرم زیر شامل سه سطح آزمایش است، اگر در مورد هرم آزمایش تحقیق می کنید، باید چند نوع از این هرم را پیدا کنید.
-
اول، ما تست های واحد را در پایین داریم که در آن همه قوانین تجاری اصلی باید آزمایش شوند.
-
دوم، ما تست یکپارچه سازی داریم که در آن شما به دلیل ادغام با سرویس های خارجی پیچیدگی بیشتری دارید و معمولاً برای سناریوهای کمتری نسبت به تست های واحد نوشته می شوند.
-
در نهایت، ما یک انتها به انتها داریم که عملکرد کل برنامه نرم افزاری را پوشش می دهد و به دلیل تغییر مداوم احتمالی در برنامه، نوشتن و نگهداری پیچیده تر است.
همانطور که در شکل مشاهده می شود، پایین هرم کمتر واقع گرایانه است و نگهداری آن آسان تر است و با بالا رفتن پیچیدگی/نگهداری هرم باید افزایش یابد.