تا %60 تخفیف خرید برای 5 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

روشهای تست پروگرام قسمت اول

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

1.1 کیفیت نرم افزار چیست (Software Quality) ؟


توسعه نرم افزارهای کاربردی هر روز زیاد میشود و اهمیت بکارگیری روش ها و اصول انجینری نرم افزار در مراحل توسعه ، مدیریت و پشتیبانی آنها بیشتر می شود . کیفیت نرم افزار(Software Quality) اهمیت زیادی برای تولید نرم افزار های با کیفیت دارد که ضمن بالا بردن کارایی در تولید نرم افزار ها ، به ایجاد نرم افزار های قدرتمند منجر می شود .کیفیت نرم افزار به سلسله مراحلی گفته میشود که برای بهتر شدن کارایی نرم افزار انجام میشود. کیفیت نرم افزار یکی از مهم ترین اولویت های خریداران و کاربران نرم افزار میباشد. کیفیت نرم افزار شامل بخش های متنوعی میباشد که هر کدام میتواند بر بهبود توسعه نرم افزار اثر مستقیم بگذارد. تست نرم افزار هم یکی از بخش های کیفیت نرم افزار است که ما در این بحث به آن می پردازیم.کیفیت نرم افزار در سیستمی که قرار است توسعه یابد به دوش رئیس پروژه است که او با تعامل ، با دیگر اعضای گروه توسعه به این مهم دست مییابد.

1.2 تست نرم افزار چیست؟


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

1.3 اهمیت تست نرم افزار


تست در کل اهمیت خاصی در تولید هر محصول دارد خواه آن محصول فزیکی باشد و یا اینکه غیر فزیکی. در نرم افزار ها هم این امر جاری است. تست نرم افزار یکی از مراحل اصلی توسعه نرم افزار میباشد. تست نرم افزار کیفیت نرم افزار را تایید میکند که برای مشتریان و توسعه دهنده های آن اهمیت زیادی دارد.در یک شرکت توسعه نرم افزار به طور معمول 30 تا 40 درصد کل فعالیت پروژه صرف تست نرم افزار میشود. برای نرم افزار هایی که در زندگی انسانی حیاتی است مانند پرواز طیاره ها و راکتور هسته ای حدود 3 تا 5 برابر هزینه بیشتر از تمام مراحل تولید نرم افزار صرف تست میشود.

1.4 اصول تست


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

  • تمام تست ها باید تا رسیدن به نیازمندیهای مورد نظر مشتری، قابل بررسی و پیگیری باشد.
  • تست ها باید قبل از اینکه آن را اجرا کنیم ، برنامه ریزی شوند.
  • به کارگیری اصل پارتو در مورد تست نرم افزار (%80 خطاهاي کشف نشده در 20 % کد است)
  • تست باید از جزء شروع شده و کم کم به طرف تست هایی در سطح وسیع برسد.
  • تست های جامع و فراگیر ممکن نیست
  • برای اینکه تست بیشترین تاثیر را داشته باشد، باید توسط یک شخص ثالث مستقل صورت گیرد.

1.5 اهداف تست نرم افزار


تست نرم افزار یکی از بخش های مهم پروژه می باشد و با آن میتوان که درست بودن آن را قبل از اینکه مورد استفاده توسط کاربران آن قرار بگیرد را امتحان کرد.این کار 3 هدف دارد. اگر هر سه هدف به صورت درست پیاده سازی شود نرم افزار ما بدون نقص میباشد :

  • افزایش کیفیت نرم افزار
  • بررسی سیستم از لحاظ پاسخگویی به نیازها و قابلیت اطمینان
  • شناسایی ضعف ها خطاها و اشتباه های نرم افزار

1.6 اشکال زدایی نرم افزار


Debugging یا اشکال زدایی یکی از کارهایی است که در عین برنامه نویسی توسط برنامه نویس انجام میشود. برنامه نویسان در هنگام کار با زبان های برنامه نویسی مشکلاتی دارند. اشکال زدایی کارش پیدا کردن اشکالات است که در عین برنامه نویسی رخ میدهد. این کار توسط خود برنامه نویس انجام میشود بنابراین باید در برنامه نویسی با آن زبان خاص آگاهی داشته باشد.

1.6.1 تفاوت تست نرم افزار با اشکال زدایی نرم افزار


در روش های انجینری نرم افزار قدیمی به تست نرم افزار توجه نمی‌شد به این دلیل که مردم فرق بین تست نرم افزار و اشکال زدایی را درک نکرده بودند.در اوایل که من شروع به برنامه نویسی کرده بودم خیلی از کدهایی که نوشته می کردم دچار مشکل میشد و کاری که من توقع آن را داشتم را انجام نمیداد ولی زمانی که اشکال های آن را رفع میکردم کدی که نوشته بودم کار میداد. کمی بعدتر که توانستم دو کلاس جداگانه ایجاد کنم در موقع یکجا سازی آنها به مشکل برخورد میکردم که مشکل از کدهای نوشته شده در کلاس ها نبود بلکه مشکل در طریقه یک جا سازی آن دو کلاس بود. به رفع این گونه خطاها تست نرم افزار میگویند که در نتیجه آن دو یا چندین کلاس را با هم یکجا میسازیم.هر دو آنها هدفشان بالا بردن کیفیت نرم افزار است. اشکال زدایی خطاهایی که در وقت برنامه نویسی ایجاد میشود را رفع میکند. این اشکال زدایی توسط برنامه نویس انجام میشود و تست نرم افزار خطاهای کاربردی نرم افزار را پیدا . و آن را حل میکند این خطاها ممکن است که سیستمی و یا از نظر دیداری (Interface) باشد.

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

تفاوت اشکال زدایی و تست برنامه
نظر شما
برای ارسال نظر باید وارد شوید.
2 نظر
افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند