پیشینه تحقیق تست جهش و عملگرها برای ایجاد جهش و روش های حل آن دارای ۶۱ صفحه می باشد فایل پیشینه تحقیق به صورت ورد 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] شکل گرفت. ایدهی اصلی تست جهش استفاده از نقص ها، برای تولید دادههای مناسب و شایسته برای تست نرمافزار است که به طور کلی براساس دو فرضیه استوار است:
برنامه نویسان لایق: از آنجا که برنامه نویسان، ماشین نیستند برنامهای تولید میکنند که نزدیک به برنامهی صحیح است. به عبارت دیگر برنامهی تولید شده ممکن است حاوی نقصهایی باشد که برنامه نویسان، ناخواسته در کد آن، وارد کردهاند. البته در اکثر موارد به دلیل آنکه نرمافزار تولید شده نزدیک به نرمافزار صحیح است، نقصها به صورت ساده است طوریکه با یک تغییر کوچک در کد برنامه قابل اصلاح هستند.
[۳] Faults
تمامی فایل های پیشینه تحقیق و پرسشنامه و مقالات مربوطه به صورت فایل دنلودی می باشند و شما به محض پرداخت آنلاین مبلغ همان لحظه قادر به دریافت فایل خواهید بود. این عملیات کاملاً خودکار بوده و توسط سیستم انجام می پذیرد. جهت پرداخت مبلغ شما به درگاه پرداخت یکی از بانک ها منتقل خواهید شد، برای پرداخت آنلاین از درگاه بانک این بانک ها، حتماً نیاز نیست که شما شماره کارت همان بانک را داشته باشید و بلکه شما میتوانید از طریق همه کارت های عضو شبکه بانکی، مبلغ را پرداخت نمایید.
ارسال نظر