این آموزش به طور دقیق چرخه حیات نرمافزار/سیستم(Software/System Development Life Cycle-SDLC) مانند چرخه آبشاری(Watefall) و چرخه تکرارپذیر(Iterative) مثل RAD و Agile را توضیح میدهد. و در ادامه، به توضیح V-Model در حوزه تست و STLC(چرخه حیات تست نرمافزار) میپردازیم.
فرض کنید Taskای را برای توسعه یک نرمافزار سفارشی ویژه یک مشتری به شما اختصاص دادهاند. اکنون، فارق از پیشزمینه فنی خود، سعی کنید در مورد یک دنباله از مراحلی که برای انجام این کار آنها را پی خواهید گرفت، فکر کرده و حدس بزنید.
- Plan کردن زبانهای برنامهنویسی مانند جاوا، PHP و Dotnet؛ پایگاه داده مانند اوراکل، mysql، و غیره که برای این پروژه مناسب هستند
- تست نرمافزار به منظور ممیزی این موضوع که نرمافزار بر اساس هر Specification ارائه شده از سوی مشتری ساخته شده است
- کد کردن نرمافزار
- جمعآوری اطلاعات تا حد امکان در مورد جزئیات و مشخصات نرمافزار مورد نظر بواسطه مشتری
اما دنباله درست مانند جدول زیر خواهد بود:
فازهای مختلف چرخه توسعه نرمافزار | فعالیتهای انجام شده در هر مرحله |
---|---|
مرحله جمعآوری نیازمندیها | جمع آوری حداکثر اطلاعات تا حد امکان در مورد جزئیات و مشخصات نرمافزار مورد نظر بواسطه مشتری. این چیزی نیست جز مرحله جمعآوری نیازمندیها(Requirement). |
مرحله طراحی | زبان برنامهنویسی مانند Java، PHP، .net ; پایگاه داده مانند اوراکل، MySQL، و غیره که برای این پروژه مناسب است ، و همچنین برخی از Functionهای سطح بالا و معماری را Plan کنید. |
مرحله ساخت | پس از مرحله طراحی، نوبت مرحله ساخت است، که چیزی جز کد کردن نرمافزار نیست. |
مرحله تست | سپس، شما نرمافزار را تست میکنید تا مطمئن شوید که بر اساس مشخصات ارائه شده بوسیله مشتری ساخته شده است. |
مرحله استقرار(Deployment) | مستقر کردن برنامه در محیط مربوطه |
مرحله نگهداشت(Maintenance) | پس از اینکه سیستم شما آماده استفاده شد، ممکن است مجبور باشید کد را بر اساس درخواست هر مشتری تغییر دهید |
تمام این سطوح، متد آبشاریِ چرخه حیات توسعه نرمافزار را تشکیل میدهند. همانطور که مشاهده میکنید، در این مدل تست فقط پس از پیادهسازی و ساخت پروژه انجام میشود.
اما اگر شما در پروژه بزرگی مشغول هستید، یعنی جاییکه سیستمها پیچیده هستند، ممکن است شما به سادگی جزئیات کلیدی در فاز نیازمندیهای خود را از دست بدهید. در چنین مواردی، یک محصول کاملا اشتباه به مشتری تحویل خواهد شد و ممکن است لازم باشد مجددا پروژه را شروع کنید یا اگر شما دقت داشته باشید که نیازمندیها را به درستی مدیریت نمایید، ممکن است به دلیل اشتباهات جدی در طراحی و معماری نرمافزار مجبور شوید کل نرمافزار را به منظور اصلاح خطا، مجددا طراحی نمایید.
ارزیابی هزاران پروژه نشان داده است نواقصی که در خلال نیازمندیها و طراحی ایجاد میشوند، مجموعا نیمی از کل نواقص را تشکیل میدهند.
همچنین هزینههای رفع نقص در طول چرخه حیات توسعه به مرور زمان افزایش مییابد. هر چه یک نقص در چرخه مذبور زودتر شناسایی شود، رفع آن ارزانتر خواهد بود.
برای رسیدگی به این نگرانی، مدل V در موضوع تست، توسعه داده شد که در آن برای هر مرحله، در چرخه حیات توسعه، فاز تست مربوط به آن مرحله نیز وجود دارد.
- سمت چپ مدل، چرخه حیات توسعه نرمافزار(Software Development Life Cycle – SDLC) است.
- سمت راست مدل، چرخه حیات تست نرمافزار(Software Test Life Cycle – STLC) است.
- کل شکل مانند یک V به نظر میرسد، از این رو V-Model نام گرفته است.
به استثنای مدل V، مدلهای توسعه Iterative نیز وجود دارد، که در آن توسعه در فازهای مختلف انجام میشود، و بر اساس آن با هر فاز Functionalityها به نرمافزار افزوده میشوند. هر فاز شامل مجموعه مستقلی از فعالیتهای توسعه و تست است.
نمونههای خوب چرخههای حیات توسعه که متدهای تکرارپذیر(Iterative) دنبال میکنند عبارتند از Rapid Application Development-RAD و Agile Development.
کلیدواژهها:
- SDLC:
SDLC چرخه حیات توسعه نرمافزار است. این چرخه دنبالهای از فعالیتهای انجام شده توسط توسعه دهندگان برای طراحی و توسعه نرمافزار با کیفیت بالا میباشد.
اگر چه SDLC از اصطلاح “توسعه” استفاده میکند، اما این مفهوم فقط برنامهنویسی انجام شده توسط برنامهنویسان را شامل نمیشود، بلکه شامل وظایفی که توسط تسترها و ذینفعان انجام میشود نیز میگردد.
Test Caseها در SDLC ایجاد میشوند.
- STLC:
STLC چرخه حیات تست نرمافزار است. این چرخه شامل مجموعهای از فعالیتهای انجام شده توسط تسترها به صورت متدیک برای تست محصول نرمافزاری شما میباشد.
اگر چه STLC از اصطلاح “تست” استفاده میکند، اما این مفهوم فقط شامل تسترها نمیشود، در برخی موارد، تست با توسعهدهندگان نیز مرتبط باشد.
Test Caseها در STLC اجرا میشوند.
- مدل آبشاری:
مدل آبشاری یک مدل پیوسته است که به فازهای مختلف برای فعالیت توسعه نرمافزار تقسیم میشود. هر مرحله برای انجام فعالیتی خاص در طول SDLC طراحی شده است. مرحله تست در مدل آبشاری تنها پس از پیادهسازی سیستم شروع میشود.
در این مدل تست در SDLC انجام میشود.
- V-Model:
مدل V توسعه یک مدل آبشاری تعمیم یافته است. برخلاف مدل آبشاری، در مدل V، یک مرحله تست متناظر برای هر مرحله از توسعه نرمافزار وجود دارد. تست در مدل V به صورت موازی با SDLC صورت میگیرد.
تست به عنوان یک زیر پروژه برای SDLC انجام میگردد.
نتیجه
مدلهای مختلفی برای چرخه حیات توسعه وجود دارد. مدل توسعه انتخاب شده برای یک پروژه به اهداف و مقاصد آن پروژه بستگی دارد.
- تست یک فعالیت مستقل نیست و باید با مدل توسعه انتخاب شده برای پروژه انطباق داشته باشد.
- در هر مدل، تست باید در تمام سطوح انجام شود، یعنی از Requirements(نیازمندیها) تا Maintenance(نگهداشت).
این مطلب بخشی از دوره آموزشی رایگان تست نرمافزار بود، که میتوانید تمامی مطالب این دوره رایگان را در اینجا مشاهده نمایید.