انواع تست های نرم افزار

تست نرم افزار
  • ۰
  • ۰

مقاله ای پیرامون انواع تست های نرم افزار
تست نرم افزار به فرایند ارزیابی یک نرم افزار به منظور تشخیص تفاوت بین ورودی و خروجی مورد انتظار گفته می شود.علاوه بر آن تست نرم افزار ارزیابی امکانات و ویژگی های یک نرم افزار را نیز شامل می شود.به عبارت دیگر تست نرم افزار یک فرایندی است که به وسیله آن می توانیم اطلاعاتی در رابطه با کیفیت نرم افزار بدست آوریم که شامل تایید و اعتبار سنجی است.
شاید برای اغلب برنامهنویسان تازهکار تست کردن کار سخت و دشواری باشد و گمان کنند که این کار برای برنامه کوچکشان لازم نیست همانطور که اکثر شرکت های تولید نرم افزار در ایران از زیر بار تست نرم افزار  به هر بهانه ای شانه خالی می کنند و بعد از مدت زمان نه چندان طولانی هزینه های بیشتری متحمل می شوند تا عیب های عملکرد نرم افزار را بپوشانند ولی باور کنید که اگر برنامههای حتی کوچک خود را تست کنید چنانچه در آینده قصد توسعه آن را داشته باشید با مشکلات کمتری روبهرو خواهید شد.
در این تحقیق ابتدا به تعریف تست سیستم و هدف و انگیزه از تست نرم افزار پرداخته ایم و سپس مراحل ، استراتژی ها و سطوح تست نرم افزار و انواع آن نام برده شده و در هر کدام به تشریح عملکرد ، وظایف ، مزایا و معایب هر کدام از این استراتژی ها و انواع تست پرداخته ایم  که با مفاهیم و تعریف ها بیشتر آشنا گردیم .


مقدمه:
معمولاً تست کردن نرمافزار یکی از سختترین مراحل کار در ایجاد یک پروژه نرمافزاری است ولی به راستی تستکردن چیست؟ تعاریف مختلفی برای تست کردن نرمافزار وجود دارد؛ مثلاً این تعریف که میگوید: تستها یک سری از سؤال و جوابهایی هستند که نرمافزار را با آن امتحان میکنیم در حالی که از برنامه انتظار داریم با توجه به ورودیهایی که با استفاده از سؤالات وارد میکنیم، جوابهای صحیحی را به عنوان خروجی به دست آورد.
مثلاً میخواهیم مطمئن شویم نام کاربر در نرمافزار حداقل دارای چهار کاراکتر است یا اینکه وقتی اطلاعاتی را ذخیره میکنیم واقعاً این عمل انجام شود. در حقیقت تست را وقتی باید بنوسیم که در حال تولید برنامه هستیم و این به دلیل این است که وقتی برنامه ما بزرگ شد دوباره اجرا کردن تستها به ما کمک میکند تا نقاط ضعف برنامه را به سرعت پیدا کنیم.
برخی از طراحان نرمافزار کار جالبتری میکنند؛ قبل از نوشتن خود برنامه تستهای برنامه را مینویسند. به این روش یاDriven Development میگویند. در واقع تست به ما کمک میکند تا دقیقاً متوجه شویم چه رویهای از برنامه کار میکند و چه رویهای درست عمل نمیکند. همچنین وقتی میخواهیم قسمت جدیدی را به برنامه خود اضافه کنیم اگر تست آن را بنویسیم و تستهای قبلی درست کار کنند میتوانیم مطمئن شویم که این قسمت جدید باعث از کار افتادگی قسمتهای قبلی و کل برنامه نخواهد شد.
یکی دیگر از مزایای تست این است که ناخواسته مستندات برنامه را که نشاندهنده چگونگی عملکرد برنامه است تهیه میکنیم. با استفاده از تست میتوانیم ورودیهای نادرست را به برنامه داده و نتیجه تست را مشاهده کنیم. شاید برای اغلب برنامهنویسان تازهکار تست کردن کار سخت و دشواری باشد و گمان کنند که این کار برای برنامه کوچکشان لازم نیست ولی باور کنید که اگر برنامههای حتی کوچک خود را تست کنید چنانچه در آینده قصد توسعه آن را داشته باشید با مشکلات کمتری روبهرو خواهید شد.

تست نرم افزار چیست؟
تست و ایمنی نرمافزار مجموعهای از فرآیندها و ابزاری است که بهمنظور شناسایی، پیشگیری و اصلاح نقاط ضعف امنیتی در توسعه و جمعآوری اپلیکیشنهای نرمافزاری استفاده میشوند. همچنین نقاط ضعف و جنبههای آسیبپذیر ممکن است خطر آسیب به برندهای شرکت، نقض قوانین و سایر تخلفات امنیتی بههمراه داشته باشد. تمام این موارد میتواند موجب صرف هزینه و زمان زیادی شود و بقای تجاری شرکتها را به خطر اندازد.
از آنجایی که نرمافزار نقش مهمی در سیستمهای پیچیده دارد، فراهم کردن امنیت آن بسیار حیاتی می باشد. امنیت نرمافزار یکی از فعالیتهای تضمین کیفیت نرمافزار است که خصوصیات امنیتی نرمافزار را در مراحل طراحی، پیاده سازی و بهکارگیری، مورد خطاب قرار میدهد.
تست نرم افزار شامل تحقیق و برسی بر روی نرم افزار تولید شده است که این تحقیق و برسی برای پیدا کردن خطاها (bug) انجام می شود.
یا به طور کلی یک سری از سوال و جوابهایی هستند که نرمافزار را با آن امتحان میکنیم در حالی که از برنامه انتظار داریم با توجه به ورودیهایی که با استفاده از سوالات وارد میکنیم، جوابهای صحیحی را به عنوان خروجی به دست دهد. آزمایش نرمافزار حیطه وسیعی از فعالیتهای مربوط به تولید برنامههای رایانهای را دربرمیگیرد که از آزمایش کردن کد برنامه توسط برنامهنویس گرفته تا نشان دادن عملکرد درست یک سیستم اطلاعاتی بزرگ به مشتری.
"کیفیت" هدف اصلی تمامی افراد، شرکت ها و بصورت کلی سازمان هایی است که در جهت تولید و توسعه نرم افزار گام بر می دارند. در واقع کیفیت نرم افزار یک اصل مهم رقابتی در زمینه تولید یک محصول است، اینکه چگونه یک محصول "باکیفیت تر" تولید کنیم. این امر خصوصا در عصر حاضر که شاهد ظهور و توسعه توانایی شرکت های عظیم نرم افزاری هستیم بیشتر به چشم می خورد. هدف ما بحث بر سر کیفیت نرم افزار نیست، اما یکی از شاخه های اصلی و تاثیرگذار آن تست یا آزمون نرم افزار است که موضوع بحث حاضر ماست. حتی تست را می توان یکی از زیرمجموعه های مبحث کیفیت نرم افزار با نام "تضمین کیفیت" در نظر گرفت. در واقع تست نرم افزار به دنبال خطایابی و عیب یابی محصول، قبل از تحویل به مشتری است. اینکه هم توسعه دهندگان و هم کاربران نهایی بر روی یک نرم افزار کارآمد و قابل بکارگیری که پاسخگوی نیازمندی های تعریف شده باشد هم نظر باشند. تست را می توان صریحا بدینصورت معنا کرد: تلاش هایی در جهت عیب یابی و رفع آن، نه تلاش در جهت اثبات کامل صحت نرم افزار، زیرا این قضیه با ماهیت تست تفاوت دارد. تست ها به دفعات تکرار خواهند شد تا مشکلات هرچه بیشتر نمایان شوند. استاندارد تست نرم افزار فرآیندهایی را در جهت آشکارسازی و برطرف کردن عیوب سیستم دنبال خواهد کرد.
(Edsgar W. Dijkstra) دایکسترا دانشمند بزرگ و فقید علوم کامپیوتر در یک جمله ارزشمند در باب تست نرم افزار می فرمایند: تست فقط میتواند خطاها را نمایش دهد، نه عدم وجود آنها را!

هدف تست نرم افزار
 در واقع هدف فرآیند تست در یک جمله "ایجاد اعتماد نسبت به سیستم" است. اما چطور میتوان نسبت به سیستم ایجاد اعتماد نمود؟ مطمئنا عوامل مختلفی در این امر دخیل هستند اما نقش تست به عنوان یکی از مراحل نهایی چرخه توسعه نرم افزار از باقی موارد پررنگ تر خواهد بود. بر همین اساس تست دو هدف اصلی را دنبال می کند:
الف. تست اعتبارسنجی: موفقیت آن در درست کار کردن سیستم است.
ب. تست نقص: موفقیت آن در نمایان سازی خطاهایی است که موجب کارکرد نادرست سیستم می شوند.
 فرآیند تست نرم افزار شامل یکسری موارد آزمون جهت یافتن خطاهاست، خطاهایی که در صورت وجود با بررسی و تست کد منبع توسط شیوه هایی که در آینده شرح آن خواهد رفت بدست می آیند. قضیه را پیچیده نکنیم! زیاد هم فرآیند تست نرم افزار را به سمت نرم افزارهای بزرگ سوق ندهیم، چرا که تست نرم افزار در هر سطحی حتی کاربردهای خیلی کوچک هم می تواند صورت گیرد. حال می توان آن را در ابعاد کوچکتری عملیاتی کرد.
تست نرم افزار در کدام مرحله فرآیند یا چرخه توسعه نرم افزار قرار دارد؟
همانطور که در شکل پایین نشان داده ایم، مرحله چهارم، قبل از نگهداری، متعلق به فرآیند تست نرم افزار است، یعنی دقیقا بخش آخر تولید نرم افزار مربوط به تست خواهد بود. البته این بدان معنا نیست که همزمان با مراحلی مثل طراحی و کد و دیگر موارد، آزمون یا تست های نرم افزاری صورت نمی گیرد، خیر، در میان این فرآیندها تست هایی صورت می گیرد، ولی در مقیاس کوچکتر که بصورت کامل در مباحث آینده در مورد آن بحث خواهیم کرد. اما هدف از نمایش این تصویر در وهله اول اهمیت تست نرم افزار به عنوان یکی از فرآیندهای اصلی توسعه نرم افزار و در وهله دوم نقش آن به عنوان یک خاتمه دهنده تاثیرگذار بود.


فهرست مطالب:
چکیده
مقدمه
هدف تست نرم افزار
تست نرم افزار در کدام مرحله فرآیند یا چرخه توسعه نرم افزار قرار دارد؟
انگیزه تست نرم افزار
آیا تست نرم افزار با کیفیت نرم افزار متفاوت است؟
مراحل تست نرم افزار
جایگاه تست نرم افزار
استراتژی های تست نرم افزار
استراتژی تست جعبه سفید
استراتژی تست جعبه سیاه
استراتژی تست جعبه خاکستری
سطوح تست نرم افزار
تست واحد (Unit testing)
تست مجتمع سازی  (Integration Testing)
تست سیستم (System Testing)
تست پذیرش (Acceptance Testing)
انواع تست نرم افزار
تست عملکرد
تست استرس
تست بار
تست رگرسیون
تست امنیت
تست اکتشافی
منابع


جهت دانلود مقاله ای پیرامون انواع تست های نرم افزار کلیک کنید


جهت دانلود مقاله ای پیرامون انواع تست های نرم افزار کلیک کنید


جهت دانلود مقاله ای پیرامون انواع تست های نرم افزار کلیک کنید

  • dskjhwe jkhsddkj
  • ۰
  • ۰

این متن دومین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.

زکات علم، نشر آن است. هر وبلاگ می تواند پایگاهی برای نشر علم و دانش باشد. بهره برداری علمی از وبلاگ ها نقش بسزایی در تولید محتوای مفید فارسی در اینترنت خواهد داشت. انتشار جزوات و متون درسی، یافته های تحقیقی و مقالات علمی از جمله کاربردهای علمی قابل تصور برای ,بلاگ ها است.

همچنین وبلاگ نویسی یکی از موثرترین شیوه های نوین اطلاع رسانی است و در جهان کم نیستند وبلاگ هایی که با رسانه های رسمی خبری رقابت می کنند. در بعد کسب و کار نیز، روز به روز بر تعداد شرکت هایی که اطلاع رسانی محصولات، خدمات و رویدادهای خود را از طریق بلاگ انجام می دهند افزوده می شود.

  • dskjhwe jkhsddkj
  • ۰
  • ۰

این متن اولین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.

مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار!

اگر همه ما تجربیات مفید خود را در اختیار دیگران قرار دهیم همه خواهند توانست با انتخاب ها و تصمیم های درست تر، استفاده بهتری از وقت و عمر خود داشته باشند.

همچنین گاهی هدف از نوشتن ترویج نظرات و دیدگاه های شخصی نویسنده یا ابراز احساسات و عواطف اوست. برخی هم انتشار نظرات خود را فرصتی برای نقد و ارزیابی آن می دانند. البته بدیهی است کسانی که دیدگاه های خود را در قالب هنر بیان می کنند، تاثیر بیشتری بر محیط پیرامون خود می گذارند.

  • dskjhwe jkhsddkj