SVR

درج عملگرهای یگانی (Unary operator insertion)

UOI

اکنون برای شرح دقیق تر موضوع عملگرهای ABS، UOI، ROR، AOR وLOR ، که برای زبان جاوا طراحی شده است را شرح می­دهیم [۱]:

( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )

ABS قرار دادن مقدار مطلق: هر عبارت و زیر عبارت محاسباتی توسط سه تابع abs()، negAbs() و failOnZero() تغییر داده می­ شود. ABS مقدار مطلق عدد را برمی­گرداند، negAbs مقدار منفی یک عدد مطلق را برمی­گرداند، failOnZero بررسی می­ کند که آیا مقدار عبارت برابر با صفر است یا خیر، به عنوان مثال: عبارت X=3 * a; را در نظر بگیرید اگر عملگر بالا را روی آن اعمال کنیم بدین شکل می­ شود:
X=3*abs(a);
X=3*-abs(a);
X=3* failOnZero(a);
UOI عملگر درج یگانی: هر عملگر یگانی مانند +، -،! ، ~، قبل از هر عبارت و با توجه به نوع عبارت، درج می­ شود به عنوان مثال: عبارت X=3 * a; در نظر بگیرید:
X=3*+a;
X=3*-a;
X=+3*a;
X=-3*a;
X=!3*a;
همان­طور که مشاهده می­کنید در جهش آخر، به دلیل عدم تطبیق نوع عملگر و عبارت، خطا رخ داده است.
ROR عملگر جا به ­جایی ارتباط: هرکدام از عملگرهای رابطه­ای () با یکدیگر جابه­جا شده و یا با بهره گرفتن از دو تابع trueOP() وfalseOP() (که تنها مقدار “False”و “True” را درون عبارت شرط قرار می­ دهند)مقدار خروجی­ را تغییر می­ دهند به عنوان مثال: جهش­های عبارت شرطی if(m>n) عبارتند از:
If(m>=n)
if(m<n)
if(m<=n)
if(m==n)
if(m!=n)
if(false)
if(true)
AOR جا به ­جایی عملگرهای محاسباتی: جا به ­جایی هر یک از عملگرهای محاسباتی (*،**،/، -،+ و% ) و یا با بهره گرفتن از دو عملگر rightOp و LeftOp(که به ترتیب عملوند سمت راست یا چپ را حذف می­ کنند) می­توان در کد برنامه تغییر ایجاد کرد. به عنوان مثال: جهش­های عبارت X=a+b; را در نظر بگیرید
X=a-b;
X=a*b;
X=a/b;
X=a**b;
X=a;
X=b;
X=a%b;
LOR جایگزینی عملگر منطقی: جا به ­جایی هر کدام از نشانه­ های عملگرهای منطقی (&، |، ^) و یا هرکدام از عملگرهای rightOp و LeftOpمی­تواند در کد برنامه، تغییر ایجاد کند. به عنوان مثال جهش­های عبارت x=m & n را در نظر بگیرید:
x=m|n;
x=m^n;
x=m;
x=n;
عملگرهای سطح کلاس
در برنامه نویسی شئ­گرا خواص جدیدی نسبت به برنامه ­های سنتی همچون کپسوله سازی، ارث بری و چند ریختی وجود دارد، این ویژگی­ها زمینه­ جدیدی برای تست جهش ایجاد می­ کند در تست واحد و تست یکپارچه سازی به چهار سطح تقسیم می­شوند:

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


فرم در حال بارگذاری ...