در این قسمت از مباحث تست نرم افزار در مورد چرخه ی توسعه ی سیستم و متدولوژی های آبشاری و چابک (Agile) و نیز ارتباط آن با چرخه تست نرم افزار و مدل V صحبت خواهیم کرد.

فرض کنید وظیفه ی توسعه ی یک نرم افزار سفارشی برای یک مشتری به شما محول شده است. حال قطع نظر از پس زمینه فنی و تکنیکالی که دارید سعی کنید برآوردی تجربی از گام هایی متوالی که باید برای این منظور طی کنید ارائه دهید. ترتیب درست چیزی مانند جدول زیر است:

فازهای مختلف چرخه ی توسعه نرم افزار

فعالیت هایی که در هر فاز انجام می گیرد

مرحله جمع آوری نیازمندی

جمع آوری اطلاعات و جزئیات ویژگی های نرم افزار از مشتری تا جای امکان

مرحله طراحی

برنامه ریزی برای انتخاب زبان های برنامه نویسی مانند جاوا، دات نت و ... و دیتابیس هایی مثل MsSql یا MySql که برای پروژه مناسب هستند. هم چنین طراحی معماری و توابع در سطح بالا و بدون جزئیات.

مرحله ساخت

کد کردن نرم افزار

مرحله تست

تست نرم افزار برای اینکه مطمئن شویم طبق نیازمندی های و مشخصات گرفته شده از مشتری توسعه یافته

مرحله استقرار

استقرار و انتشار نرم افزار در محیط مورد نظر

مرحله نگهداری

به محض اینکه سیستم آماده ی استفاده شد، باید آمادگی تغییر کدها بر اساس درخواست های مشتری را داشته باشید.


مراحل بالا روش آبشاری توسعه نرم افزار را تشکیل میدهند. هم چنان که مشاهده می کنید تست در این روش از وقتی شروع می شود که پیاده سازی به اتمام رسیده باشد.
اما اگر شما در حال کار کردن در پروژه ای بزرگ با سیستم پیچیده باشید، به راحتی این امکان وجود دارد که حتی در همان فاز اول یعنی جمع آوری نیازمندی جزئیات مهمی از قلم افتاده باشد. در این صورت محصولی به کل اشتباه تحویل مشتری داده خواهد شد و ممکن است شما مجبور باشید پروژه را از نو شروع کرده یا اگر در گام نیازمندی خوب عمل کرده باشید اما در فاز طراحی و ساخت اشتباهات جدی مرتکب شده باشید، می بایست کل نرم افزار را برای رفع اشکالات دستخوش تغییرات جدی کنید.
ارزیابی هزاران پروژه نشان داده است که اشکالات و نقص هایی که در خلال فازهای جمع آوری نیازمندی و طراحی معرفی می شوند حدود 50 درصد از کل را تشکیل می دهند. (براساس گزارش موسسه ملی استانداردها و تکنولوژی).


همچنین هزینه ی اصلاح یک نقص در هر مرحله نسبت به مرحه قبل افزایش می یابد. هرچه زودتر یک باگ و اشکال شناخته شود با هزینه کمتری برطرف خواهد شد. به قول معروف « جلو ضرر رو از هر جا بگیری منفعته.»

برای حل این مشکل «مدل V تست» توسعه داده شده که طبق آن در هر مرحله از چرخه توسعه نرم افزار فاز تست متناظر با آن وجود دارد.


- سمت راست مدل چرخه توسعه نرم افزار را نشان می دهد.
- سمت چپ چرخه تست نرم افزار را نشان می دهد.
- کل تصویر چیزی شبیه به حرف V است؛ بنابراین به آن مدل تست V گفته می شود.

جدا از مدل V مدلهای توسعه نرم افزاری تکرارشونده وجود دارند که توسعه در فازهایی انجام میشود که هر فاز یک کارکرد به نرم افزار می افزاید؛ هر فاز مجموعه ای مستقل از فعالیت های توسعه و تست مستقل برای خود دارد. مدل های RAD یا همان توسعه سریع و Agile یا همان چابک مثال های خوبی از رویکرد تکرارشونده در توسعه نرم افزار هستند.

در اینجا چند واژه ی کلیدی را که استفاده کردیم دوباره توضیح می دهیم:
- چرخه توسعه نرم افزار (Software Development Life Cycle - SDLC)
مجموعه اقداماتی که توسط توسعه دهنده نرم افزار برای تحویل محصولی با کیفیت انجام می شود. اگر چه از واژه ی توسعه در این عبارت استفاده شده این فقط به معنای کد زدن نیست بلکه وظایف تست کنندگان و سهامداران نیز در آن گنجانده شده است. 
- چرخه تست نرم افزار (Software Testing Life Cycle - STLC)
شامل مجموعه اقداماتی است که تست کنندگان با رویکرد مبتنی بر متدولوژی  انجام می دهند تا محصول نرم افزاری را بیازمایند. هرچند واژه ی تست در این عبارت آماده، در برخی موارد تعامل با توسعه دهندگان نیاز است.
- مدل آبشاری
مدلی ترتیبی که به فازهای مختلف توسعه نرم افزار تقسیم می شود. هر مرحله برای انجام  فعالیتی خاص طراحی در چرخه توسعه نرم افزار (SDLC) شده است. تست در این مدل تنها پس از پیاده سازی سیستم انجام می گیرد. در این مدل در واقع تست، خود مرحله ای از مراحل SDLC است.
- مدل V
مدل توسعه یافته ای از مدل آبشاری است. بر خلاف مدل آبشاری برای هر مرحله از توسعه نرم افزار، فاز تست متناظر وجود دارد و به موازات توسعه نرم افزار انجام می گیرد. بنابراین تست به عنوان یک زیر پروژه از چرخه توسعه نرم افزار انجام می گیرد.

جمع بندی
مدلهای چرخه توسعه نرم افزاری زیادی وجود دارد. مدل توسعه ی انتخاب شده برای هر پروژه به مقاصد و اهدف آن پروژه بستگی دارد.
- تست فعالیتی مستقل نیست و باید آن را با مدل توسعه ی نرم افزار تطبیق داد.
- در هر مدلی از چرخه توسعه نرم افزار تست باید در همه سطوح انجام بپذیرد یعنی از زمان جمع آوری نیازمندی تا مرحله نگهداری


آموزش برنامه نویسی سی شارپ، آموزش ASP.NET MVC، آموزش طراحی صفحات وب، آموزش برنامه نویسی موبایل (Xamarin) - از مقدماتی تا پیشرفته در سپیدآریا