تست (آزمون) نرم افزار مفاهیم و عملیات
قیمت : ۸۴۹,۰۰۰ ریال
مهندسی نرمافزار تنها رشته مهندسی است که در آن تست محصول یک دغدغه فنی و سازمانی اصلی است و مانند هزینه یک عامل مهم تلقی می شود. عوامل متعددی در ایجاد این وضعیت نقش دارند:
اولین عاملی که موجب میشود تست نرمافزار به چنین دغدغه بزرگی تبدیل شود، اندازه و پیچیدگی محصولات نرمافزاری است که طراحی محصولات نرمافزاری را به یک کار با ریسکی بالا و مستعد خطا تبدیل میکند.
عامل دوم فقدان یک فرآیند توسعه استاندارد برای محصولات نرمافزاری است، به این معنی که کیفیت محصول را نمیتوان با کنترلهای فرآیند تضمین کرد و در عوض باید با کنترلهای محصول تضمین شود.
عامل سوم کمبود روشهای عملی و مقیاسپذیر است که میتوانند کیفیت محصول را از طریق تجزیهوتحلیل استاتیک محصول تضمین کنند و بار را بهروشهای پویا منتقل کنند.
عوامل دیگر عبارتاند از فقدان یک روش عمومی و باقابلیت استفاده مجدد، عدم مقیاسپذیری روشهای توسعه صحت سنجی پایدار و شایع بودن تغییرات در مشخصات در فرآیندهای فرآیند توسعه، نگهداری، بهبود بخشیدن و غیره.
موضوع این کتاب بررسی تست نرمافزار میباشد. از میان کتابهای متعددی که در حال حاضر با همین موضوع وجود دارند این کتاب را میتوان با ویژگی های ذیل توصیف کرد:
تست نرمافزار بهعنوان بخشی جداییناپذیر از تضمین کیفیت نرمافزار. نگارندگان این اثر تست نرمافزار را در کنار بسیاری از تکنیکهای دیگر بهعنوان بخشی از یک استراتژی جامع برای تضمین کیفیت نرمافزار قلمداد می کنند. قانون بازده کاهشی از استفاده از انواع تکنیک های متنوع که مکمل یکدیگر هم هستند حمایت می کند، به نحویکه هریک از این تکنیک ها درجایی که بیشترین بازده سرمایهگذاری را داشته باشند، مورداستفاده قرار میگیرند. به همین دلایل بهتر است به جای آنکه تست نرمافزار به عنوان مجموعه ای مجزا از تکنیک ها موردمطالعه قرار گیرد، در زمینه وسیع تری موردمطالعه قرار گیرد که روش های دیگری را هم در برمیگیرد.
تست نرمافزار بهعنوان یک تکنیک مکمل برای تجزیه و تحلیل ایستا. از همان روزهای اولیه مهندسی نرمافزار، شاهد بحثهای جالب و متنوعی در مورد محاسن تست نرمافزار در مقابل تحلیل استاتیک برنامهها در زمینه کارایی، مقیاسپذیری، سهولت استفاده و غیره بودهایم. نگارندگان کتاب بر این عقیدهاند که برخی از این تکنیک ها برای بعضی از مشخصات کارایی خوبی دارند و برای دیگر مشخصات کارایی کمتری دارند. وقتی متوجه میشویم که استفاده از یک تکنیک یا تکنیک دیگر مشکل است، این نتیجه ربطی به نقص ذاتی تکنیک ندارد، بلکه این مشکل به این دلیل حادث شده که این تکنیک برای مشخصات نادرستی مورداستفاده قرار گرفته است. البته، همیشه ویژگیهایی که باید درستی محصول را تضمین کنند، انتخاب نمیکنیم. درواقع میتوانیم یک مشخصات پیچیده را به اجزاء کوچک تری تجزیه کنیم و هر جزء را با تکنیکی که مطابقت بیشتری با آن دارد، نگاشت می کنیم. این موضوع در فصل ششم نشان داده شده است.
تست نرمافزار بهعنوان یک فرآیند گامبهگام و قاعده مند. در اوایل، این باور عمومی شکل گرفت که تست نرم افزار ابزاری برای اثبات وجود اشکال در برنامه هاست، اما هرگز نبود این اشکال ها را اثبات نمی کند. این یک باور یک شهرت غیرمنصفانه است و همانطور که در فصل هفتم شرح می دهیم، در حقیقت می توان از تست نرم افزار برای همه نوع اهدافی استفاده کرد. فارغ از منصفانه بودن و یا نبودن این باور، این باور دو نتیجه ایجاد کرده است. اولین فرض این است که تنها هدف از تست شناسایی، تشخیص و حذف خطا است. نتیجه دوم بر این باور است که تست صرفا برای تست تولید داده، بهویژه تولید دادههای تستی است که بیشترین پتانسیل را برای کشف خطاها دارند. در مقابل، بر این عقیده ایم که تست یک فرآیند چندمرحلهای را دنبال میکند که شامل شناسایی، تجزیهوتحلیل هدف، تولید دادههای تستی، طراحی اوراکل، طراحی درایور تست، استقرار تست و تجزیهوتحلیل نتیجه تست است و به هر یک از این مراحل فصلهای مختلفی را اختصاص میدهیم.
تست نرمافزار بهعنوان یک فرآیند رسمی و یا قابلیت رسمی شدن از آنجایی تست نرم افزار به تجزیهوتحلیل نسبتا کمی در مورد محصول نرمافزاری تحت تست و یا مشخصات آن نیاز دارد، اغلب اوقات اینگونه تلقی میشود که تست فعالیتی است که میتوان آن را بهطور غیررسمی و بدون قاعده انجام داد. در مقابل، بر این عقیده ایم تست باید با همان سطح دقت تایید استاتیکی برنامه انجام شود و یک شخص برای انجام موثر تست، باید دانش کافی در زمینه مشخصات نرمافزار، درستی برنامه، درستی نسبی، مفهوم مشکل و حذف مشکل داشته باشد. این موضوع در فصل ششم با جزئیات بیشتری موردبحث قرار گرفته است.
تست نرمافزار بهعنوان یک فعالیت هدفگرا. بر این عقیده ایم که تست صرفا به یافتن و حذف خطاها اختصاص ندارد و ممکن است اهداف گستردهای داشته باشد، برای مثال تخمین چگالی مشکل، تخمین قابلیت اطمینان، تایید قابلیت اطمینان و غیره نمونه هایی از این اهداف محسوب می شوند. این موضوع در فصل هفتم بهتفصیل موردبحث قرار گرفته است.
این کتاب از یادداشتهای درسی یک دوره تست نرمافزار و تضمین کیفیت نشات گرفته است میگیرد و به همین دلیل در درجه اول برای استفاده در کلاس درسی در نظر گرفته شده است ولی ممکن است برای مهندسان شاغل در صنعت نرمافزار و همچنین برای محققان مهندسی نرمافزار جالب باشد. این کتاب به پنج بخش کلی تقسیمشده و هر قسمت شامل 3 یا 4 فصل بوده و درمجموع 16 فصل دارد.
مرتبط با این کتاب
نظرات کاربران