آلفا و امگا دو وضعیت نگاه دارنده مکان میباشند که چرخش زندگی هر شئ را به هم میکند. (وضعیتهای آلفا و امگا ـ بخش 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 محدودیتهای آزمایش مراجعه شود)
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 44 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دانلود مقاله