nx دارای 44 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد nx کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز nx2 آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ريختگي احتمالي در متون زير ،دليل ان کپي کردن اين مطالب از داخل فایل ورد مي باشد و در فايل اصلي nx،به هيچ وجه بهم ريختگي وجود ندارد
بخشی از متن nx :
چرخش آلفا ـ امگا
آلفا و امگا دو وضعیت نگاه دارنده مكان میباشند كه چرخش زندگی هر شئ را به هم میكند. (وضعیتهای آلفا و امگا ـ بخش 7). وضعیت آلفا ابزار شئ را قبل از اینكه ساخته شود نشان و ارائه میدهد. وضعیت امگا لاشه یك شئ را بعد از اینكه از بین رفت یا اینكه خراب شد نشان میدهد. هیچ آزمایش و تستی برای اشیاء در این وضعیتها انجام نشده است. چرخش آلفا ـ امگا شئ را تحت آزمایش از وضعیت آلفا به وضعیت امگا با فرستادن پیام با هر روش حداقل یك بار میبرد.
مجموعه تست چرخش آلفا ـ امگا نشان می دهد كه همه روشها در یك گروه به طور جزئی قابل عمل میباشند. گذشتن این چرخه به معنی این است كه گروه تحت تست آماده آزمایشات و تستهای پر هزینهتر میباشد. عناصر چرخه آلفا ـ امگا در (گراهام 94+، اوربك 94، فایر اسمیت 95، و فایر اسمیت 96) فهرست شده است. یك مجموعه تست آلفا ـ امگا ابتدا روشهای ساده را امتحان میكند. هیچ كوششی برای به دست آوردن پوشش جملهای یا امتحان كردن
همه مسئولیتها انجام نمیگیرد. این كوشش بعداً انجام میشود، بعد از اینكه گروه به اندازه كافی و خوب به منظور حمایت تستهای وسیعتر، كار كند. یك چرخه آلفا ـ امگا شش مرحله اصلی دارد. تست كننده یك پیام به هر یك از روشهای زیر در ترتیب تعیین شده میفرستد.1 روش جدید یا سازنده2 روش دست یابنده3 روش بولین (شرطی)4 روش اصلاح كننده (تغییر دهنده)
5 روش تكرار كننده6 روش از بین برنده و خراب كنندهدرون هر یك از این مرحلهها، روشهای خصوصی اول امتحان میشود كه به وسیله روشهای حفاظت شده و سرانجام روشهای عمومی دنبال میشود. از آنجا كه روشهای عمومی به طور نمونه بستگی به روشهای حفاظت شده و خصوصی دارد، هنگام دخالت یك روش محافظت شده با یك تست روش عمومی به وجو میآید. امتحان كردن روشهای عمومی بعد از روشهای محافظت شده و خصوصی میتواند مانع بعضی از این موانع شود. ترتیب دوباره توالی پایه به منظور همراهی كردن وابستگیهای ویژه گروهی دیگر ممكن است لازم و ضروری باشد. در كاملسازی و تركیب یك طرفه فرض میشود كه همه یا بیشتر گروه توسعه یافته است. هنگامی كه یك گروه رشد پیدا میكند همان روش دنبال میشود. تست كننده با رشد عملكردی گروه به طور صفوار افزایش پیدا میكند. پیامهای آزمایشی ممكن است به حركت كننده مانند روشهایی كه به گروه اضافه
میشود، اضافه شود. اگر فاصله گروهی كامل توسعه پیدا كند اما بعضی از روشها به عنوان شاخههای درخت اجرا شود، پس پیامهای تستی مطابق ممكن است شاخه درخت را امتحان كند یا اینكه تا زمان كامل شدن شاخه درخت به تأخیر بیفتد. چرخه آلفا ـ امگا ممكن است یك روش مناسب برای روشهای افزایشی باشد و روشها میتوانند در ترتیب آلفا ـ امگا طراحی شوند. اول سازندهها، بعد دستیابندهها، بعد بولینها، و غیره. یك تست كننده كه این چرخه را اجرا میكند اسكلتی را ایجاد میكند كه به آسانی میتواند با موارد آزمایشی بر پایه الگو توسعه پیدا كند
.مدلهای تستی بر پایه اجرانقش پوشش قانونی: یك مدل پوشش قانونی شامل قسمتهایی از اجرا میشود كه باید برای برآوردن مدل تستی بر پایه اجرا برآورده شود. پوشش به عنوان یك متریك، درصدی از این قسمتهای آزمایش شده به وسیله یك مجموعه تستی میباشد. برای مثال هر مجموعه تستی كه باع
ث میشود هر زیرحساب حداقل یكبار امتحان شود، 100 درصد پوشش زیرحسابی یا به طور ساده پوشش زیرحساب تهیه میكند. صدها پوششی از اواخر 1960 استفاده، نشر و تجزیه و تحلی
ل شد. تقریباً همه تستهای بر پایه اجرای حمایتی، به استثنای نمودار جریان گروهی، هیچ مدل پوششی قانونی جدید مهمی برای اهداف سازگار با سافتور پیشنهاد یا توسعه نشده است. مدلهای پوششی و قانونی دامنه روش در این جا مرور میشود. و هر كدام به وسیله ابزار پوششی در دسترس تجاری حمایت میشوند كه این برای شش زبان یا شرح دادن مفهوم ت
ستی مهم میباشد. بعضی از پیشنهادات پوششی برای اهداف سازگار با قوانین در بخش 4-4 (مدلهای پوششی برای اهداف سازگار با تست) خلاصهمیشود. در روش تستینگ، پوشش به وسیله معیار كفایت تعریف میشود كه این عناصر یك IVI تمرین شده به وسیله یك استراتژی تستی را تعیین میكند. (ویوكر 88). یك مجموعه تستی اگر همه عناصر امتحان شده، امتحان شده باشند، كافی میباشد. استراتژی تستی X گفته میشود كه زیرمجموعه استراتژی y باشد اگر همه عناصری كه y امتحان میكند، همچین به وسیله X نیز امتحان شوند. برای مثال گفته میشود كه پوشش شاخهای زیرمجموعه پوشش زیرحسابی (جملهای) باشد. زیرا امتحان همه شاخهها ضرورتاً همه زیرحساب را امتحان میكند. سلسلهبندی زیر مجموعهای درجهبندی تحلیلی پوششها میباشد. هیچ نتایج قابل عمومی شدهای درباره تأثیرات خرابی پیدا شده نسبی وجود ندارد كه به درجهبندی ارتباط داشته باشد. زیرا هیچ مورد جامعی در مورد شمار و انواع باگهایی كه باقی میمانند نمیتواند اشاره شود و رسیدن به یك هدف پوشیده چیزی مانند تناسب برای استفاده را نمیرساند. یك پوشش پائینتر در این سلسله بندی بر این دلالت نمیكند كه یك معیار بالاتر ضرورتاً برای پیدا كردن نتایج باگی برای یك استفاده خاص و بالعكس ضروری میباشد. برای دلایل شرح داده شده در بخش 9، نقش مناسب تجزیه و تحلیل پوشش قانونی برای تستهای مسئولیتی، ایجاد یك مدل تكمیلی و تركیبی میباشد. از یك مدل پوششی كدی به عنوان یك مدل تستی استفاده نكنید. برای طراحی كردن مجموعه تستی به مدلهای پوششی كدی تكیه نكنید و از تستیهای مسئولیتی و گزارشات پوششی برای تجزیه و تحلیل كفایت مجموعه تستی استفاده كنید. پوشاندن بعضی از جنبههای یك روش یا گروه هرگز ضمانتی برای سافتور بدون باگ نمیباشد. با وجود این، تجزیه و تحلیل كدی و پوشش كدی نقش مهمی در نتایج سازگار با تست دارد. گزارشات پوششی میتواند به مجموعه تستی ناكافی اشاره كند. گزارشات پوششی ممكن است وجود شگفتیهد را اشاره كند. گزارشهای پوششی میتواند به تعیین ساختهای اجرایی كه به طرحی تستی بر پایه اجرا یا رشد توسعه شاخهها و حركتكنندههای ویژه نیاز دارند، كمك میكند، شاید بیشترین استفاده مهم تحلیل پوششی ملایم كردن نقاط كور غیر قابل اجتناب
میباشد. هر دو تست كنندگان غیر وابسته و توسعهدهنگان به طور مداوم قادر به طرح و تدبیر مجموعه تستهای پوششی بالا تنها به وسیله تجزیه و تحلیل وظیفه نیستند. مجومعههای تستی اگرچه اغلب كامل به نظر میرسند، اما به بیشتر از 60 درصد جمله یا پوشش شاخه ای نمیرسند. برای مثال، یك مطالعه انجام شده به وسیله یك فروشنده یك آنالیز كننده پوششی C++ رایج نشان داده است كه مجموعه تستهای تابعی وسیع انجام شده برای یك استفاده هوا فضایی تنها 40 درصد شاخههای عضو برد تابع را آزمایش كرده است. هورگان تجربه و آزمایشی را توضیح میدهد كه همین تأثیرات مشابه را نشان میدهد (هورگان 96+). این آزمایش دو برنامه سودمند استفاده شده به طور وسیع پیچیده انجام شده است. TEX و AWK. این برنامهها به
وسیله اشكال راهنما در علم كامپیوتر و برنامهنویسی توسعه یافته است (به ترتیب دونالد توت و پرین كرینگان) و برای سالهای زیادی به وسیله متقاضیان استفاده شده است. كد منبعی C و مجموعه تستها برای شش برنامه به طور رایگان در دسترس میباشند. اگر چه این مجموعه تستها آنالیز دقیقی از عملكرد را انعكاس میدهد، به طور آشكار به وسیله تحلیل پوششی واجد شرایط میشوند. هورگان هر دو سیستم را وسیله قرار و مجموعه تستهای منتشر شده را اجرا كرد. نتایج پوشیده در جدول 2-10 نشان داده میشود. هیچكدام از مجموعه تستها به پوش
ش حكمی نرسیدهاند و تنها در حدود دو سوم شاخه پوشیده شدهاند. (مراجعه شود به بخش پوشش جریان دیتا در صفحه 384 تا 389 برای توضیح استفاده پوشش C و P). در سیستمهای بزرگ پوشش صد درصدی اغلب به خاطر راههای غیر عملی، كد مرده، و جابجایی استثنا غیر قابل دسترسی میباشد. تا 10 تا 15 درصد اجازه برای چنین ناهمسانی در سیستمهای پیچیده وجود دارد (در سیستمهای پیچیده بزرك، میانگین 80 تا 85 درصد پوشش شاخهای به دست آورده میشود. ]گردی 92، 171[) .
جدول 1-1بنابراین حتی با اجازه غیرعملی و سوء استفاده مهم، مجموعه تستهای عملكردی منتشر شده همه جنبههای كد را آزمایش نمیكنند. این نتایج به طور ضعیف روی توانایی توتف كنندگان یا هر آزمایش كننده یا توسعه دهنده دیگری منعكس نمیشود، اما نسبتاً نشان میدهد كه چقدر تست كردن سیستمهای پیچیده علاقه آكادمیكی میباشد. منبعی گروهی ابزارهای پوششی كدی به وسیله تجزیه كردن آن برای القا كد شیاری، كدگذاری میشود. زمانی كه مقصد گروه ابراز شده اجرا میشود، حكمهای شیاری القا شده تولید یك فایل شیاری میكند. بعد از اینكه تست اجرا شده، فایل شیاری برای تولید گزارش پوششی پردازش میشود گزارش پوشیده نشان می دهد كه كدام قسمت گروه ابراز شده برای همه اجراهای تستی كه به یك فایل پوششی وارد شدهاند، اجرا میشود. بخشهای ابراز شده به وسیله مدل پوششی حفاظت شده با ابزار پوششی تعیین میشوند. همه ابزار پوششی در دسترس از نظر تجاری دارای ارزش شاخههای و بخشهای حساب شده در دامنه روشی میباشد. بعضی از ابرازها پیامهای سرورـ مراجع را شیاربندی میكنند و از مدلهای پوششی اضافی حمایت میكنند، بر حسب انتشار این كتاب، هیچ ابزاری كه بتواند تحلیل پوششی را در دامنه گروهی یا دامنه گروهی صاف شده حمایت كند، در دسترس نمیباشد.اگرچه گروه بزرگ، گروههای تحت تست ابزاریابی داشتهاند، تحلیل پوششی به ما
مطلب كمی در مورد خصوصیاتی توارثی آزمایش شده یا نشده، اگر چیزی وجود داشته باشد، میگوید. روشهای انتزاعی (یك فاصله بدون اجرا) دارای هیچ قسمتی نمیباشد و در اینجا، بعضی از ابزار 5 درصد پوشش و بقیه 100 درصد پوشش را گزارش میدهند. یك تحلیلگر پوششی یك قسمت ضروری ابزار كار امتحان كننده و تستكننده میباشد. ابزار دستی خطاپذیر و وقیتگی
ر میباشند. در مقابل ابزار اتوماتیك و ساختن دوباره معمولاً چند ثانیه طول می كشد. ابزارآرایی به طور نمونه روی یك كپی از منابع گروهی تحت تست انجام میشود. تغییرات اشكالزدائی برای كدگذاری غیر ابزار شده انجام میشود. یك كپی از این منبع ابزاریابی میشود و مجموعه تستی دوباره اجرا میشود. كد منبعی ابزار شده معمولاً دور ریخته میشود یا اینكه آرشیو میشود.پوشش كدی FAQقبل از بحث در مورد اینكه مدلهای پوششی برای شش زبان به وسیله آنالیزگرهای پوششی در دسترس به طور تجاری حمایت شدهاند، اشارات اصلی كمی باید در مورد پوشش انجام شود. جزئیات معیار پوشش در بخشهای زیر آمده است.آیا پوشش 100 درصدی همان پوشش جامع و فراگیر میباشد؟نه، تست جامع به جز موارد جزئی غیر ممكن میباشد. یك مجموعه تستی جامع نیاز دارد كه همه راهها برای واردات ممكن و وضعیتها امتحان شود. اگر حلفهها موجود باشد، هر تكرار میتواند به عنوان مسیر جدایی در نظر گرفته شود، بنابراین شمار مسیرها به طور نجومی افزایش پیدا میكنند و زیاد میشود، حتی در برنامههای ساده (مراجعه شود به بخش 3-3 محدودیتهای آزمایش) . اندازههای پوششی نمونه بر پایه زیرمجموعههای كوچك آزمایش جامع میباشد.آیا پوشش شاخهای همان پوشش مسیری میباشد؟نه، یك مجموعه تستی كه هر شاخه را یك مرتبه آزمایش میكند، ضمانت نمیكند كه همه مسیرهای ورودی و خروجی مورد امتحان واقع شوند. این به معنی آن نیست كه همه مسیرهای ممكن در وجود تكرار، مورد امتحان واقع شدهاند. شمار مسیرهای ورودی ـ خروجی مورد نیاز برای پوشش شاخهای معمولاً در مقایسه با شمار كلی مسیرهای ورودی ـ خروجی كوچك میباشند. در چند موارد ویژه، شاخه و پوشش مسیر یكی می باشند. بعد به قسمت پوشش شاخهای در این بخش مراجعه شود.آیا پوشش حكمی یا پوشش بر پایه مسیر همان پوشش مسیری میباشد؟نه، مراجعه شود به جواب قبل. آیا پوشش مسیری میتواند به دست آورده شود؟شاید، پوشش مسیری نیاز به این دارد كه:1 شما وقت كافی برای تعیین و تست همه مسیرهای ورودی ـ خروجی داشته باشد (رو
شی تنها با 10ها حكم كه میتواند صدها مسیر داشته باشد).2 و با هر حلقه به عنوان بخش مجزایی با چندین موارد ویژه برخورد كنید.3 همه راهها و مسیرها عملی باشند.آیا هر مسیر در یك نمودار جریانی قابل تست میباشد؟بستگی دارد. در كدهای خوب سازمان یافته، اكثر مسیرهای ورود و خروج میتوانند اجرا شوند. اینكه ما میتوانیم مسیری را روی نمودار جریان دنبال كنیم به این معنی نمیباشد كه توال
ی تطابقی حكمها آسان میباشد. مشكل عملی بودن مسیر در بخش 3-2-10، حساسیت مسیر بحث میشود.آیا كمتراز 100 درصد پوشش قابل قبول است؟بستگی دارد. مسیرهای غیر عملی، كدهای مرده، و جابجایی استثنا میتواند مانع 100 درصد پوشش از هر نوعی شوند. 10 تا 15 درصد، اجازه نمونه برای چنین سیستمهای پیچیدهای میباشد. آیا من میتوانم در یك آزمایش دارای اطمینان خاطر بالایی باشم اگر پوشش را اندازه نگیرم؟نه. از دست دادن یك شاخه یا قسمت آسان میباشد حتی اگر شما یك مجموعه تستی وظیفهای را به طور شیطانی و زیركانه توسعه دهید (مراجعه شود به جدول 2-10 و بحث آزمایش هورگان). آیا دسترسی به پوشش صد درصد برای X و گذراندن همه تستها به این معنی است كه من دارای كد بدون اشكال و گیر می باشم؟نه، خیلی از اشكال و گیرها میتوانند از مجموعه تست پنهان شوند كه پوشش بالایی را كسب میكنند. مراجعه شود به صفحات 396 تا 399، یك بار دیگر با احساس، قسمت تاریك پوشش كدی.چه موقع میتوانم تست كردن را متوقف كنم؟كمترین پوشش كدی توصیه شده برای هر الگوی طراحی آزمایش در بخش معیار خروجی مطابقش داده شده است. در عمل، چند وضعیت غیر معمول ممكن است توسعه پیدا كند. در لیست پائین، پوشش به پوشش صد درصدی برای همه مدلهای آزمایشی انتخاب اشاره میكند كه این در پوشش شاخهای دامنه میباشد. پوشش به دست آورده میشود، اما بعضی از تست ها انجام نمیشود. كار تا زمانی كه همه تستها انجام نشود و پوشش به دست نیاید، انجام نمیشود. بالا بردن IUT و آزاد كردن كد بدون تصحیح همه اشكال قابل قبول میباشد اگر:1 اشكال شناخته شده غیر انتقادی باشند (اشتباهات آرایشی در فرمت كردن GUI، برای مثال)2 اگر شما یك لیست اشكال شناخته شده را با مستندسازی آزاد سازی شامل كنید.همه تستها انجام شود، اما پوشش به دست آورده نشود. (بخش 3-2-10 حساسیت مسیر) یا اینكه قسمتهای اضافی گران باشد. پوشش به دست آورده نشود و بعضی از تستها انجام نشود. شما ممكن است در موقعیتی باشید كه نتوانید كد را عوض كنید. بعضی از اشكال میتوانند از پوشش جلوگیری كنند. اگر شما نتوانید كد را عوض كنید، پس شما نمیتوانید پوشش دست پیدا كند. سعی كنید موارد تستی را پیدا كنید كه اشكال و گیرها را دور خواهد زد (نادیده خواهد انگاشت) و پوشش بالاتری تولید كند. پوشش به دست آورده میشود. همه تستها انجام میشود یا اینكه شما تصمیم گرفتهاید پوشش اضافی ضمانت نشود یا اینكه عملی نباشد. شما تقریباً انجام دادهاید. این ابزارسازی كه احتیاج به اندازهگیری پوشش دارد میتواند گاهی اوقات باعث شكستهای ساختگی شود. مطمئن باشید كه همه ثابتهای اشكالی واقع كار میكند. همیشه برای ساختن اجرای دوباره نهایی مجموعه تست پوششی كلی روی یك اجرای غیر ابزاری برنامهریزی كنید. پوشش به دست میآید و همه تستها روی كد غیر ابزاری انجام میشود. تبریك ـ شما یك تست مناسب را اجرا كرده اید.روش مدلها پوشش كدی دامنهاینمودار جریان كنترلی
یك اصطلاح و عبارت شرطی شامل یك وضعیت یا وضعیتهایی میشود كه درست یا غلط را ارزیابی میكند. شرطی ها در حكم های كنترلی استفاده میشوند.و مانند اگر. یك شرطیا هر عمل كننده بولینی در یك عبارت ظرطی تطابق میكند. یك شرظ با چند وضعیت و شرطف یك شرط تركیبی نامیده میشود. ارزیابی عبارت شرطی به طور نمونه منجر به انتقال كنترل به یكی از چندین بخشها مجزای كدی میشود. یك بخش مجزا یك یا دو جمله دائمی لغوی با هیچ جمله شرطی اجرا شده میباشد. یعنی اینكه به محضش اینكه یك بخش مجزا وارد شدف همه جملات در بخش مجزا اجرا خواهند شد(این تداوم محیط با وقت طی شده را نشان میدهد ـ ما در مورد
شكستهای نیرو یا مشكلات فاجعهبار مشابه نگران نیستیم. آخرین جمله در یك بخش مجزا باید شرط، یك كنترل حلقهای، خروجی روش دیگری باشد. آخرین قسمت مجزا شامل شرط یا عبارت خروجی میباشد كه قطعه دیگری را انتخاب میكند اما شامل كد قطعه بعدی نمیشود. شكل 2-10 قسمت میانگیر دایرهای گروه جواوا را نشان میدهد. یك میانگیر داره وار مانند یك حلقه ضبط كار میكند. پیامها به طور متوالی تا زمانی كه حد میانگیر به دست آید، ضبط می شوند. سپس پیام بعدی روی قدیمیترین پیام نوشته میشود. میانگیر (بافر) میتواند شمار ثابتی از بیشترین پیام های اخیر را نگه دارد. روش Display lastMsy، اخیرترین n پیام اضافه شده را به نمایش می گذارد. اگر میانگیر خالی باشدف هیچ پیامی اجرا نمیشود. اگر n بزرگتر شمار پیامهای در دسترس باشد، همه پیامها به نمایش گذارده می شوند. در این روش فرض میشود كه اشاره گر به آخرینت پیام به عنوان پیامهایی كه به میانگیر میشود، نگهداری میشود. كد لازم برای Display lastMsy (اجرای آخرین پیام) و قسمت از میانگیر دایرهای شكل گروه در شكل 2-10 به نمایش كشیده شده است.
جدول 2برچسبهای قطعات مطابق برچسبهای گره در شكل 3-10 می اشد. همه مدلهای پوشیده كدی به طور نمونه از بعضی اشكال نمودار جریان كنترل استفاده میكنند. (مبحث 77). این گراف نشان می دهد كه كدام قطعات برنامه ای ممكن است به وسیله دیگران دنبال شود شكل 3-10 نمودار جریان كنترلی را برای Display lastMsy نشان میدهد.
یك قطعه به وسیله یك گره در یك نمودار كنترلی (یك دایره) نشان داده میش ود. گرهها میتوانند به وسیله هر قرارداد مفیدی نامگذاری یا شمارش شوند. حروف بزرگك در اینجا استفاده می شوند. انتقال شرطی كنترل شاخه یا انشعاب میباشد. یك انشعاب به وسیله یك لبه برونرو (ورودی) در یك نمودا ركنترلی نشان داده میشود. یك لبه مستقیم ()پیكان) نشان مثیدهد كه قطعه دیگری میتواند از قطعه دیگری به دست آید. پیكان با هیج حكم ویژهای تطبیق نمیكند. نقطه ورودی یك روش به وسیله گره ورودی نشان داده میشودف كه یك گره بدون لبههای درون سوی میباشد. یك روش متشكل از قسمتهایی است كه به وسیله پیكانها به هم مربوط می شوند.و یك مسی
ر ورودی ت خروجی ـ مسیر یاست كه از گره ورودی شروع میشود و به گره خروجی ختم میشود. یك مسیر به وسیله گرههایی كه مسیر را تشكیل میدهند ساخته شده است. حلقهها به وسیله قطعاتیدرون پرانتزها نمایش داده می شوند و به وسیله ستارهای كه نشان می دهد این گروه ممكن است از صفر تا nبار تكرار شود، دنبال می شوند. این رشتهها اصطلاحات و عبارت های مسیری میباشند (بیزر 90). مسیرها ممكن است از طریق گراف كنترلی در خیلی از روشها دنبال شوند. با در نظر گرفتن تكرار،شمار مسیرهای ورود و خروج برای اهداف عملی نامحدود میشود. (به بخش 3-3 محدودیتهای آزمایش مراجعه شود)
همه زبانهای برنامهنویسی موجود در این كتاب از شرطهای تركیبی حمایت میكنند. برای مثال به هر وضعیت در سه شرط تركیبی Display lastMsy به عنوان یك بخش مجزا در شكل 7-10 نشان داده میشود. جعبههای انداخته شده در اطراف گره ها در شكل 3-10 دلالت می كند كه ممكن است آنها در همان حكم اتفاق بیفتند. شرطهای تركیبی باید به طور جداگانه مدلسازی شوند. همه تركیبات غلط ـ صحیح در یك شرط تركیبی مییتوانند آنالیز شوند و تآثیرات ارزیابی بولینی محیط كوچك واضح و روشن میشود. C++، جاوا، و C عینی از معانی C استفاده میكنند. ارزیابی بولینی محیط كوچك برای همه اصطلاحات بولینی چند شرطی به كار میرود. ارزیبای اصطلاحی زمانی كه آپوند (عملوند) سمت چپ یك اپراتور || درست میباشد، متوقف میشود. ارزیابی زمانی كه آپرند یك اپراتور && غلط میباشد، متوقف میشود و انشعاب غلط گرفته میشود. برای مثال اگر زمانی كه X صفر نباشد، y/x ارزیابی نمیشود و اجرا حكم به حكم بدی ادامه پیدا می كند. این روش از تقسیم به وسیله صفر جلوگیری میكند. زمانی كه X صفر میباشد. پیام Foo تنهای زمانی
فرستاده میشود كه هر دو قسمت شرط درست باشد. Adu 95 به صورت اتوماتیك تولید ارزیابی محیط كوچك نمیكند، اما ایجاد اپراتورهای محیط كوتاه و “سپس” و ” اگر نه” میكند. این عملگرها ترتیب ارزیابی و پایان را تعیین میكنند. اپرند سمت راست عملگر “و سپس” تنها زمانیكه آپرند در سمت چپ درست باشد، ارزیابی میشود. ارزیابی در اپرند سمت چپ غلط اولیه تمام میشود، و انشعاب غلط گرفته میشود. اپرند سمت راست “و اگرنه” زمانی كه اپرند سمت چپ غلط باشد، ارزیابی میشود. ارزیابی در اولین اپرند سمت چپ صحیح پایان میباید و اشنعاب درست گرفته میشود. برای مثال:
واضح است كه هر ارزیابی محیط كوتاهی ارزیابی میشود. افیل ایجاد عملگرهای ” و سپس”
و ” و اگرنه” میكند، كه معانی Ada را دنبال میكند. كلمات كلیدی تحویل شده توانایی مشابهی را نشان میدهد. نشان میدهد اختلاطها ارزیابی بولینی محیطی كوتاهی را با پیامهای بلوك شده اجرا میكنند و: یك بلوك و یا: و یك بلوك پیامها تنها میتوانند به اپرند بولینی فرستاده شوند. زمانی كه دریافت كننده و : یك بلوك درست باشد، یك بلوك ارزیابی میشود و به علاوه دریافت كننده میشود. زمانی كه دریافت كننده غلط باشد، یك بلوك ارزیابی نمیشود و عبارت به عنوان درست ارزیابی میشود. زمانی كه دریافت دریافت كننده غلط باشد، یك بلوك ارزیابی میشود و با غلط ارزیابی میشود.
اگر X درست باشد.
پوشش جملهایپوشش جمله ای زمانی به دست میآید كه همه جملات در یك روش حداقل یك بار اجرا شوند. این به عنوان پوشش CL، پوشش خطی، پوشش قطعهای یا پوشش بلوكی شناخته میشود. پوشش بلوكی پایه و قطعهای، قطعات را به جای حكمهای شخصی و انفرادی محاسبه میكنند. استفاده قطعات به عنوان واحد از بعضی از تحریفهای گزارش شده اجتناب میكند. فرض كنید كه یك روش دو قطعه داشته باشد، P و Q. Pدارای یك حكم میباشد و Q دارای 9 حكم. 10 درصد پوشش
حكمی به وسیله اجرای P و 90 درصد پوشش حكمی به وسیله Q به دست آورده میشود. اگرچه قسمت جملات تمرین شده درست میباشد، شماره ها شمار تستهای اضافی مورد نیاز را منعكس نمیكنند. تحت پوشش قطعهای، 50 درصد پوشش برای امتحان كردن هر قطعه گزارش میشود با اشاره به این كه مجموعه تستی به طور ناقص برای به دست آوردن پوشش قطعه ای میباشد. اگر ما بتوانیم یك مسیر ورودی خروجی پیدا كنیم كه شامل همه قطعات بشود، ما میتوانیم 100 درصد پوشش حكمی با یك مورد تستی ساده تشخیص دهیم (هیچ ضمانتی وجود ندارد كه چنین مسیر وجود خواهد داشت) مسیر 12 D
isplay lastMsy، ABC(DEF)*DGH(IGK)*IL چنین مسیر میباشد. حلقهها نیاز دارند كه به اندازه كافی برای به دست آوردن همه حكم ها در بدنه حلقه، تكرار شوند. سادگی پوشش حكمی جذاب و گیرا میباشد. اما اشكال ظریف و پر سر و صدا میتوانند از مجموعه تستی كه این نوع پوشش را به دست میآورد، پنهان شوند. فرض كنید كه شرط در گروه B به طور غلط به عنوان محاسبهگر msg كدگذاریس شده است. . هر مجموعه تستی كه محاسبهگر پیامی را مجبور به صفر بو.دن حداقل یكبار نكند، این خطا را از دست خواهد داد. شمار زیادی از مجموعههای تستی میتوانند پوشش جملهای را بدون دیدن این وضعیت تهیه كنند. از آنجا كه همه جملات در بدنه حلقه گذرگاه تك اشكالهای كنترلی حلقهای رایج را آشكار كند. پوشش جملهای به طور نمونه بدون امتحان كردن هم تركیبات صحیح ـ غلط یك شرط ساده میتواند به وجود آید. با بعضی از ساختارهای كدی، پوشسش جمله ای و همچنین پوشش شاخهای را به دست میآورد.
برای مثال ما باید هر دو شاخهها را برای به دست آوردن همه جملات در FOO بگیریم. با وجود این، همه حكم ها در یك nule else، Until loop و case بدون ساختارهای عیوبی میتوانند بدون امتحان كردن همه شعبه ها به دست آورده شوند. شكل 8-10 این موقعیتها را نشان میدهند. با یك nule else مسیر ABC پوشش حكمی را بدون امتحان كردن شاخه روی مسیر AC نشان میدهد. برای مثال پوشش حكمی FOO به وسیله قرار دادن x و y به طور مساوی به تست آورده میشود. زمانی كه موقعیت غلط میباشد، كد تولید یك از كار افتادگی غلط، و اشاره گر غلط می كند. در
until loop مسیر AB تولید پوشش حكمی بدون انجام تكرارهای حلقهای میكند. در ساختار case بدون عیب پوشش جمله ای به وسیله یك مجموعه تستی كه همه مسیرهای AB، ACD، ACEF و ACEFG امتحان میكند، تهیه میشود. شاخه QI از آخرین شرط حذف میشود. همه این مثال هاساختارهای برنامهنویسی سازمان یافتنی قانونی می باشند كه میتواند اشكال را از مجموعه تستی پوشش حكمی پنهان كند. ساختن یك case برای كمتر از 100 درصد پوشش جملهای
سخت میباشد. به طور وضوح، اگر یك گیر در یك حكم وجود داشته باشد و آن حكم اجرا نشود، ما هیچ برای آشكار كردن گیر و اشكال نداریم. پوشش حكمی كمترین مورد نیاز به وسیله معیارهای
مهندسی سافتور IEEE میباشد. [IEE E 1008] و استاندارد به ثبت رسیده IBM برا ی مدت 30 سال بود. همان طور كه مثالهای قبل نشان داد، این یك معیار ضعیف میباشد و به عنوان خالیترین مینیمم میباشد. پوشش شاخهای (انشعابی) پوشش شاخهای زمانی كه هر مسیر از یك گره حداقل یك بار به وسیله مجموعه تستی اجرا میشود، به دست آورده میشود.این به عنوان پوشش حكمی، پوشش لبهای، یا پوشش C2 شناخته میشود. پوشش شاخهای روی پوشش حكمی به وسیله نیاز به اینكه هر شاخه حداقل یك مرتبه گرفته میشود، پیشرفت پیدا میكند. (حداقل یك ارزیابی درست و یك ارزیابی غلط). این شرط تركیبی را به عنوان یك حكم كلی در نظر می گیرد. یك عبارت شرطی با n وضعیت، بیشترین تركیبات 2n نتایج صحیح ـ غلط دارد. پوشش شاخهای نیاز به این داردكه تنها 2 تا آزمایش شود. ما برای مسیر گرفته شده از شرط اعتبار دریافت میكنیم و مهم نیست كه كدام وضعیت به شاخه ختم میشود. نمودار پوشش شاخهای Display last msg مانند شكل 7-10 به نظر میرسد. با گرههای تركیبی {A,B}، {D,E} و {I,J} طوری رفتار میشود كه انگار به ترتیب گرههای X، y و z ساده میباشند. چند مسیر باید برای كسب پوشش شاخهای پوشش داده شود؟با هیچ حلقه و گرههای شاخهای 2 مسیر D، پوشش شاخهای نیاز به مسیرهای بیشتر از D+1 ندارد. این همچنین برای گرافهای با حلقه در مسبرهای كمتر از D+1 ممكن است به دست آورده شود. برای مثال در Display last msg پوشش شاخهای میتواند در 3 مسیر به دست آورده شود. . در این مثال ما می توانیم شاخه ورودی حلقه و شاخه خروجی حلقه را روی یك مسیر بگیریم. مانند پوشش جملهای (حكمی) پوشش شاخهای هیچ محدودیت ویژهای را روی شمار تكرارها قرار
نمیدهد. این میتواند به وسیله چندین مسیر مختلف به دست آید و هر مسیر به وسیله مقادیر آزمایشی مختلف ممكن است فعال شود. پوشش شاخهای پیشرفتی روی پوشش حكمی میباشد زیرا هر نتیجه عبارت شرطی باید حداقل یك مرتبه مورد آزمایش و امتحان واقع شود. با وجود این، این دارای نقاط كور خودش میباشد. ارزیابی محیط كوتاه به معنی آن است كه هر پوشش شاخهای ممكن است برای شروط تركیبی بدون آزمایش همه وضعیتها به دست آید. برای مثال در روش C++ یا جاوا، شاخه ++X زمانیكه a==b میشود گرفته میشود و مقدار xو y ه
ر چی میباشد و این ( ) خالی میباشد. شاخه –x زمانیكه a!=bو x!=y گرفته خواهد شد، هرچه به وسیله این برگشت داده میشود خالی میباشد. پوشش شاخهای مسیرهای غیر صریح را كه از شروط تركیبی منتج میشود نادیده میگیرد. نمودارجریان كنترلی كه از بسط كامل Display last msg منتج میشود، دارای مسیر ورود و خروج 22 میباشد كه این در مقایسه با 11 برای مدل مجموعه میباشد. پوشش شاخهای ضمانت نمیكند كه همه مسیرهای ورود و خروج اجرا شوند. تنها 3 تا از 11 مسیر احتمالی برای Display last msg مورد نیاز میباشد. این نقطه كور میتواند بر مجموعه تست پوششی تأثیر كند. حتی در مسیرهای ساده با شرو ع ساده. برای مثال پوشش شاخهای برای روش میتواند با 2 آزمایش به دست آورده شود: {a=0, b=0, x=0, y=0} و {a=0, b=1, x=0, y=1}. در حقیقت چها رمسیر ورود ـ خروج وجود دارد: صحیح ـ صحیح، صحیح ـ غلط، غلط ـ صحیح ، غلط ـ غلط. هر مسیر محاسبه مختلفی را نشان میدهد.در مسیر صحیح ـ صحیح، x عوض نمیشود اما به وسیله هر دو شاخه تغییر میكند. این به وسیله یكی روی صحیح ـ غلط افزایش پیدا میكند و به وسیله غلط ـ صحیح كاهش پیدا می كند. و روی غلط ـ غلط غیر متغیر و غیر ملموس باقی می ماند. پوشش چند وضعیتیپوشش شاخهای نیاز به امتحان هر وضعیت در یك شرط تركیبی یا تركیبات صحیح ـ غلط یك شرط تركیب ندارد.و خیلی از اشكال رایج بنابراین میتوانند از مجموعه تست شاخهای پنهان شوند. میر 3 مدل پوششی متناوب برای امتحان این روابط آنالیز میكند. (میر 79)پوشش وضعیتی نیاز به این دارد كه هر روش وضعیتی حداقل یك بار به عنوان صحیح یا غلط ارزیابی میشود. این نیاز به تست كردن همه شاخههای ممكن ندارد زیرا امكان عوض كردن یك شاخه و تمرین همه وضعیتها وجود ندارد. پوشش وضعیتی بنابراین میتواند گرهها را از دست بدهد و به طور احتمالی ما را با كمتر از
پوشش حكمی كامل قرار دهد. پوشش شرطی / شاخهای به وسیله نیاز به اینكه هر وضعیت حداقل یك بار صحیح یا غلط ارزیابی شود، روی این روش پیشرفت میكند. با شرطهای پیچیده ویژه، پوشش وضعیتی / شاخهای اینكه همه تركیبات صحیح /غلط شرایط آزمایش شوند، را ضمانت نمیكند. پوشش چند وضعیتی نیاز به این دارد كه همه تركیبات صحیح /غلط شرایط ویژه حداقل یك بار مورد آزمایش واقع شوند. حداكثر 2 تركیب صحیح /غلط برای حكم شرطی با n وضعیت ساده وجود دارد. اگر پوشش چند وضعیتی به دست آید، سپس همه حكمها، شاخهها و وضعیتها لز
وماً پوشیده میشوند. این نوع پوشش، پوشش مسیری را ضمانات نمیكند. اگر همه شرایط در یك روش به جدول حقیقی انداخته شود، پوشش چند وضعیتی همان پوشش همه تغییره میباشد (مراجعه شود به بخش6، مدلهای تركیبی). موانع عملی ممكن است ما را از تشخیص پوشش چند وضعیتی مانع كند. رسیدن به همه تركیبات شرطی ممكن به خاطر ارزیابی محیط كوتاه غیر ممك
ن باشد. شرایط جامع دو طرفه كه چندین اصطلاح شرطی را احاطه می كند ممكن است مانع تركیبات ویژه شود. اگرچه ما معمولاً به موارد دستی 2n برای پوشش چند وضعیتی احتیاج نداریم، موارد تستی بیشتری در مقایسه با یك حكم یا مجموعه تستی پوشش شاخهای مورد نیاز میباشد. بعضی از ابزارهای پوشش حدی را گزاری میدهند كه در آن همه تركیبات صحیح / غلط مشروط تركیبی فعال شدهاند اما معمولاً نمیتوانند تعیین كنند كه كدام تركیبات حذف شده غی
ر عملی می باشند. چندین تركیب صحیح /غلط بر پایه ساختارعملگرهای “و” و “یا” در یك عبارت شرطی تركیبی ممكن است مفید به اثبات برسد اگر پوشش چند وضعیتی غیر عملی باشند. (مراجعه شود به بخش 6)پوشش كدی مقصدپوشش كدی مقصدی به وسیله ابزارسازی القا شده9 در كد مقصد تولید به وسیله همگردان اندازهگیری میشود. این پوشش برای تصدیق بعضی از استفادههای امنیتی لازم میباشد. ابزارهای پرفایل كردن اجرایی به طور نمونه در این سطح كار میكنند و میتوانند ایجاد قطعات مقصد كنند یا اینكه ایجاد یك پوشش شاخه ای مقصد به عنوان یك تأثیر جانبی كنند. نتایج یك آنالیزگر پوششی مقصد برای بیان كردن سخت میباشد. بهینه كردن همگردان، برای مثال، ایجاد كد مقصدی میكند كه ساختمانش از ساختار كد منبعی به طور اصلی فرق میكند. خیلی از همگردانها برای ماشینها RISC فراخوانهای عملكردی را برای افزایش تأثیر ذخیره شدگی به صف خواهد كرد. حلقه ها با شمار ثابت ممكن است باز شود و غیره. اگر عملكردهای داخلی دارای شاخه یا حلقه باشد، كد مقصدی ممكن است شامل شاخههای بیشتری نسبت به منبع باشد. ماكرهای C ـ عینی و C++ به شاخههای غیر منتظره و ناهمسانیهای دیگر منجر میشوند. این پوشش همه قدرت و ضعف پوشش كدی منبعی را در بر میگیرد اما بار اضافی بیان تجزیه و تحلیل پوششی روی كد مقصد تحمیل می كند.هر رویدادی پیشنهاد نمیكند كه پوشش كدی مقصد به دست آمده اشكال بیشتری را نسبت به پوشش كدی منبع آشكار میكند
مدل ـ پایهای ـ مسیری مدل آزمایشی پایهای مسیری (كه به عنوان آزمایش شناخته شده شناخته میباشد) برای آزمایش مسیرهای ورودی ـ خروجی مختلف C فرا میخواند. C یك متریك پیچیدگی برنامه میباشد، c=e-n+2، جایی كه e شمار لبه ها و n شمار گرهها در نمودار جریان كنترلی برای IUT میباشد. فرمولی كه از تئوری نموداری مشتق گرفته میشود، متریك پیچیده سایكل متریك بیان میشود.[MCCABE 76] این برای پیچیدگی برنامهای یك خروج و تك ورودی به عنوان C متریك بیان میشود. تقریباً همه آنالیزگرهای پوششی كدی این متریك را تولید میكنند، بنابراین
بحث اهمیت آن ضمانت میشود. هیچ مطالعه تحقیقاتی تا كنون ارتباط مهم بین C، شمار عیوب و قیمت نگهداری را نشان نداده است. اگرچه بعضی از مطالعات [MCCABE +89] ارتباط مهمی بین عیوب در كد طرز عمل و C پیدا كردهاند، متریك به طور عمده اطلاعات بیشتری درباره مشكلات نهفته نسبت به شمارش خطوط كد تهیه نكرده است [Gill 91, Kan 95]. یك C 10 یا بالاتر الزاماً
متمایل به اشكال دلالت نمیكند. مطالعات در دسترس كد سازگار با مقصد ارتباط مهمی بین عیوب و C نشان نمیدهد (بخش 1-2-4مشاهده شود، چه چیزی اشتباه است؟) . در روش دامنه و برد، C معمولاً اطلاعات بیشتری نسبت به شمارش خطوط كد تهیه نمیكند ]لی 93[. روشها بیشتر از شش خطوط، كمتر از 10 درصد همه روشها در یك سیستم را محاسبه میكنند ] لجنر 92، لی 93، والد 93، لرنز 94[ . اگر Cیك روش 10 یا بیشتر باشد، گروه و روش ممكن است به طور ضعیف طراحی شود یا اینكه ممكن كیس مخصوصی برای اندازه غیر معمول یا پیچیدگی كه ضمانت میشود باشد. اگر روشهای زیادی وجود داشته باشد كه در آن است،
ادامه خواندن مقاله در مورد چرخش آلفا ـ امگا
نوشته مقاله در مورد چرخش آلفا ـ امگا اولین بار در دانلود رایگان پدیدار شد.