یکی از چالشهای امروز پروژه های نرمافزار، تست است زیرا برخلاف محصولات تولید شده توسط سایر علوم مهندسی، نرمافزار محصولی غیرقابل لمس است از این جهت برای اطمینان از کیفیت، نیاز به صرف هزینه و وقت بیشتر برای تست آن است. تست در حقیقت یکی از اساسیترین روشها برای ارزیابی نرمافزار تحت توسعه است. روشهای سنتی تست نرمافزار، تنها به یافتن بعضی از خطاها [1]بعد از فاز پیادهسازی محدود میشد و از این جهت ریسک وجود خطا در نرمافزار، بعد از تحویل، افزایش می یافت و حتی وجود خطاها در نرمافزار گاهی موجب شکست [2]نرمافزار می شود اما منشاء بخشی از این خطاها در کجاست؟ منشاء بخشی از این خطاها در نقصهایی[3] است که برنامه نویسان به طور غیر عمدی و بر اثر بی دقتی وارد کد برنامه می کنند مانند: کوچکتر از حد نیاز در نظر گرفتن طول یک آرایه، اشتباه در پرانتز گذاری عبارتها، استفادهی نادرست از عملگرهای دودویی و یکانی و … که در صورت شناسایی محل آن در بسیاری از موارد با
ایجاد یک تغییر کوچک در کد برنامه قابل اصلاح است اما در صورت عدم اصلاح وجود یک یا چند نقص در برنامه سبب ایجاد یک وضعیت درونی اشتباه در برنامه شود که در برخی از موارد با وارد کردن یک ورودی خاص تحریک شده و ممکن است این وضعیت درونی به یک رفتار بیرونی اشتباه تبدیل شود و حتی در برخی از موارد موجب شکست برنامه شود به عنوان مثال اگر بدن انسان را به یک برنامهی کامپیوتری تشبیه کنیم نقصها در حقیقت عوامل بیماری زا هستند که در یک بدن سالم وارد میشوند و آن را تحت تصرف خود درمیآورند، خطاها مانند یک وضعیت درونی غیر عادی در بدن مانند فشار خون بالا، وجود یک نوع باکتری در خون، بی نظمی در نبض بیمار که پزشکان با کنارهم قرار دادن این علائم تلاش می کنند به علت بیماری پی ببرند، از کار افتادگیها در حقیقت علائم درونی هستند که از حالت نهان و درونی خود خارج شده به طوری که توسط بیمار نیز قابل تشخیص و بیان هستند.
حال که توانستیم مفهوم نقص، خطا و شکست را شرح دهیم، میتوانیم میان سه مفهوم تست، تست شکست و اشکال زدایی، تمایز قائل شویم وآن عبارت است از:
- تست: ارزیابی نرمافزار با بهره گرفتن از مشاهده و بررسی آن در هنگام اجرا.
- تست شکست: اجرای برنامه که منجر به شکست آن می شود.
- اشکال زدایی: فرایندی که با توجه به شکستها محل نقصهای مربوطه را پیدا می کند.
یکی از چالشهای عمده در این بخش یافتن نقصهای برنامه است زیرا به ازای هر نقص تعداد محدودی از ورودی ها خروجی برنامه را تغییر می دهند بنابراین پیدا کردن محل نقص همواره کار سادهای نیست با در نظر گرفتن این ایده به سه شرط اساسی میرسیم که وجود آنها برای تبدیل یک نقص به یک شکست ضروری است:
1.Errors
2.Failure
[3] Faults
فرم در حال بارگذاری ...