PDA

View Full Version : مروری بر مفاهیم مدیریت کیفیت نرم افزار



بابک زواری
جمعه 01 اردیبهشت 1385, 09:26 صبح
در بسیاری از شرکت ها حدود 30 تا 50 درصد هزینه تولید نرم افزار صرف تست آن می شود.، هنوز هم خیلی از افراد اعتقاد دارند که نرم افزارها قبل از انتشار، به درستی تست نمی شوند. این شرایط به دو دلیل به وجود می‌آید. اول این که تست نرم افزار امری بسیار مشکل است. دوم این که تست معمولا" بدون متدولوژی مشخص و ابزار لازم انجام می گیرد.
آنچه که باعث می شود تا شرکت‌ها هزینه زیادی صرف تست نرم افزارها کنند، چیزی جز دستیابی به کیفیت مطلوب نیست.





و اما کیفیت ...
کیفیت چیزی است که ما در تولیدات، فرایندها و خدمات به دنبال آن هستیم. کیفیت یک ویژگی منحصر به فرد نیست، بلکه یک مشخصه‌ی چند بعدی است و می تواند در یک فرایند یا محصول وجود داشته باشد.





کیفیت به مشخصه ای اطلاق می شود که :

تعدادی از نیازمندی‌های توافق شده را برآورده کند.
به وسیله معیارهای سنجش و اندازه گیری توافق شده ارزیابی شود.
به وسیله فرآیند مورد قبولی تولید شود.کیفیت نرم افزار را می‌توان به دو دسته تقسیم کرد:
کیفیت محصول و کیفیت فرآیند :
کیفیت محصول در مورد کیفیت محصولی که به وسیله فرآیندها تولید می شود، بحث و نتیجه گیری می کند.
کیفیت فرآیند به میزان مقبولیت و کیفیت یک فرآیند که برای تولید یک محصول اجرا می شود، اشاره می کند. اگر ما یک فرایند با کیفیت داشته باشیم، ریسک تولید محصول با کیفیت پایین بسیار کم می شود، در حالی که خلاف این مورد معمولا" درست نیست. یعنی داشتن یک محصول نهایی با کیفیت بالا، دلیل بر وجود یک فرآیند با کیفیت بالا نیست.
ابعاد مختلف کیفیت
همان طور که اشاره شد، کیفیت دارای ابعاد مختلفی‌ست.
در RUP براساس مدل FURPS+ کیفیت به صورت زیر دسته بندی می‌شود:

کارکردی( Functionality )
قابلیت استفاده ( Usability )
قابلیت اعتماد ( Reliability )
عملکرد( Performance )
قابلیت پشتیبانی( Supportability )برای هرکدام از این ابعاد مختلف کیفیت، چند نوع تست، درمراحل متفاوت اجرا می شود.

file:///C:/Documents%20and%20Settings/Admin.ATROPATGAN/Desktop/untitled.GIF
در واقع تست به عنوان یک عامل مهم و موثر بر همه ابعاد کیفی محصول شناخته می شود.

مدیریت کیفیت در RUP
مدیریت کیفیت به سه دلیل انجام می شود:

مشخص کردن مقیاس‌های مناسب برای کیفیت قابل قبول.
مشخص کردن مقیاس‌های مناسب برای استفاده در ارزیابی کیفیت.
مشخص کردن و نشان دادن موضوعاتی که بر روی کیفیت اثر گذاشته اند و یا احتمالا" اثر خواهند گذاشت.مدیریت کیفیت در همه گردش های کاری ( Workflows ) انجام می شود.
اندازه گیری کیفیت در طول چرخه حیات محصول، به منظور مدیریت کیفیت، اندازه گیری و ارزیابی کیفیت محصول و فرآیند انجام می شود .
اندازه گیری کیفیت احتیاج به جمع آوری و تجزیه و تحلیل اطلاعات دارد که معمولا به شکل اندازه ها ( Measurements ) و متریک‌ها نمایان می شوند،
اندازه ها اصولا" برای کنترل پروژه مورد استفاده قرار می گیرند. موارد استفاده دیگر آن‌ها ارزیابی میزان انطباق وضعیت پروژه با شرایط تعیین شده در برنامه ریزی اولیه می باشد. این شرایط عبارتند از: معیارهای‌ اتمام پروژه، معیارهای کیفی، معیارهای پذیرش ،معیارهای برآورده شدن نیازمندیها و غیره ... .
متریک ها برای دو هدف اصلی مورد استفاده قرار می‌گیرند : آگاهی ( Knowledge ) و تغییر( Change )
اهداف مربوط به آگاهی:
این اهداف با افعالی مانند : پاییدن( Monitor ) ؛ ارزیابی کردن( Evaluate ) و پیش بینی کردن ( Predict )بیان می شوند. همیشه یکی از اهداف مدیریت، بهتر فهمیدن فرآیند انجام کار است. به عنوان مثال، تشخیص کیفیت محصول ؛ تشخیص کیفیت فرآیند تست ؛ پایش پوشش دهی تست و یا پیگیری ( Tracking )تغییرات مربوط به نیازمندی‌ها نمونه هایی از این اهداف است.
اهداف مربوط به تغییر:
این اهداف با افعالی مانند: افزایش یافتن ( Increase )؛کاهش یافتن ( Reduce )؛ بهبود دادن ( Improve )؛ و Achieve بیان می شوند.
به عنوان مثال بهبود دادن زمان انجام کار یک پروژه نسبت به پروژه های قبلی یک نمونه از این اهداف است.
این متریک‌های به دست آمده به اندازه گیری کیفیت محصول و فرآیند کمک می کنند.
ارزیابی کیفیت معمولا زمانی که یک رویداد مهم رخ می دهد، مثلا در انتهای یک مرحله از تولید یا زمان انتشار محصول نهایی، انجام می شود.
مقطع پایانی تست زمان مناسبی برای ارزیابی نهایی کیفیت محصول قبل از انتشار است. ارزیابی خطاها و نواقصی که در تست پیدا شده اند، بهترین شاخص برای کیفیت نرم افزار و یا ارزیابی محصول است. ارزیابی نواقص باید مبتنی بر متدهایی باشد که از تعداد خطاهای ساده به مدل سازی آماری حرکت کند.
این ارزیابی ها از یک فرض درباره نرخ کشف خطاها در طول فرآیند تست استفاده می کنند. معمولا این نرخ از توزیع پواسون تبعیت می کند. سپس، اطلاعات واقعی درباره نرخ پیدا شدن خطاها در مدل گنجانده می شود. نتایج ارزیابی قابلیت اعتماد نرم افزار کنونی را تخمین می زند و نیز پیش بینی می کند که قابلیت اعتماد نرم افزار در صورت ادامه روند تست و برطرف کردن خطا چگونه رشد خواهد .( انتظار می رود که با پیشرفت تست نرخ پیدا شدن خطاها کم شود.) این ارزیابی به عنوان مدل رشد قابلیت اعتماد نرم افزار بیان می شود.
سکینه قارلقی