تست نرم افزار چیست؟ و چه رویکردهایی می توان اتخاذ کرد؟
یکی از مهمترین موارد در طراحی و پیاده سازی یک نرم افزار و یا یک وب سایت کارکرد درست آن می باشد. به همین علت تست های مختلفی طراحی شده اند که به تیم های نرم افزاری کمک میکند که یک نرم افزار بدون اشکال به مشتری تحویل بدهند. امروزه با گسترده شدن استفاده از نرم افزارهای جامع در سطح سازمان ها و افزایش روز افزون تعداد کاربران نرم افزارهای مختلف و با بالارفتن سطح توقع کاربران از نرم افزارها، موضوع تست نرم افزار برای اطمینان از صحت عملکرد و جلب رضایت بیشتر کاربران بسیار پراهمیت تر از گذشته شده است.
تست نرم افزار چیست؟
تست نرم افزار به فرایند ارزیابی یک نرم افزار به منظور تشخیص تفاوت امکانات نرم افزار کنونی با نرم افزار پیش رو می باشد. در فرایند تست نرم افزار می توانیم اطلاعاتی در رابطه با کیفیت نرم افزار شامل تایید و اعتبار سنجی بدست آوریم.
- در مرحله تایید بررسی میکنیم که آیا نرم افزار مورد نظر طبق انتظار ما رفتار میکند یا رفتار متفاوتی دارد.
- مرحله اعتبار سنجی مشخص می کند آیا نرم افزار امکانات و نیازمندیهای مربوطه را پاسخگو میباشد یا خیر. هر نرم افزاری دارای امکانات و ویژگیهای مختص به خود می باشد که باید این امکانات به درستی کار کند.
انواع رویکرد تست
تست جعبه سیاه (Blackbox Testing)
در این رویکرد، تست مکانیسم های داخلی یک سیستم نادیده گرفته می شود و به نوعی دسترسی به سورسکد نرمافزار نداشته و روی خروجی تولید شده نرم افزار تمرکز میشود. به این رویکرد تست functional نیز میگویند.
تست جعبه سفید (Whitebox Testing)
در این تست با مکانیستم داخلی و متدهای یک سیستم سرو کار داریم در این فرایند ما دسترسی کاملی به کدهای نرمافزار داریم و برای افزایش امنیت و سنجیدن جریان ورودی و خروجی (I/O) و بهبود طراحی و کاربرد، میتوانیم تمامی این موارد را مورد بررسی قرار دهیم به این نوع تست structural تست نیز گفته می شود.
انواع تست :
انواع مختلفی از تست وجود دارند که در ادامه آنها را مشاهده می کنید:
- Unit Testing
به این تست، تست واحد گفته میشود و معمولاً توسط برنامه نویس انجام میشود و نه توسط آزمایش کنندگان، زیرا به دانش دقیق در مورد طراحی داخلی و کد برنامه نیاز دارد. این نوع تست زیر مجموعه تست جعبه سفید میباشد.
- Integration Testing
این نوع تست به ما این امکان را میدهد که چند ماژول مختلف را کنار یکدیگر تست کنیم. در این صورت حتی ما میتوانیم وابستگی های میان سخت افزار و نرم افزار را نیز تست کنیم. این دسته از تست ها زیر مجموعه تست جعبه سیاه می باشند.
- Functional Testing
در این تست اطمینان حاصل می شود که عملکرد برنامه به درستی میباشد یا خیر و همچنین بررسی میکند که برنامه مطابق نیاز اعلام شده میباشد یا خیر. این تست زیر مجموعه تست جعبه سیاه می باشد.
- System Testing
این نوع تست به ما اجازه میدهد که از عملکرد برنامه در محیطهای مختلف اطمینان حاصل کنیم (مثل سیستم عامل های مختلف). این تست زیر مجموعه تست جعبه سیاه می باشد.
- Stress Testing
این تست هنگامی انجام می شود که سیستمی فراتر از مشخصات آن استرس داشته باشد تا بررسی شود که چگونه و چه موقع از کار می افتد. به نوعی عملکرد برنامه را در شرایط نامطلوب مورد بررسی قرار میدهد. این تست زیر مجموعه تست جعبه سیاه میباشد.
- Performance Testing
تست عملکرد و کارایی که در مجموعه تستهای جعبه سیاه جای میگیرد به ما این اطمینان را می دهد که برنامه مان عملکرد و کارایی لازم را در یک مدت زمان مشخص داراست.
- Usability Testing
این تست از دیدگاه مشتری انجام میشود و در واقع مشخص کننده فاکتورهای زیر است:
آیا برنامه کاربر پسند است؟
آیا برنامه ساده و قابل فهم است؟
آیا برنامه جذاب طراحی شده است؟
این نوع تست زیر مجموعه تست جعبه سیاه می باشند.
- Acceptance Testing
این نوع تست معمولا از طرف مشتری انجام می شود. هدف آن، مشخص کردن این است که آیا برنامه نیازهای مشتری را پاسخ میدهد و آیا برنامه همان چیزی که مشتری میخواهد میباشد یا خیر.
- Regression Testing
تست یک برنامه به طور کلی برای اصلاح در هر ماژول یا عملکرد، تست رگرسیون نامیده میشود. پوشاندن تمام سیستم در تست رگرسیون دشوار است، بنابراین به طور معمول از ابزارهای تست اتوماسیون برای این نوع تست ها استفاده می شود.این نوع تست زیر مجموعه تست جعبه سیاه میباشد.
- Beta Testing
تستی است که توسط کاربر نهایی یا یک تیم خارج از تیم توسعه انجام میشود. هدف تست بتا پوشش دادن خطاهای غیر منتظره است. این تست زیر مجموعه تست جعبه سیاه می باشد.
چرخه تست نرم افزار
چرخه ی تست نرم افزار مجموعه ای از اقدامات متوالی است که برای سنجش مطلوبیت نرم افزار انجام می پذیرد. این اقدامات موجب می شود تا محصول نرم افزاری مورد تایید واقع شود. نمودار زیر مراحل مختلف در چرخه تست نرم افزار را نشان می دهد:
۱٫ جمع آوری نیازمندی
تجزیه و تحلیل مورد نیاز اولین قدم از چرخه تست نرم افزار است. در این مرحله، تیم تضمین کیفیت الزاماتی مانند آنچه باید مورد آزمایش قرار گیرد را درک میکند. اگر چیزی از دست رفته یا قابل درک نباشد، تیم تضمین کیفیت با ذینفعان ملاقات می کند تا دانش جزئیات مورد نیاز را بهتر درک کند. امکان سنجی تست خودکار برای پروژه ی مد نظر در این فاز انجام میگیرد.
۲٫ برنامه ریزی تست
برنامه ریزی تست کارآمدترین مرحله از چرخه عمر تست نرم افزار است که در آن کلیه نقشه های تست تعریف شده است. در این مرحله مدیر تیم تضمین کیفیت هزینه و کار لازم برای پروژه ی تست را تخمین زده و برنامهی تست را آماده و نهایی سازی میکند. این مرحله پس از اتمام مرحله جمع آوری نیاز شروع میشود.
۳٫ توسعه تست کِیس ها
در این مرحله، تیم آزمایش موارد دقیق آزمون را یادداشت میکند. همچنین دادههای آزمون مورد نیاز را برای آزمایش آماده میکند. هنگامی که پرونده های آزمون آماده می شوند، آنها توسط تیم تضمین کیفیت بررسی میشوند.
۴٫ برپایی محیط تست
تنظیم محیط آزمایش قسمت مهمی از چرخه تست نرم افزار است. اساساً محیط تست شرایطی را که تست شده در آن نرم افزار تعیین میکند. این یک فعالیت مستقل است و می تواند به همراه توسعه مورد آزمایش آغاز شود. در این فرآیند تیم آزمایش شرکت نمیکند یا توسعه دهنده یا مشتری محیط آزمایش را ایجاد میکند.
۵٫ اجرای تست
پس از شروع مرحله ساخت و آزمایش، راه اندازی محیط آزمایش آغاز میشود. در این مرحله تیم آزمایش مراحل اولیه آزمایش را بر اساس پرونده های تست آماده شده آغاز میکند وگزارش باگهای پیدا شده را به تیم توسعه برای رفع ارسال میکند.
۶٫ بسته شدن چرخه تست
این آخرین مرحله از چرخه تست نرم افزار است که در آن فرایند آزمایش تجزیه و تحلیل می شود.
نویسنده: مهندس مینا سوری
مقاله خوبی بود. ممنون بازم ازین چیزا بنویسین برامون
عالی بسیار مفید بود