بخشی از مقاله
چکیده:
آزمایش همانند موارد آزمون سودمند است و این بدین معناست که آزمایش تا حد زیادی به توانایی تشخیص معایب موارد آزمون وابسته است. ایجاد موارد آزمون نقشی بسیار مهم در فرآیند آزمایش ایفا می کند و حوزه اصلی پژوهش در زمینه آزمایش نرم افزار است. موارد مفید در آزمون، احتمال خرابی سیستم را کاهش می دهد و کیفیت سیستم را تضمین می کند. این مقاله، با روش جامع تر به بررسی راهکارها و یا روش های مختلف ایجاد موارد آزمون در سیستم های نرم افزاری شی گرا می پردازد.
لغات کلیدی: آزمایش نرم افزار، سیستم نرم افزاری شی گرا، موارد آزمون، سطح موارد آزمون، نمودار توالی، نمودار - طرح - زبان خاص مورد استفاده در مدل های کاری - - UML، نمودار موارد کاربردی، نت شی گرا
مقدمه
آزمایش نرم افزاری در عرصه تولید سیستم عامل، نقشی ضروری ایفا می کند. این مقاله، تحقیقی است که جهت ارائه اطلاعات در مورد کیفیت محصول نرم افزار، انجام شده است. طبق نظر جامعه مهندسین و حرفه ای های الکترونیک، آزمایش، روند به کارگیری ویا ارزیابی سیستم یا اجزای سیستم با استفاده از دست یا به روش خودکار می باشد که به بررسی اینکه آزمایش، ملزوماتمشخص را تاًمین می کند، می پردازد. آزمایش نرم افزار تلاشی است جهت به دست آوردن برنامه ای با داده های ورودی که به نحو مطلوب طراحی شده و هدف آن یافتن معایب است. به عبارت دیگر، آزمایش فرآیند اجرای یک برنامه با هدف پیدا کردن خطاهاست. آزمایش، عیوب را شناسایی می کند که از بین بردن آن ضعف ها کیفیت نرم افزار را با افزایش قابلیت های ناشناخته نرم افزار، بالا می برد. آزمایش، کیفیت نرم افزار را همچنین از نظر توانایی هایش برای دستیابی به صحت، قابلیت اطمینان، قابلیت استفاده، قابلیت نگهداری، قابلیت استفاده مجدد و قابلیت آزمودن می سنجد.
به طور کلی فرایند آزمایش شامل سه چیز است:
- الف - ایجاد موارد آزمون، - ب - اجرای موارد آزمون و - ج - ارزیابی موارد آزمون فرآیند ایجاد موارد آزمون نقش بسیار مهمی در این سه مورد ایفا می کند. اهداف متفاوت آزمایش به شرح زیر است:
آزمایش فرایند اجرای برنامه ای با هدف یافتن خطاهاست.آزمون خوب، آزمونی است که احتمال بسیار زیادی برای پیدا کردن خطایی که هنوز کشف نشده است، دارد.آزمون موفقیت آمیز، آزمونی است که خطایی را که هنوز کشف نشده است، آشکار می کند.آزمایش باید تغییرات یشنهاد شده و یا اصلاحات را در صورت نیاز و در نتیجه بها دادن به کل فرایند، هدف قرار دهد.هدف، طرح کردن آزمون هایی است که به صورت نظام مند وبا حداقل مقدار تلاش و زمان به سطوح مختلف عیوب پی برند.ملزومات اجرای آزمون آنگونه که در سند مشخصات تعیین شده است، مورد نیاز می باشد.قابلیت اطمینان نرم افزار و کیفیت نرم افزار بر اساس اطلاعات جمع آوری شده در طی آزمایش می باشد.تعدادی از مزیت های آزمایش به شرح زیر است: افزایش پاسخگویی و کنترل کاهش هزینه کاهش زمان کاهش نقص
افزایش بهره وری تولید کنندگان نرم افزار
فن آوری شی گرا و آزمایش نرم افزار
الگوهای شی گرا تعدادی روش ارائه می دهند که به طور دائم رشته مهندسی نرم افزار را اصلاح و آن را در حیطه طراحی بسیار خوب و دقیقی ثبت می کند. الگو های شی گرا، رشد و تکامل نرم افزاری را به صورت ابزاری برای مدیریت پیچیدگی های متفاوت در توسعه به کار گرفته اند. این کار پرفراز از طریق مدل سازی شی گرا، برنامه سازی و ترکیب کردن الگوهای طراحی در جهت تولید نرم افزارهای قوی، قابل اعتماد و قابل نگهداری، باعث پیشرفت می شوند.بخش کد برنامه را پس از آنکه بتوان تحت پوشش آزمون قرار داد، می توان نوشت و همچنین برای استفاده مجدد به عنوان فرایند طراحی می توان آن را مدل سازی کرد. امروزه مدل سازی رفتاری پویا که مدل های وضعیتی را با استفاده از تحلیل اطلاعات شی گرا و زبان خاص مورد استفاده در مدل های کاری، پیاده سازی می کند،مشهور ترین مدل ها با پذیرش وسیع تر می باشند.
به صورت گسترده پذیرفته اند که الگوهای شی گرا به طور قابل توجه، قابلیت استفاده مجدد، قابلیت توسعه، قابلیت عملکرد متقابل و قابلیت اطمینان را افزایش می دهند. این مورد برای مهندسی سیستم با اطمینان بسیار بالا نیز صدق می کند، به شرط آنکه سیستم ها را به اندازه کافی مورد سنجش قرار داده باشند. آزمایش سیستم شی گرا، فعالیت مهم و تضمینی برای کیفیت نرم افزار است که اطمینان می دهد که مزایای برنامه سازی شی گرا تحقق خواهد یافت. آزمایش نرم افزار شی گرا، مشکلات مطرح شده توسط ویژگی های شی گرا، به عنوان مثال، فشرده سازی، چند شکلی، توارث و اتصال پویا را مورد بحث قرار می دهد.این مقاله تبادل نظری است در زمینه سطوح مختلف آزمایش که با برنامه های شی گرا مرتبط می باشد.[22]
آزمایش داداخل روش: آزمون های طراحی شده برای روش های فردی است. این آزمون با آزمایش واحد از برنامه های معمول معادل است. آزمایش بین روش: آزمون ها برای روش های جفتی/ دوتایی در کلاسی مشخص ایجاد شده اند. به عبارت دیگر، اینگونه آزمون ها برای سنجش کنش متقابل روش ها طرح شده اند.
آزمایش درون کلاسی: آزمون درون کلاسی برای تمام افراد یک کلاس - دسته عمومی - واحد معمولاً به عنوان توالی دستورات روش های درون کلاسی توسط شیوه های مختلف آن کلاس طراحی و ایجاد شده است.
آزمایش بین کلاسی: به این معناست که بیش از یک کلاس - دسته عمومی - را در زمانی یکسان بیازمایند. این آزمون با آزمایش مجتمع سازی معادل است. سه مورد اول که در بالا ذکر شده اند، مربوط به واحد و ماژول نوع آزمایش هستند، اما آزمایش بین طبقه ای طبق شیوه آزمایش مجتمع سازی عمل می کند. خط مشی کلی برای آزمایش های نرم افزاری شی گرا مشابه با آزمونی است که برای آزمایش های نرم افزاری معمول به کار گرفته می شده، اما از جهت شیوه هایی که استفاده می کند، با آن متفاوت است. آزمایش کنندگان آزمایش را در گروه های کوچک آغاز کرده و به سمت گروه های بزرگ به پایان می رسانند. هنگامی که کلاس ها را به صورت ساختاری منسجم ادغام می کنند، کل سیستم به منظور آنکه تضمین کند که عیوب در ملزومات آشکار می شود، مورد آزمایش قرار می گیرد.
موارد آزمون
مجموعه ای از داده های آزمون، شرایط اجرای آن و نتایج مورد انتظار که به منظور اهداف آزمون ها ایجاد شده اند، می باشد. موارد آزمون، نمونه آزمونی مجزا از نظر داده های ورودی، شرایط اجرای آزمون و نتایج مورد انتظار است. آن تعیین می کند که آیا ویژگی های به کارگیری نرم افزار به درستی عمل می کند.موارد آزمون همچنین بهاهداف آزمون مانند تاًیید تبعیت از ملزوماتی خاص یا اجرای مسیر برنامه های ویژه رجوع می کند، بنابراین موارد آزمون باید با جزئیات کافی نوشته شوند، به گونه ای که بتوان آنها را به اعضای گروهی داد که قادر باشند بی معطلی آن را اجرا کرده و عیوب آن را بیابند.
نوشتن موارد آزمون موثر و قابل اجرا، فرآیند یادگیری تدریجی است و از این رو آن یک مهارت است که با تجربه و با مطالعه کامل و جامع استفاده از نرم افزار که درباره موارد آزمون نوشته شده است، می توان آن را به دست آورد. موارد آزمون را همانند آزمایش دامنه و یا آزمایش مبتنی بر خطر، با توجه به سبک خاص آزمون ایجاد کرده اند. بر اساس نیازهای مختلف دامنه و سیستم شی گرا و به جای نوشتن موارد جداگانه آزمون، بهتر است موارد آزمون را به منظور اصلاح آنها با توجه به نیازهای بعدی شان، برای گروه های مختلف تطبیق دهند.طراحی و تولید موارد آزمون نیازمند - الف - دانش دامنه، - ب - دانش فناوری و - ج - آزمایش بهترین شیوه ها می باشد.
بر اساس بررسی های پیشین و آزمایش بهترین شیوه های نرم افزاری، سیزده ویژگی در موارد آزمون وجود دارد که در زیر ذکر شده است:
1.زیبایی شناختی/ بصری شناختی
2.اعتبار سنجی
3.جهت یابی
4.قابلیت استفاده
5.درستی داده ها / پایگاه داده ها
6.شیوه ها - اضافه کردن / ویرایش / حذف / فقط خواندنی -
7.عمومیت
8.فیلد داده ها
9.فیلد عددی
.10 کنترل فیلد آلفا نرم افزاری
.11 آزمون اعتبار سنجی در هر صفحه نمایش - اضافه کردن، نمایش، اصلاح، حذف، لغو -
.12 پوشش امنیتی - جلسه کاری وب، نوعی آسیب پذیری امنیتی در صفحات وب پویایی -
.13 پوشش عملکرد
یکی از جنبه های مهم در عرصه آزمایش نرم افزاری، تولید ویا ایجاد و مدیریت منبع اطلاعاتی موارد آزمون می باشد که حوزه کاری مستقلی را صرف نظر از مجموعه روش های مختلف تضمین کیفیت توسط تیم آزمایش دنبال می کند. چنین منبع اطلاعاتی در مرکز C-DAC، NOIDA ، U.P. - هند - وجود دارد.[25]معیار کفایت آزمون این واقعیتی مبرهن است که آزمایش، خطای نرم افزای را آشکار می سازد و قابلیت اطمینان را افزایش می دهد. اما معلوم نیست که چه زمانی فرایند آزمایش متوقف می شود و یا چه چیز کفایت آزمون را به وجود می آورد. برای اولین بار گودیناف و گرهارت[28] در این زمینه تلاش کردند.
معیار کفایت آزمون چیزی جز گزاره ای ضروری و مهم نیست که شایستگی آزمون را نشان می دهد. به بیان دیگر آن موقعیتی متوقف کننده است که از ادامه فرایند آزمایش، هنگامی که تمام معیارهای مشخص شده فراهم شوند، جلوگیری می کند[29] پوشش شاخه، پوشش مسیر ، پوشش انتقال - گذار - ، پوشش فعالیت، تعدادی ازمعیارهای کفایت آزمون می باشد. انواع مختلف معیارهای پوشش برای آزمایش سیستم های شی گرا به شرح زیر می باشد :[23]
- الف - معیار پوشش وضعیت: مقدار پوشش وضعیت سهمیه ای است بین وضعیت های تحت پوشش و تمام وضعیت های موجود در طرح نموداری وضعیت. این مستلزم آن است که تمام گره های وضعیت را در یک طرح نموداری وضعیت، حداقل یک بار پوشانده باشند.
- ب - پوشش عمل: به منظور تولید موارد آزمون و با در نظر گرفتن پوشش عمل، به همان اندازه که عمل در درون مشخصه وجود دارد، بسیاری از مشخصه های معین شده را ایجاد می کنیم.
- ج - پوشش انتقال: با توجه به نمودار و آزمون مجموعه نرم افزاری TS,s، گفته می شود در صورتی که آن باعث شود که هر گذار از نمودار وضعیت حداقل یک بار اجرا گردد، به پوشش انتقال دست می یابیم. مقدار پوشش انتقال نسبت بین انتقال کنترل شده و تمامی انتقالات در طرح نموداری موقعیت است.
- د - پوشش مسیر انتقال: با در نظر گرفتن نمودار و آزمون مجموعه نرم افزاری TS,s، گفته می شود در صورتی که آن سبب شود که مسیر انتقال اولیه از نمودار وضعیت حداقل یک بار اجرا گردد، به پوشش مسیر انتقال دست می یابیم. مقدار پوشش مسیر نسبت بین مسیرهای طی شده و تمامی مسیرهای موجود در نمودار می باشد.
- ه - پوشش وضعیت: اگر آن در برخی جهات هر دو حالت درست و نادرست را در حین
اجرای آزمون ارزیابی کند، وضعیتی واحد را پوشش می دهد. پوشش تصمیم گیری نیز پوشش شاخه یا پوشش گزاره نامیده شده است.این بدین معناست که اگر همه شرایط ارزیابی درستی و نادرستی در حین اجرای آزمون به دست آید، صد درصد پوشش وضعیت و یا تصمیم گیری به دست می آید. تصمیم شامل شرایط تفکیک شده توسط عملگرهای منطقی می باشد. - به عنوان مثال و یا - معیار کفایت آزمون به بیان اهداف یا مقاصد آزمون که در زمان انجام آزمایش نرمافزاری خاص، باید کسب شوند، کمک می کند. به عنوان مثال، پوشش شاخه مستلزم آن است که هر شاخه در یک برنامه ی تحت آزمون توسط حداقل یک مورد آزمون به کار گرفته شود. در طول اجرای مورد آزمون، معیار کفایت آزمون عامل مهمی جهت ایجاد موارد آزمون محسوب می شود. مولفه های طرح نموداری موقعیت در زبان خاص مورد استفاده در مدل های کاری - UML - عبارتند از: وضعیت، وضعیت اولیه، وضعیت نهایی و انتقال [23]
مرور نوشته ها و مقالات موضوعی
مقالات پژوهشی و گزارشات گوناگونی وجود دارد که بسیاری از مؤلفان برای ایجاد موارد آزمون و قابلیت پی بردن به نقص های مجموعه آزمون در سیستم های شی گرا، همانگونه که در زیر مورد بحث قرار می گیرد، آنها را ارائه کرده اند.و. اریک وانگ، جوزف آر. هورگان، آدیتیا پی. ماتور و آلبرتو پاسکواینی [24] این موضوع را عنوان کردند که کاهش مقدار یک دسته آزمون با ثابت نگه داشتن پوشش، بر شناسایی نقوص تأثیر می گذارد. آنها به طور تصادفی مجموعه بزرگی از دسته های آزمون را ایجاد کردند که به پوشش جریان داده های بلوکی و قابل استفاده برای همه از هر برنامه تابع، دست یافت. آنها کوچکترین زیر مجموعه را برای هر دسته آزمون به وجود آوردند که پوشش مجموعه اصلی را حفظ می کرد و سپس قابلیت یافتن عیوب حاصل از کاهش مجموعه آزمون را با قابلیت یافتن عیوب مجموعه آزمون اصلی مقایسه کردند.
اطلاعاتی که آنها استفاده کردند، نشان می دهد که به حداقل رساندن مقدار دسته آزمون، با ثابت نگه داشتن پوشش، به هیچگونه کاهش و یا مختصر کاهشی در کارایی عیب یابی نمی انجامد. این مشاهدات به این نتیجه گیری کلی منجر شد که موارد آزمون که در پوشش های دیگر نقشی ندارد،احتمالاً در یافتن نقص های بیشتر مؤثرهستند.تیری جرون، ژان مارک جزکل و آلن لی گوانس [35] چارچوب یک فرایند اعتبار سنجی مستمر را توصیف می کنند که می تواند به منظور اقدام از مرحله تحلیل شی گرا به اجرای شی گرای سیستم توزیع شده و معتبر، فراهم شود. علاوه بر این، جهت ارائه چارچوب اعتباربخشی برای پرداختن به تأثیرات متقابل سطح بالاتر بین اشیاء در سیستم های توزیع شده، فعالیت آنها می تواند گسترش یابد.
جی. روترمال، ام. هارولد، ج. اوسترین و سی. هونگ [30] آزمایشی مشابه را با استفاده از هفت مجموعه از برنامه های زبان برنامه نویسی C با عیوب حاصل شده از دست انجام دادند تا درستی یا نادرستی نتایج مطالعات وانگ را اثبات کنند. آنها برای انجام آزمایشات خود از پوشش لبه دار[31]، اجرا شده در سال 1991، و مجموعه آزمون های مناسب شامل آزمون های تکراری استفاده کردند و نقص یابی مجموعه آزمون های کم شده را با نقص یابی تمام مجموعه های آزمون مقایسه کردند. آنها در آزمایش خود، به این موضوع پی بردند که زمانی که مجموعه آزمون ها کاهش یافت، قابلیت عیب یابی به طرزی چشمگیر به مخاطره افتاد و ارتباط کمی بین مقدار دسته آزمون و قابلیت یافتن نقص مشاهده شد.
مایکل چیتز، آنلیز وون مایرازر، رابرت فرانس، اریک دالمن و آدل ای. هاو [36] روشی را به منظور تولید موارد آزمون جعبه سیاه از طریق مدل های مفهومی سیستم نرم افزار، ارائه کردند. مدل هایی که آنها مورد بحث قرار دادند، از مدل های طراحی و الزامات قدیمی متفاوت است. آنها در این مدل ها اطلاعات مرتبط با تولید موارد آزمون را مورد توجه قرار دادند، همچنین به منظور کسب اهداف آزمون از این مدل ها، راهکاری را مطرح کردند.وای.جی. کیم، اچ. اس. هونگ، اس.ام. چو، دی.اچ. چو و اس.دی. چا [1] شیوه ای را برای تولید توالی آزمون با استفاده از طرح نموداری وضعیت UML معرفی کردند. آنها طرح نموداری وضعیت را به ساختاری مسطح از وضعیت ها به نام EFSMs و درختان آزمایش تبدیل کردند. از میان درختان آزمایش، توالی های امکان پذیر رویداد را که به عنوان توالی آزمون در نظر گرفتند، در فهرستی وارد کردند. معیار آزمایشی که آنها جهت راهنمایی در اجرای توالی آزمون به کار گرفتند، پوششی از وضعیت ها و گذارهای سلسله مراتب آزمایش می باشد. گذشته از این، آنها برای سیستم های شی گرا شیوه ای مرتبط با تولید موارد آزمون برای آزمایش های کلاس با استفاده از طرح