PDA

View Full Version : چهجوری بفهمیم یک برنامه که نوشتیم باگ داره یا نه



meisambandari
چهارشنبه 21 آذر 1386, 17:08 عصر
سلام دوستان میخواستم بدونم که چه جوری بفهمیم برنامه ای که نوشتیم باگ داره یا نه از کجا باید بدونیم که برنامه باگ داره یا نداره چیکار کنیم که باگ ها بسته بشه دوستان عزیز ازتون خواهش میکنم که در این مورد چیزی میدونید از ما دریغ نکنید و اگر مقاله ای هم دارید بزارید ممنون میشم !!!

مبین رنجبر
چهارشنبه 21 آذر 1386, 17:29 عصر
هیچ برنامه نویسی نمیتونه ادعا کنه که برنامه ای که نوشته هیچ مشکلی نداره ...... خوب اینم سواله که پرسیدی ؟ یعنی خودت نمیدونی ؟ .. در ضمن باگ یه چیزه کلیه .. باگی که شما میگین چه جور باگیه ؟ باگ امنیتی ، باگ کارایی ، باگ دستوری .. کدوم ؟

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

ab_ba
چهارشنبه 21 آذر 1386, 17:36 عصر
باگها اشتباهات منطقی برنامه ها هستند و پیدا کردن و رفع آنها با استفاده از تست سیستم بوسیله ابزارهای مختلف مثل ورود اطلاعات تصادفی و ... امکان پذیر و در گاهی مواقع بسیار مشکل میباشد
در مورد باگهای اطلاعاتی (مربوط به بانک اطلاعاتی)من برای نرم افزارهای خودم یک تستر مینویسم که بعد از ورود اطلاعات صحت انها را چک میکند مثلا فرض کنید یک فیلد جمع چند فیلد خاص در یک جدول دیگر است برنامه تستر این امر را چک میکند اگر اختلاف داشت نشان میدهد برنامه در هنگام ورود اطلاعات به بانک باگ دارد(فقط نشان میدهد باید باگ موردنظر پیدا شود)

iiiiiibo
چهارشنبه 21 آذر 1386, 22:32 عصر
اگر می خوای ببنی که ایراد داره یا نه یه نسخه EXE ازش بساز ولی این بعضی جاها کاربرد داره.شما باید حرف به حرف برنامت رو کنترل کنی و نواقصش رو از بین ببری.
مثل بانک اطلاعاتی که برای رفتن به رکورد بعدی شما باید اول ببینی که در آخرین رکورد هستی یا نه اگه بودی برنامه از رفتن به رکورد بعدی خودداری کنه و ..... دیگر مثالها که خیلی زیادن.

senator_aka
چهارشنبه 21 آذر 1386, 22:45 عصر
دوست عزیز

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

اما اگه باگ از نوع دستوری باشه که در هنگام کامپایل کردن کامپایلر به شما اطلاع میدهد.

فهمیدن باگ های دیگر نیز راه های مخصوص به خود را داره که باز هم تاکید می کنم که بهترین راه آزمایش کردن هست

Asad.Safari
چهارشنبه 21 آذر 1386, 22:45 عصر
در مراحل ساخت نرم افزار یک بخشش مربوط به مراحل تست و خطایابی می باشد که همچین کار آسونی نیست , من پیشنهاد میکنم کتاب مهندسی نرم افزار Press Man رو مطالعه بفرمایید .


موفق باشید

bahman_bisavad
پنج شنبه 22 آذر 1386, 10:18 صبح
با سلام
از فرمان stop برای تستش استفاده کنید ویا از فرمان on error .

someCoder
پنج شنبه 22 آذر 1386, 11:08 صبح
سلام دوستان میخواستم بدونم که چه جوری بفهمیم برنامه ای که نوشتیم باگ داره یا نه از کجا باید بدونیم که برنامه باگ داره یا نداره چیکار کنیم که باگ ها بسته بشه دوستان عزیز ازتون خواهش میکنم که در این مورد چیزی میدونید از ما دریغ نکنید و اگر مقاله ای هم دارید بزارید ممنون میشم !!!

برای شروع اینو بخون: http://en.wikipedia.org/wiki/Software_testing

راستی برای اینکه بدونی باگ داری یا نه:

"Program testing can be used to show the presence of bugs,
but never to show their absence!"
-- Edsger Dijkstra

meisambandari
پنج شنبه 22 آذر 1386, 12:00 عصر
سلام دوستان عزیز از همه شما ممنونم که جواب سوال من رو دادید ولی من یه مبتدی ام و این جوابهاییی که دادین گرفتنش برا من سنگینه و ازتون خواهش میکنم در حد مبتدی جواب بدین . و آقای someCoder (http://barnamenevis.org/forum/member.php?u=11022) من هیچی از زبان انگلیسی نمیدونم اینو در رابطه با اون لینکی که دادین گفتم و از این کدی هم که دادین هیچی حالیم نشد اینو باید کجا استفاده کرد کجای برنامه ؟ .

someCoder
پنج شنبه 22 آذر 1386, 12:35 عصر
اون لینک که دادم روشهای تست نرم افزار با دید مهندسی نرم افزار هست و متاسفانه منبع فارسی سراغ ندارم.

در مورد اون کد هم، اون کد نبود، نقل قول بود که برای اینکه خوشگل بشه تو تگ کد گذاشتمش.
یه نقل قول از Dijkstra (همون دیکسترا یا دایجسترا یا ...) که میگه: تست نرم افزار فقط وجود باگ رو نشون میده و هیچ وقت عدم وجود باگ رو نمیشه نشون داد.
این رو در جواب این جمله گفتم:

چه جوری بفهمیم برنامه ای که نوشتیم باگ داره یا نه
و منظورم این بود که هیچ وقت نمیتونی بگی دیگه باگ نداره.

ali_habibi1384
پنج شنبه 22 آذر 1386, 16:49 عصر
هیچ برنامه نویسی نمیتونه ادعا کنه که برنامه ای که نوشته هیچ مشکلی نداره ...... خوب اینم سواله که پرسیدی ؟ یعنی خودت نمیدونی ؟ .. در ضمن باگ یه چیزه کلیه .. باگی که شما میگین چه جور باگیه ؟ باگ امنیتی ، باگ کارایی ، باگ دستوری .. کدوم ؟

شما اگر کارخونه های خارجی ماشین رو دیده باشین ( مثل فورد ، فراری و ... ) ، ماشینی که تولید میکنن رو به بد ترین شکل تستش میکنن .. یعنی میکوبونن به دیوار ، آتیشش میزنن ، و ... . و با این شکل مشکلات ناشی از این تست هارو به حداقل میرسونن .. شما هم باید همین کارو بکنی ..
عذر می خوام چیزی رو که شما گفتید تست فشار هست نه باگ برنامه .
من فکر می کنم منظور دوستمون اشکالات نحوی برنامه و منطقی اونه نحوی مانند error handling که کاربر مثلا شماره تلفن رو بجای عدد حروف وارد میکنه اینجور خطاها رو میشه با توابع خود وی بی پیدا کرد مثلا در همین مورد میشه از تابع isnumeric استفاده کرد که اگر عدد نباشه مقدار false رو برای ما برمیگردونه البته روشهای کارآمد تر و بهتری هم هست .
می تونید از فرمان on error و هدایت اون به یک برچسب استفاده کنید بعنوان مثال ببینید:


on error goto ex
____________
____________
____________
exit sub
ex:
if err.number=51 then msgbox "File Not Found"
err.clear

یعنی بهنگام رخ داد خطا اونو برای پردازش به جایی دیگر از برنامه راهنمایی می کنیم و می تونید شماره خطا رو نیز چک کنید .
اگر هنوز هم نیاز به توضیحات بیشتر در این مورد دارید تاپیک بدید .

مبین رنجبر
پنج شنبه 22 آذر 1386, 20:38 عصر
جناب ali_habibi1384 تست فشار مختص ماشین هاست .. شما لازم نیست به مثال هایی که در تاپیک بنده بود اشاره کنید به مفهوم جمله توجه کنید ... تست فشار یه مثالی از مورد تست قرار دارن یه محصول بود .. من نگفتم برنامه رو تست فشار کنین ... اگر میدونستم اینقدر نکته سنجی جوره دیگه ای مینوشتم

meisambandari
جمعه 23 آذر 1386, 12:52 عصر
سلام دوستان ممنون از کمکهایی که میکنید و منظورم از باگ این هست که یه برنامه که مینویسیم بعد از اجرا و وهمزمان با وصل بودن به اینترنت باگهایی دارد که ویروس را به کامپیوتر منتقل میکنه منظورم اینه که این نوع باگها رو چه جوری شناسایی کنیم و چه جوری ببندیمشون .ممنون. !!!

ali_habibi1384
جمعه 23 آذر 1386, 23:58 عصر
جناب ali_habibi1384 تست فشار مختص ماشین هاست .. شما لازم نیست به مثال هایی که در تاپیک بنده بود اشاره کنید به مفهوم جمله توجه کنید ... تست فشار یه مثالی از مورد تست قرار دارن یه محصول بود .. من نگفتم برنامه رو تست فشار کنین ... اگر میدونستم اینقدر نکته سنجی جوره دیگه ای مینوشتم
اگر شما کمی در مورد مهندسی نرم افزار مطالعه می داشتید قطعا این حرف رو نمی زدین . تست فشار نرم افزار در همه کتابهای مهندسی نرم افزار بحث شده و چیزه پیش پا افتاده ای نیست که اینجا بخواهیم بحث کنیم.