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

by مجتبی بنائی - شنبه 16 بهمن 1389 - گروه : روزنوشت - مشاهده : 0
برچسب‌ها: #تخصصی‌نرم‌افزار #تجربیات #تخصصی #تست

s: تجربیات | تخصصی | تست امروز رفتم بیرجند تا برنامه ای را که مدتهاست درگیر آن بودیم و راجع به ذخیره فیلم های ویدئومتری ، بازبینی آنها و ثبت خطاها برای آب و فاضلاب خراسان جنوبی بود را تحویل بدهم. روی سیستم خودم و سیستم اصلی آنها هم به خوبی نصب شد اما روی لپ تاپی که قرار بود فردا با خود به تهران ببرند و این نرم افزار را هم جزء کارهای انجام شده نمایش بدهند ، نصب شد اما با کلیک بر روی آن ، پیام معروف ویندوز مبنی بر اینکه " خطایی رخ داده است و برنامه باید بسته شود . اگر مایلید اطلاعات خطا به مایکروسافت ارسال شود؟ " و دکمه معروف عدم ارسال ( Don’t Send ) . بدترین خطایی که می توانست رخ دهد چون هیچ گونه اطلاعاتی راجع به خطا به ما نمی داد. اول از همه قسمت بازبینی خطاهای ( Event Viewer ) ویندوز را نگاه کردم و دیدم فقط توضیحی که ارائه داده این است که خطایی در توسط محیط اجرایی دات نت دو ایجاد شده است . به ذهنم رسید سرویس پک دات نت دو را نصب کنم . کردیم و نشد . دات نت سه و نیم را نصب کردم ، باز هم درست نشد. به ذهنم رسید ویندوز را عوض کنم و قرار شد لپ تاپ را ببرم و عصری برایشان دوباره بفرستم . اما در آخرین لحظات به ذهنم رسید خود ویژوال استودیو را هم نصب کنم و از روی سورس برنامه ، آنرا اجرا کنم ببینم خطا کجاست . سریع ویژوال استودیو را با کمترین گزینه ها نصب و برنامه را اجرا کردم . خطا را یافتم . خطا از یکی از کامپوننت هایی پخش فیلمی بود که کرک نشده بود و هنگام بالا آمدن برنامه ، خطا تولید می کرد و برنامه بسته می شد. کرک آنرا نصب کرده بودم اما به نظر بی دقتی کرده بودم چون کرک نشده بود . کرک آنرا نصب کردم و برنامه به خوبی اجرا شد. کافی بود در تمام توابع اصلی و حتی بارگذاری فرم اصلی از مدیریت خطا ( Try Catch ) استفاده می کردم و خطای تولید شده را یا به کاربر نشان می دادم و یا در فایلی (مثلاً Log.txt ) ذخیره اش می کردم تا به راحتی بتوانم خطا را ردیابی کنم. از طرف دیگر ، همیشه فرض می کردیم که کرک کامپوننت مورد نظر همیشه اجرا می شود و حتی یکدفعه این موضوع را تست نکردیم که اگر احیاناً کرک به درستی اجرا نشده باشد، نرم افزار چه واکنشی نشان خواهد داد و چه خطایی تولید خواهد شد. به خصوص امروزه که تست نرم افزار از اهمیت زیادی برخوردار شده است و در محیط های برنامه نویسی امکانات خاصی راجع به همین موارد در نظر گرفته شده است اما آدمیزاد تا سرش به سنگ نخورد ، درس نمی گیرد...

Comments