:
سیستم های نرم افزاری امروزه با فراگیر شدن در علوم مختلف نقش بسیار مهمی را در برطرف نمودن نیازها و خواستههای مشتریان ایفا میکنند و همچنین به عنوان یک جزء اصلی و لاینفک در امور روزمره به حساب میآیند. با گسترش روز افزون تولید سیستم های نرم افزاری همچنان تقاضا برای تولید سیستم های نرم افزاری جدید وجود دارد. بحث مهم بعد از تولید نرم افزارها نگهداری و ارتقاء آنها میباشد. وجود خطا و اشتباه در نرم افزارها میتواند منجر به خسارات زیادی از قبیل هزینههای مالی، زمانی، فیزیکی وحتی در برخی کاربردهای حساس و بحرانی مانند کاربردهای پزشکی، کنترل کننده موشک و کنترل کنندههای ترافیک هوایی خسارت جانی را نیز به بار آورد. از این رو برای اینکه قابلیت اطمینان را در استفاده از سیستم های نرم اقزاری افزایش دهیم باید نرم افزار را مورد تست قرار دهیم. تست نرم افزار در توسعه سیستم های نرم افزاری از جایگاه مهم و با ارزشی برخوردار است. به خصوص در سیستم های نرم افزاری مقیاس بزرگ و پیچیده امروزی. زیرا فعالیتهای تست هم زمان بر و هم هزینه بر هستند. نرم افزارها برای اینکه ارتقاء یابند میبایست توسعه داده شوند و نسبت به نسخههای اولیه رشد و تکامل یابند. یکی از فعالیتهای مهم و هزینه بر در جهت ارتقاء نرم افزار تست نرم افزار است که انواع متفاوتی از تست برای بخشهای مختلف و در زمان های مختلف طراحی و ایجاد شدهاند. تست فرایندی است مخرب که محصول نرم افزاری را مورد حمله قرار میدهد تا اینکه خطا بروز کند. تست نرم افزار شامل تحقیق و بررسی بر روی نرم افزار تولید شده است که این تحقیق و برسی برای پیدا کردن خطاها انجام میشود. به طور کلی یک سری از سوال و جوابهایی هستند که نرمافزار را با آن امتحان میکنیم در حالی که از برنامه انتظار داریم با توجه به ورودیهایی که با بهره گرفتن از سوالات وارد میکنیم، جوابهای صحیحی را به عنوان خروجی به دست دهد. آزمایش نرمافزار حیطه وسیعی از فعالیتهای مربوط به تولید برنامههای رایانهای را دربرمیگیرد که از آزمایش کردن کد برنامه توسط برنامهنویس گرفته تا نشان دادن عملکرد درست یک سیستم اطلاعاتی بزرگ به مشتری. سازمانها یا شرکتهایی که نرم افزارها را توسعه میدهند، محصولی به نام نرم افزار تولید میکنند. ولی چه عامل یا عواملی باعث میشوند که یک نرم افزار از نرم افزار مشابه دیگر متمایز و برجسته شود؟ عوامل متعددی را میتوان نام برد که باعث این برتری و تمایز شود اما یکی از این عوامل میتواند کیفیت محصول نهایی باشد که به بازار عرضه خواهد شد. اما برای رسیدن به این نقطه برتری، باید چگونه عمل کرد و اندیشید؟ یکی از پاسخها به این سوال بدون شک تست نرم افزار و نحوه انجام آن میتواند باشد.
اهمیت آزمایش نرم افزار و اثرات آن بر كیفیت نرم افزار نیاز به تأكید بیشتر ندارد.Deutch در این باره اینگونه بیان می کند: توسعه سیستمهای نرم افزاری شامل یكسری فعالیتهای تولید میباشد كه امكان اشتباهات انسانی در آن زیاد است. خطاها در ابتدای یک فرایند و مراحل توسعه بعدی آن ظهور می نمایند. به دلیل عدم توانایی انجام كارها و برقراری ارتباط به صورت كامل، توسعه نرم افزار همواره با فعالیت تضمین كیفیت همراه است. آزمایش نرم افزار عنصری حیاتی از تضمین كیفیت نرم افزار می باشد و تقریبی مشخصه، طراحی، و تولید كد رانشان می دهد.
1-1- یک شیوه استراتژیک برای آزمایش نرم افزار
آزمایش،مجموعه فعالیتهایی است كه میتواند از قبل به صورت سیستماتیک برنامه ریزی و هدایت شوند . به این دلیل، الگویی برای آزمایش نرم افزار باید برای فرایند نرم افزار تعریف شود. این الگو شامل مجموعه مراحلی است كه میتوان تكنیک های خاص طراحی نمونههای آزمایش و روشهای آزمایش را در آن قرار داد.
چند استراتژی آزمایش نرم افزار در این رابطه پیشنهاد شده است . همه آنها برای توسعه دهنده نرم افزار، الگویی را به منظور آزمایش فراهم میکنند و همگی دارای خصوصیات زیر هستند:
– آزمایش از سطح مؤلفه شروع میشود به سمت خارج در جهت مجتمع سازی كل سیستم كامپیوتری پیش میرود.
– تكنیک های متفاوت آزمایش، در نقاط زمانی مختلف مناسب می باشند.
– آزمایش توسط توسعه دهنده نرم افزار و برای پروژههای بزرگ توسط گروه مستقل آزمایش، هدایت میشود.
– آزمایش و اشكال زدایی فعالیتهای متفاوتی هستند، اما اشكال زدایی باید با هر استراتژی آزمایش همراه باشد.
یک استراتژی برای آزمایش نرم افزار باید آزمایشهای سطح پایینی را هدایت كند كه برای بازبینی صحت پیاده سازی یک قطعه كد كوچك لازم می باشند. همچنین این استراتژی باید آزمایشهای سطح بالایی را سازمان دهی كند كه اكثر توابع سیستم را در رابطه با نیازهای مشتری اعتبار سنجی می نمایند. یک استراتژی باید راهنماییهایی را برای مجری و مجموعه ای از علایم نشان دهنده را برای مدیر فراهم نماید. چون این مراحل استراتژی آزمایش زمانی انجام می شوند كه فشار مربوط به پایان مهلت، شروع به
افزایش می کند، پیشرفت باید قابل اندازه گیری باشد و مشكلات باید تا حد امكان به سادگی برطرف شوند.
2-1- اصول آزمایش نرم افزار
آزمایش، موارد غیر معمول جالب توجه ای را برای مهندس نرم افزار آشكار می کند. در ضمن فعالیتهای اولیه مهندسی نرم افزار، مهندس، سعی در ایجاد نرم افزار با بهره گرفتن از مفهومی مجرد و بدست آوردن محصولی واضح و كامل دارد و اینك آزمایش باید انجام شود .مهندس تست یكسری نمونههای آزمایش ایجاد می کند كه باید نرم افزار ایجاد شده را با شكست روبرو نماید. در واقع، آزمایش، یک مرحله در فرایند نرم افزار است كه می تواند به عنوان فرایندی مخرب به جای سازنده در نظر گرفته شود (حداقل از نظر روانشناسی) به هرحال هدف از آزمایش چیزی متفاوت از آنچه انتظار می رود می باشد. در بسیاری از شرکتها حدود 30 تا 50 درصد از هزینه نرم افزار را صرف تست آن میکنند، با این وجود برخی هنوز هم بر این عقیدهاند که نرم افزارها قبل از انتشار و تحویل به مشتری به درستی تست نمیشوند. چند دلیل باعث این باور میشوند : اول اینکه انجام تست نرم افزار امری است بسیار مشکل. دوم اینکه معمولاَ به خاطر زمانبر بودن و دیگر عوامل از قبیل : هزینهی بالای تست نرم افزار ، فشارهای وارده از سوی بازار ، مشتری و رقبا منجر به این شدهاند تا مدت زمان اختصاص داده شده برای انجام تست بسیار کمتر از دیگر بخشهای فرایند تولید نرم افزار گردد. دلیل دیگر نداشتن برنامه (استفاده از متدولوژی و ابزاری مشخص) برای تست کردن میباشد. با این وجود تمامی شرکتهای تولید کننده نرم افزار با هدف تولید نرم افزاری با کیفیت و افزایش رضایتمندی مشتری، محصول خود را مورد تست قرار میدهند. کیفیت چیزی است که ما در تمامی چرخه تولید نرم افزار از قبیل تولید محصولات نرم افزاری ، فرایندها و خدمات ارائه شده به مشتری یا کاربران به دنبال آن هستیم.
ممکن است هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل و با فرمت ورد موجود است
متن کامل را می توانید دانلود نمائید
چون فقط تکه هایی از متن پایان نامه در این صفحه درج شده (به طور نمونه)
ولی در فایل دانلودی متن کامل پایان نامه
با فرمت ورد word که قابل ویرایش و کپی کردن می باشند
موجود است