بررسی کیفیت نرم افزار و سیستم های مدیریت آن

چهارشنبه, 31 شهریور 1395 ساعت 15:12

چکیده

ضرورت تهیه و تدوین استاندارد لازم برای تولید هر محصول، بر همگان روشن است و نرم افزار رایانه ای که به عنوان مقوله ای فراگیر و بسیار مهم در جهان صنعتی و مبتنی بر فناوری اطلاعات و ارتباطات شناخته می شود، از این قاعده مستثنا نبوده و نیست. در طی چند دهه گذشته و در مقابله با بحران موجود در تولید محصولات نرم افزاری، متخصصان و صاحب نظران، با به وجود آوردن علوم مهندسی نرم افزار، تلاش های ارزنده بسیاری را در راستای قوام بخشیدن، برقراری و بهبود نظام تولید نرم افزار و برنامه های رایانه ای به انجام رسانیده اند؛ اما ویژگی های خاص این صنعت که در اثر رشد فناوری، با جهش سریع و تغییر زودهنگام نسل ها، و نیز با رُشد فزاینده و همه جانبه کاربردهای آن همراه بوده است، زمینه ساز تداوم برخی ابهام ها و پیچیدگی ها و همچنین، به وجود آمدن مسائل جدید در مبانی و امور مرتبط با آن می باشد. با وجود فعالیت های گوناگون توسط مؤسسات استانداردسازی، هنوز استانداردهای جامع و مورد پذیرش جهانی در این زمینه موجود نیست و استانداردها و رهنمودهای حاصل از این فعالیت ها، همچنان سیر تکاملی خود را سپری می نمایند.

کلیدواژگان: سیستم مدیریت، سیستم کیفیت، کیفیت نرم افزار.

مقدمه

کیفیت، به عنوان یکی از مهم ترین مفاهیم در مهندسی نرم افزار، نظر بسیاری از کارشناسان را به خود جلب نموده و تلاش های بسیاری را به خود اختصاص داده است. در این مقوله، همواره دو دیدگاه «کنترل کیفیت محصول نهایی» و «تضمین کیفیت تولید»، به عنوان راهکارهای مستقل و یا مکمل یکدیگر، در نظام کیفیت نرم افزارهای رایانه ای مطرح بوده اند. نتایج فعالیت های مذکور، به صورت مجموعه ای از کتب، استانداردها و رهنمودهای کلی تحت عناوین: تعریف کیفیت، فرایند تضمین کیفیت، ارزیابی و کنترل کیفیت، و یا مهندسی کیفیت، به جامعه کاربران برنامه های رایانه ای عرضه شده است. در بسیاری از متون فنی، این چنین عنوان شده که کیفیت بر مبنای خواسته های مشتری تعریف می شود. اگر چه این نظریه به طور کلی صحیح است، اما به همین دلیل (کلی بودن)، فاقد ارزش عملیاتی و غیرقابل اتکاست؛ زیرا خواسته ها، خود مبتنی و تحت الشعاع پارامترهای مختلف مانند: زمان، مکان، رشد فناوری، توان مالی، ادراک، سلیقه، قدرت پذیرش و دیگر محدودیت های موجود در محیط تولید و استفاده هستند و بنابراین، با تکیه بر این نگرش، کیفیت به مقوله ای نسبی، پارامتری، ناهمگون و تقریباً غیرقابل ارزیابی مبدل می شود. روشن است که گام اوّل در حل این مسئله، تخصیص مقادیر مشخص به پارامترهای فوق، و یا محدود کردن آنها، در حدّ ضرورت یا امکان می باشد؛ به عبارت دیگر، برای به وجود آوردن امکان اظهار نظر درباره کیفیت یک محصول، لازم است که تعریف کاربردی و غیرپارامتری برای آن ارائه شود که قابلیت استفاده در فرایندهای تولید، تضمین و ارزیابی کیفیت را دارا باشد.

تعریف کنترل کیفیت ( Quality control)

مجموعه ای از فعالیت ها برای ارزیابی و اطمینان از اینکه استانداردها و رویه های کیفی توسط تیم تولید و توسعه پروژه درست انجام گرفته باشد، کنترل کیفیت نام دارد.(1)؛ در حقیقت، کنترل کیفیت به استانداردها آشناست و به آنها آگاهی دارد و اجرای آن را بررسی و نتیجه را مشاهده می کند. مجموعه ویژگی های یک کالا و عرضه کننده آن، از لحاظ کیفی، کمّی، بها و غیره، باعث می شوند آن کالا مورد تقاضا قرار گیرد و فروش رود. کیفیت، در مقابل کمیت نیز قرار دارد. چگونگی و ماهیت یک پدیده یا شیء را کیفیت شیء یا پدیده می نامند و همچنین، محتوا نیز شامل کیفیت می باشد.

کیفیت یک محصول یا خدمت، همان چیزی است که مشتری طلب می کند. اگر محصول یا خدمت ارائه شده در جنبه هایی خاص، کیفیت بسیار بالایی داشته باشد، اما مشتری بدان نیاز نداشته باشد، تنها هزینه ای است که پرداخته شده؛ ولی ارزش افزوده ای ایجاد نکرده است. برای کنترل یک فرآیند و دستیابی به یک فرآیند با کیفیت، مدل ها و تئوری های فراوانی ارائه شده و برای هرکدام از این مدل ها، ابزارهای کنترلی ایجاد شده که به وسیله آنها می توانیم کیفیت فرآیند را زیر نظر بگیریم. کیفیت محصول، برآورده کردن نیاز امروز و فردای مشتری و همچنین، شایستگی آن جهت استفاده و تطابق آن با نیازهای کاربران است. سازمان جهانی استاندارد نیز کیفیت را این گونه تعریف کرده: تمامی ویژگی های یک محصول که در توانایی آن برای برآورده نمودن نیازهای تصریح شده یا تلویحی مؤثر، مثل راحت بودن کار با نرم افزار است. کیفیت یک فرآیند و یک محصول را می توان از زوایای متعددی بررسی کرد؛ اما همان گونه که در تعاریف سنّتی مشاهده کردیم، کیفیت در واقع برآورده کردن نیازهای مشتریان است. از این رو، شناخت و تحلیل نیازهای مشتریان، از جایگاه ویژه ای برخوردار است. در این راستا، مدل ها و روش های مختلفی برای تولید و توسعه نرم افزار وجود دارد؛ مانند: کانو، اجایل، pmbok و نایبلر که در جای مناسب به آنها خواهیم پرداخت.

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

دو نمودار در رابطه با جایگاه کنترل کیفیت وجود دارد که در حال حاضر، اجرایی است :

«نمودار اوّل»

نمودار اوّل، مربوط به کتاب مدیریت پیکره دانش می باشد و این همان روش pmbok می باشد. در این روش، مدیریت پروژه، مسئولیت هماهنگی ها را بر عهده دارد و پس از اطمینان از تولید محصول، آن را به مدیریت کیفیت می دهد و پس از بررسی و تأیید، گزارش آن را به مدیریت پروژه بدهد تا تصمیم نهایی برای تولید و عرضه محصول در بازار گرفته شود.

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

«نمودار دوم»

در جای خود، به توضیح بیشتری درباره جایگاه کنترل کیفیت خواهیم پرداخت.

تعریف بررسی نرم افزار (پروژه) (Software Review)

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

در متولوژی اجایل، برای بررسی نرم افزار، جایگاه خاصی در نظرگرفته شده است. به صورت واقعی، کاربر نهایی از اوّلین نسخه هایی که نرم افزار بیرون می آید یا در پاره ای از موارد، بعد از تشکیل زیرسیستم ها در اختیار کاربر قرار داده می شود و توسعه بر اساس بازخوردی که از کاربران گرفته می شود، انجام می گردد و این، برتری متدولوژی اجایل نسبت به دیگر متولوژی های مورد استفاده خواهد بود.

اجرای یک برنامه با هدف پیداکردن خطا

  • - تست خوب: احتمال پیدا کردن خطاهای کشف نشده توسط ارزیابی زیاد است.
  • - تست موفق: حداقل یک خطای کشف نشده را بیابد. تست فقط وجود خطا را نشان می دهد و نه عدم وجود آن را. پیدا نشدن خطا در تست، به معنای بدون خطا بودن برنامه نیست.

تست از اجزای کوچک شروع می شود؛ ضمن اینکه تست کامل برای مؤثربودن، باید توسط شخص ثالث بی طرف انجام شود.

هدف از به کارگیری محک های کیفیت نرم افزار

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

هدف از به کارگیری محک های نرم افزاری، ایجاد امکان برآورد در چرخه حیات است؛ به گونه ای که میزان برآورده شدن نیازمندی های کیفی قابل تشخیص گردد. اگرچه محک های نرم افزاری، با فراهم آوردن یک پایه کمّی (مقداری)، امکان تصمیم گیری نسبی در مورد کیفیت نرم افزار را فراهم می آورند، اما استفاده از آنها، قضاوت انسانی را در ارزیابی کیفیت نرم افزار حذف نمی نماید. انتظار می رود، با توجه به آشکار نمودن جزئیات پنهان و ویژگی های خاص محصولات نرم افزاری، استفاده از محک های نرم افزاری در یک سازمان یا یک پروژه، کوششی مؤثر و مفید باشد.

طبق نظر پروفسور جوران(3)، «کیفیت» دارای دو مفهوم مکمل است:

  • اوّل: هدف، کیفیت بالاتر، ایجاد رضایت بیشتری در مشتری و انتظار درآمد افزون تر است. ایجاد ویژگی های بیشتر و بهتر کیفیت، مستلزم سرمایه گذاری و افزایش هزینه است. از این زاویه، کیفیت بالاتر هزینه بردار است؛ اما برای درآمد مطلوب تر، لازم می نُماید.
  • دوم: کیفیت، یعنی عدم عیب و خطا. عیب و خطا موجب ضایعات، تعمیرات، دوباره کاری، محصول مرجوع، نارضایتی مشتری، شکایت، جریمه و از دست دادن مشتری می گردد و همه اینها هزینه آور هستند. بدین ترتیب، کیفیت بالاتر حاوی عیب و خطای کمتر و در نتیجه، هزینه کمتر است.

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

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

استانداردهای بررسی نرم افزار

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

معیارهای تست پذیر بودن نرم افزار(4)

این معیارها عبارت اند از:

  1. قابلیت اجرا (Operability): هرچه نرم افزار بهتر کار کند و در محیط های بیشتری قابل اجرا باشد، n بهتر قابل ارزیابی است.
  2. مشاهده پذیری (Observability): قابلیت مشاهده نتایج ارزیابی.
  3. کنترل پذیری (Controlability): قابلیت اجرای تست های خودکار؛ مثل امکان اجرای خودکار تست های واحد توسط jUnit برای زبان جاوا.
  4. تجزیه پذیری (Decomposability): ارزیابی می تواند هدفمندتر شود.
  5. سادگی (Simplicity): کاهش پیچیدگی معماری و منطق برنامه.
  6. پایداری (Stability): برای ارزیابی، تغییرات کمی بخواهد.
  7. درک پذیری (Understandability): قابلیت درک طراحی و وابستگی های بین اجزا.

سطوح مختلف تست

این سطوح عبارت اند از:

  1. تست واحد (Unit testing)؛
  2. تست یکپارچه سازی (Integration testing)؛
  3. تست سیستم (System testing)؛
  4. تست پذیرش (Acceptance testing):
  • - تست آلفا (Alpha test)؛
  • - تست بتا (beta test).

* تست واحد

تست واحد یا micro level، پایین ترین سطح تست است. هر کد تست واحد، یک قطعه کد یا یک تابع (متد) خاص را تست می کند. این تست، نیاز به دانش در مورد طراحی و شیوه عملکرد داخلی تابع یا قطعه کد دارد. این نوع تست، توسط برنامه نویس انجام می شود؛ نه تست کننده.

* تست یکپارچه سازی افزایشی

تست یکپارچه سازی افزایشی با افزوده شدن قابلیت جدید به نرم افزار، اجرا می شود. هدف این تست، بررسی درستی نرم افزار پس از افزوده شدن امکان جدید است. امکانات نرم افزار باید از هم استقلال داشته باشند تا بتوان پیش از تکمیل کل نرم افزار و به صورت افزایشی، نرم افزار را تست کرد. این فرایند، توسط برنامه نویس یا تیم تست انجام می شود.

* تست یکپارچه سازی

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

* تست سیستم

این تست به منظور بررسی عملکرد نرم افزار روی پلتفرم های مختلف و نرم افزارهای پلتفرم OS انجام می شود. سخت افزار و نرم افزار، یعنی موارد کاربردی مورد نیاز، به منظور اطمینان از این امر است که برنامه با مؤلفه های دیگر محیط اجرایش به خوبی کار می کند و نیز جهت اطمینان از اینکه نرم افزار ارائه شده در محیط مورد نظر قابل استفاده است. نمونه مشکل حاصل از انجام ندادن تست سیستم نرم افزار، بازی شیر شاه دیزنی (Disney's Lion King Game) در پاییز سال ۱۹۹۴ است. شرکت دیزنی اوّلین CD بازی خود تحت عنوان شیر شاه Lion King را که بر اساس کارتونی به همین نام ساخته شده بود، وارد بازار کرد. بسیاری از شرکت های دیگر تا آن زمان اقدام به ساخت بازی های رایانه ای کرده بودند؛ اما این اوّلین بار بود که شرکت دیزنی وارد این تجارت شده بود. دیزنی برای فروش این بازی، دست به تبلیغات گسترده ای زد و در نتیجه، این محصول با فروش بسیار بالایی مواجه شد؛ اما اتفاقات پس از آن، تبدیل به کابوسی برای این شرکت شد. در ۲۶ دسامبر، روز پس از کریسمس، تلفن های بخش پشتیبانی مشتریان شرکت دیزنی شروع کرد به زنگ زدن، زنگ زدن و زنگ زدن! متصدیان پاسخگویی به تماس ها با خیل عظیمی از والدین عصبانی با بچه های گریان مواجه شدند که ادعا می کرند نرم افزار مزبور کار نمی کند. این خبر به سرعت در مطبوعات و تلویزیون نیز پخش شد و کریسمس آن سال را برای بسیاری از پرسنل دیزنی تلخ کرد. علت چه بود؟ پس از بررسی مشخص شد که دیزنی نرم افزار خود را روی بسیاری از مدل های PC تست نکرده بود و در نتیجه، تنها روی سیستم هایی کار می کرد که برنامه نویسان دیزنی روی آن سیستم ها نرم افزار خود را توسعه داده بودند و نه دستگاه های متداولی که عموم مردم از آن استفاده می کردند.

* تست پذیرش

تست پذیرش به منظور بررسی اینکه نرم افزار نیازهای مشتری را برآورده می کند، انجام می شود و بعد از تست سیستم انجام می شود. این نوع تست، شامل موارد ذیل است:

  • - تست آلفا: در پایگاه توسعه دهنده نرم افزار و در اغلب موارد، توسط n کارمندان داخلی و گاهی نیز، توسط مشتری تعدادی از کاربرانش که به محل دعوت می شوند، انجام می گیرد.
  • - تست بتا: در این تست، نسخه هایی از نرم افزار در اختیار تعدادی از کاربران قرار می گیرد تا در بازه ای با آن کار کنند و خطاها را گزارش دهند.

روش های ارزیابی

  1. روش جعبه سفید: دانستن شیوه کار داخلی برنامه، امکان تأیید چگونگی عمل هر تکه کد و مسیر اجرا مراحل اولیه ارزیابی.
  2. روش جعبه سیاه: دانستن عمل مورد انتظار و مطلوب، و امکان تأیید کاری که سیستم باید انجام دهد. مراحل انتهایی ارزیابی استراتژی تست نرم افزار، توصیفی رسمی است از اینکه نرم افزار چگونه تست خواهد شد. هدف استراتژی تست، تعریف همه مراحل برای فرایند تست نرم افزار است که شامل برنامه ریزی آزمایش، طراحی ابزار آزمایش، اجرای آزمایش و جمع آوری و ارزیابی داده های به دست آمده باشد.

استراتژی جعبه سیاه

این آزمایش، جایگزین آزمایش جعبه سفید نمی باشد؛ بلکه مکمل آن است و خطاهایی متفاوت با آن را تست می کند. شما نرم افزاری را که به آن نیاز داشتید، تهیه می کنید و روی سیستم خود نصب می کنید. در بیشتر موارد بعد از نصب برنامه، فقط یک نسخه اجرایی آن را در سیستم خود خواهید داشت و هیچ دسترسی به سوریس کد و منابع دیگر برنامه ندارید. سیستم نرم افزاری موجود، برای شما مانند یک جعبه سیاه است که نمی توانید دورن آن را مشاهده کنید و به آن دسترسی داشته باشید. استراتژی جعبه سیاه، دقیقاً از این دیدگاه برنامه را مورد آزمایش قرار می دهد؛ یعنی با این پیش فرض که شما هیچ اطلاعاتی از کد و طراحی داخلی برنامه ندارید. حال که هیچ اطلاعاتی از کد و طراحی برنامه در اختیار ما نیست، چگونه می توان به صحت کارکرد برنامه پی بُرد؟ جواب، خیلی ساده است؛ با تمرکز بر ورودی ها و خروجی ها، برای اینکار آزمایش کننده نرم افزار به مستندات نرم افزار مراجعه می کند تا مشخص کند که سیستم در مقابل یک عمل خاص، چه پاسخی باید بدهد. سپس، داده ها را برای هر کدام از عملیات انتخاب می کند و رفتار سیستم را در مقابل آن داده ها با رفتار واقعی سیستم که در مستندات وجود دارد، مقایسه و بررسی می کند.

در یک استراتژی آزمایش جعبه سیاه، عموماً موارد زیر را مورد بررسی و آزمایش قرار می دهیم:

  • - بررسی مقادیر مرزی برای متغیرها: به یک متغیر، مقداری کمتر از حداقل مقداری که می تواند قبول کند یا بیشتر از حداکثر مقداری که می تواند قبول کند، می دهیم و سیستم را در این شرایط تست می کنیم.
  • - بررسی خروجی های سیستم: مجموعه ای از ورودی های صحیح با خروجی های مربوط به آن را تهیه می کنیم و سپس، ورودی ها را به سیستم وارد می کنیم و خروجی هایی را که توسط سیستم داده می شود، با خروجی های واقعی مقایسه می کنیم و رفتار سیستم را در برابر پردازش ورودها و پرس و جو های بزرگ و سنگین بررسی نماییم.

استراتژی جعبه سفید

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

ـ بررسی سطر به سطر کد (Code coverage): در این حالت، باید سیستم را به گونه ای اجرا و بررسی کنیم که مطمئن شویم سطر به سطر کد برنامه حداقل یکبار اجرا شده است.

ـ بررسی همه انشعاب ها در کد برنامه (branch): در کد برنامه باید تمام عبارت های شرطی (if elseها و Switch caseها) را تک به تک مورد بررسی قرار داد؛ به این صورت که در یک عبارت if else، هم قسمت if و هم قسمت else هرکدام به صورت مجزا یکبار اجرا شوند.

ـ بررسی همه حلقه ها در برنامه: حلقه ها، در نرم افزار نقش اساسی دارند؛ چون می توانند با اشتباه جزئی، مقدار بسیاری از منابع را مصرف کنند؛ برای مثال، شرط خروج از حلقه، به اشتباه هیچ وقت True نشود؛ برای نمونه، حلقه ها را با ورودی بزرگ تر از شرط خروج حلقه چک کنید؛ یعنی حلقه اصلاً اجر نشود. تستی طراحی کنید که حلقه دقیقاً یکبار اجرا شود و یا حلقه در یک بازه خاص اجرا گردد.

ـ مدیریت خطای مطلوب: بررسی اینکه اگر به یک روش یک ورودی نامعتبر وارد شود، شیوه آگاه سازی و نمایش مطلوب خطا برای کاربر چگونه باشد.

ـ بررسی امنیت: سیستم را در برابر دسترسی های غیرمجاز، هک، کرک و هر چیز دیگر که می تواند به آن آسیب برساند، مورد بررسی قرار می دهد. در اینجا ما باید مکان هایی از کد را که داده ها را اعتبارسنجی و مدیریت می کنند و یا دسترسی به منابع و عملیات مهم و حیاتی را انجام می دهند، بررسی نماییم.

پی نوشت ها:

اطلاعات تکميلي

  • تاریخ انتشار نسخه چاپی: یکشنبه, 28 شهریور 1395
  • صفحه در فصلنامه: صفحه 16
  • شماره فصلنامه: فصلنامه شماره 55
بازدید 5083 بار
شما اينجا هستيد:خانه آرشیو فصلنامه شماره 55 بررسی کیفیت نرم افزار و سیستم های مدیریت آن