تحقیق تست جهش و عملگرها برای ایجاد جهش و روش های حل آن

پیشینه تحقیق و پایان نامه و پروژه دانشجویی

پیشینه تحقیق تست جهش و عملگرها برای ایجاد جهش و روش های حل آن دارای ۶۱ صفحه می باشد فایل پیشینه تحقیق به صورت ورد  word و قابل ویرایش می باشد. بلافاصله بعد از پرداخت و خرید لینک دنلود فایل نمایش داده می شود و قادر خواهید بود  آن را دانلود و دریافت نمایید . ضمناً لینک دانلود فایل همان لحظه به آدرس ایمیل ثبت شده شما ارسال می گردد.

فهرست مطالب

۱-۱مقدمه۳
۱-۲تست جهش۶
۱-۲-۱تئوری و نظریات۶
۱-۲-۲متدلوژی۹
۱-۲-۳عملگرها۱۱
۱-۲-۴تکینکهای کاهش هزینه۱۷
۱-۲-۵تولید جهش کمتر۱۸
۱-۲-۶تکنیکهای کاهش هزینه در زمان اجرای برنامه۲۶
۱-۲-۷جهش های برابر۳۵
۱-۲-۸خودکار سازی تست۴۰
۱-۳نتیجه گیری۴۴
۱-۳-۱روشهای ارائه شده برای انجام تست جهش۴۷
۱-۳-۲روش مبتنی بر CBT47
۱-۳-۳روش اجرای سمبلیک۴۸
۱-۳-۴ترکیب روش اجرای پویای سمبلیک (DSE) با اسکیما۵۳
۱-۳-۵روشهای مبتنی بر جستجو۵۵
۱-۴منابع۵۶

منابع

[۱]   A. J. Offutt and S. D. Lee, “An empirical evaluation of weak mutation,” Software Engineering, IEEE Transactions on, vol. 20, pp. 337-344, 1994.

[۲]   C. Ji, Z. Chen, B. Xu, and Z. Zhao, “A Novel Method of Mutation Clustering Based on Domain Analysis,” in SEKE, 2009, pp. 422-425.

[۳]   A. P. Mathur, “Performance, effectiveness, and reliability issues in software testing,” in Computer Software and Applications Conference, 1991. COMPSAC’91., Proceedings of the Fifteenth Annual International, 1991, pp. 604-605.

[۴]   A. J. Offutt, G. Rothermel, and C. Zapf, “An experimental evaluation of selective mutation,” in Proceedings of the 15th international conference on Software Engineering, 1993, pp. 100-107.

[۵]   S. S. Dahiya, J. K. Chhabra, and S. Kumar, “Application of artificial bee colony algorithm to software testing,” in Software Engineering Conference (ASWEC), 2010 21st Australian, 2010, pp. 149-154.

[۶]   M. Woodward and K. Halewood, “From weak to strong, dead or alive? an analysis of some mutation testing issues,” in Software Testing, Verification, and Analysis, 1988., Proceedings of the Second Workshop on, 1988, pp. 152-158.

[۷]  A. J. Offutt, Z. Jin, and J. Pan, “The dynamic domain reduction procedure for test data generation,” Software-Practice and Experience, vol. 29, pp. 167-194, 1999.

[۸]   R. H. Untch, A. J. Offutt, and M. J. Harrold, “Mutation analysis using mutant schemata,” in ACM SIGSOFT Software Engineering Notes, 1993, pp. 139-148.

[۹]     P. Ammann and J. Offutt, Introduction to software testing: Cambridge University Press, 2008.

[۱۰]   B. J. Grun, D. Schuler, and A. Zeller, “The impact of equivalent mutants,” in Software Testing, Verification and Validation Workshops, 2009. ICSTW’09. International Conference on, 2009, pp. 192-199.

[۱۱]     R. A. DeMillo, R. J. Lipton, and F. G. Sayward, “Hints on test data selection: Help for the practicing programmer,” Computer, vol. 11, pp. 34-41, 1978.

[۱۲]  M. Polo, M. Piattini, and I. García‐Rodríguez, “Decreasing the cost of mutation testing with second‐order mutants,” Software Testing, Verification and Reliability, vol. 19, pp. 111-131, 2009.

[۱۳]   A. J. Offutt and W. M. Craft, “Using compiler optimization techniques to detect equivalent mutants,” Software Testing, Verification and Reliability, vol. 4, pp. 131-154, 1994.

۱-۱-مقدمه

یکی از چالش­های امروز پروژه­های نرم ­افزار، تست است زیرا برخلاف محصولات تولید شده توسط سایر علوم مهندسی، نرم­افزار محصولی غیرقابل لمس است از این جهت برای اطمینان از کیفیت، نیاز به صرف هزینه و وقت بیشتر برای تست آن است. تست در حقیقت یکی از اساسی­ترین روش­ها برای ارزیابی نرم­افزار تحت توسعه است. روش­های سنتی تست نرم­افزار، تنها به یافتن بعضی از خطاها [۱]بعد از فاز پیاده­سازی محدود می­شد و از این جهت ریسک وجود خطا در نرم­افزار، بعد از تحویل، افزایش می یافت و حتی وجود خطاها در نرم­افزار گاهی موجب شکست [۲]نرم­افزار می­شود اما منشاء بخشی از این خطاها در کجاست؟ منشاء بخشی از این خطاها در نقص­هایی[۳] است که برنامه نویسان به طور غیر عمدی و بر اثر بی دقتی وارد کد برنامه می­کنند مانند: کوچکتر از حد نیاز در نظر گرفتن طول یک آرایه، اشتباه در پرانتز گذاری عبارت­ها، استفاده­ی نادرست از عملگرهای دودویی و یکانی و …  که در صورت شناسایی محل آن در بسیاری از موارد با ایجاد یک تغییر کوچک در کد برنامه قابل اصلاح است اما در صورت عدم اصلاح وجود یک یا چند نقص در برنامه سبب ایجاد یک وضعیت درونی اشتباه در برنامه ­شود که در برخی از موارد با وارد کردن یک ورودی خاص تحریک شده و ممکن است این وضعیت درونی به یک رفتار بیرونی اشتباه تبدیل شود و حتی در برخی از موارد موجب شکست برنامه شود به عنوان مثال اگر بدن انسان را به یک برنامه­ی کامپیوتری تشبیه کنیم نقص­ها در حقیقت عوامل بیماری زا هستند که در یک بدن سالم وارد می­شوند و آن­ را تحت تصرف خود درمی­آورند، خطاها مانند یک وضعیت درونی غیر عادی در بدن مانند فشار خون بالا، وجود یک نوع باکتری در خون، بی نظمی در نبض بیمار که پزشکان با کنارهم قرار دادن این علائم تلاش می­کنند به علت بیماری پی ببرند، از کار افتادگی­ها در حقیقت علائم درونی هستند که از حالت نهان و درونی خود خارج شده به طوری که توسط بیمار نیز قابل تشخیص و بیان هستند.

حال که توانستیم مفهوم نقص، خطا و شکست را شرح دهیم، می­توانیم میان سه مفهوم تست، تست شکست و اشکال زدایی، تمایز قائل شویم وآن عبارت است از:

تست: ارزیابی نرم­افزار با استفاده از مشاهده و بررسی آن در هنگام اجرا.

تست شکست: اجرای برنامه که منجر به شکست آن می­شود.

اشکال زدایی: فرآیندی که با توجه به شکست­ها محل نقص­های مربوطه را پیدا می­کند.

در این نوشتار به شرح مختصری از تاریخچه­ ی تست به خصوص تاریخچه­ ی تست جهش خواهیم پرداخت و به شرح روش­های ممکن برای پیاده­سازی یک ابزار تست و روش پیاده سازی شده آن خواهیم­ پرداخت.

۱-۱ -تست جهش

۱-۱-۱    تئوری و نظریات

یافتن خطاها در نرم­افزار از گذشته همواره یکی از اصلی ترین دغدغه­های توسعه دهندگان نرم­افزار بوده است و تاکنون روش­هایی برای تست نرم­افزار عرضه شده است اما چگونه می­توان دریافت که تستی موفق بوده یا نه؟ آیا نبود خطا در کد برنامه، نشانه­ی موفقیت تست است یا شکست آن؟ در حقیقت، ممکن است تستی در کد برنامه خطایی را پیدا نکند به دلیل آن­که توانایی شناسایی خطا را در کد برنامه (که ممکن است ناشی از عدم دسترسی به کد خطا باشد) نداشته باشد یکی از روش­های مناسب برای پاسخ به سوالات بالا استفاده از داده­های تست مناسب است بطوری­که بتواند بیشتر انشعابات برنامه را پوشش دهد و به تست کننده این اطمینان را بدهد که در صورت وجود نقص در برنامه می­تواند آن را شناسایی کند. اما چگونه می­توان داده­های مناسب را تولید کرد؟ یکی از راه حل­های مناسب شبیه سازی، عمل تست است. به عبارت دیگر می­توانیم با قرار دادن نقص­ها در کد برنامه به طور مصنوعی که در اصطلاح جهش نامیده می­شوند یک برنامه­ی نقص­دار ایجاد کنیم، با این کار می­توانیم از نقص­دار بودن برنامه خود اطمینان حاصل کنیم و داده­های تست ورودی را به خوبی ارزیابی کنیم. ایده­ی تست جهش، برای اولین بار در یک مقاله­ی دانشجویی به نام R.lipton [3] سال ۱۹۷۱ مطرح شد اما زیر بنای تست جهش، در دهه­­ی ۷۰ با کارهای G. J. Myers [4] و R. G. Hamlet [5] شکل گرفت. ایده­ی اصلی تست جهش استفاده از نقص ­ها، برای تولید داده­های مناسب و شایسته برای تست نرم­افزار است که به طور کلی براساس دو فرضیه  استوار است:

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

۱٫Errors

۲٫Failure

[۳] Faults

80,000 ریال – خرید

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

مطالب پیشنهادی:
برچسب ها : , , , , , , , ,
برای ثبت نظر خود کلیک کنید ...

به راهنمایی نیاز دارید؟ کلیک کنید

جستجو پیشرفته

دسته‌ها

آخرین بروز رسانی

    شنبه, ۸ اردیبهشت , ۱۴۰۳
اولین پایگاه اینترنتی اشتراک و فروش فایلهای دیجیتال ایران
wpdesign Group طراحی و پشتیبانی سایت توسط digitaliran.ir صورت گرفته است
تمامی حقوق برایpayandaneshjo.irمحفوظ می باشد.