در این پست از وبسایت پرووید در رابطه با مقدمه ای بر اهمیت انجام تست در نرم افزار صحبت خواهیم کرد.

تست کردن چیست؟

تست کردن (Testing) فرآیند ارزیابی یک سیستم یا اجزای آن با قصد پیدا کردن آن است که آیا نیازمندی های مشخص شده توسط آن سیستم برآورده می شود یا خیر. به بیان ساده، تست کردن فرآیند اجرای یک سیستم برای شناسایی هر شکاف، خطا یا نیازمندی های از دست رفته در مقایسه با نیازمندی های واقعی است.

بر اساس استاندارد ANSI / IEEE 1059، تست کردن را می توان به صورت زیر تعریف کرد:

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

چه کسی مسئول انجام فرآیند تست کردن است؟

این که چه کسی وظیفه ی انجام فرآیند تست کردن را انجام می دهد بستگی به فرآیند پروژه و ذینفع های (stakeholder) آن دارد. در صنعت فناوری اطلاعات، کمپانی های بزرگ تیم هایی را دارند که مسئول ارزیابی کردن نرم افزار تولید شده با توجه به نیازمند های تعریف شده می باشند. علاوه بر این، توسعه دهندگان نرم افزار نیز می توانند با انجام تست های واحد (Unit Testing) در فرآیند تست کردن مشارکت کنند. در رابطه با Unit Testing توصیه می کنیم از بسته ی آموزش ویدئویی Unit Testing برای برنامه نویسان سی شارپ استفاده کنید. در بسیاری از موارد، افراد زیر مسئول تست کردن سیستم هستند:

  • تستر نرم افزار (Software Tester)
  • توسعه دهنده ی نرم افزار (Software Developer)
  • مدیر پروژه (Project Lead/Manager)
  • کاربر نهایی (End User)

کمپانی های مختلف مسئولیت های مختلفی در تست کردن نرم افزار برای تستر نرم افزار، مهندس اطمینان کیفیت نرم افزار (Software Quality Assurance Engineer)، تحلیلگر اطمینان کیفیت (QA Analyst) و غیره در نظر می گیرند. این مسئولیت ها بر اساس تجربه و دانش هر کدام از این افراد تعریف می شوند.

بسته ی آموزش ویدئویی Automated Testing از ابتدا تا پایان

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی Automated Testing از ابتدا تا پایان دیدن کنید.

یکی از نکات مهم در تست کردن نرم افزار این است که فرآیند تست کردن را نمی توان در هر زمانی از چرخه ی نرم افزار انجام داد. بخش های بعدی اصولی در مورد زمان مناسب برای شروع فرآیند نرم افزار و پایان آن ارائه خواهند کرد.

زمان مناسب برای آغاز کردن فرآیند تست کردن

اگر فرآیند تست کردن نرم افزار در اوایل کار آغاز گردد، هزینه ها و زمان مورد نیاز برای انجام دوباره ی کارها و تولید نرم افزار عاری از خطا و تحویل آن به مشتری کاهش می یابد. با این وجود، با توجه به چرخه ی حیات توسعه ی نرم افزار (Software Development Life Cycle)، فرآیند تست کردن را می تواند از فاز جمع آوری نیازمندی ها (Requirements Gathering) آغاز و تا فاز استقرار نرم افزار (Deployment) ادامه داد.

زمان مناسب برای آغاز فرآیند تست کردن به مدل توسعه ی (Development Model) مورد استفاده نیز بستگی دارد. برای مثال، در مدل توسعه ی آبشاری (Waterfall Model)، فرآیند رسمی تست کردن در فاز تست کردن (Testing Phase) که یکی از فازهای مدل آبشاری است انجام می پذیرد در حالی که در مدل های افزایشی (Incremental Model)، فرآیند تست کردن نه تنها در پایان هر چرخه (Iteration) انجام می پذیرد بلکه نرم افزار تکمیل شده نیز در پایان کار مورد تست قرار می گردد.

موضوع دیگر اینکه در فازهای مختلف چرخه ی حیاط توسعه ی نرم افزار (Software Development Life Cycle)، فرآیند تست کردن به روش های مختلف انجام می پذیرد:

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

بسته ی آموزش ویدئویی Unit Testing برای برنامه نویسان سی شارپ

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی Unit Testing برای برنامه نویسان سی شارپ دیدن کنید.

زمان مناسب برای متوقف کردن فرآیند تست کردن

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

  • سر رسیدن مهلت فرآیند تست کردن
  • تکمیل شدن اجرای موارد تست
  • تکمیل شدن پوشش عملیاتی و پوشش کدی تا یک نقطه ی خاص
  • پایین آمدن نرخ وجود اشکال ها تا سطحی مشخص و عدم وجود هیچ اشکال با اولویت بالایی
  • تصمیم های مدیریتی

تأیید و اعتبار سنجی (Verification and Validation)

برای بسیاری از افراد که این دو واژه را در جایگاه یکدیگر استفاده می کنند، معنای آنها گیج کننده است. به همین منظور در جدول زیر، تفاوت های بین این دو واژه قرار داده شده است.

تأیید (Verification)

  • تایید پاسخ به این سوال است که “آیا دارید به درستی آن را می سازید؟”
  • اطمینان حاصل می کند که سیستم نرم افزاری تمامی عملیات مورد نیاز را برآورده می کند.
  • تایید در ابتدا اتفاق می افتد و شامل بررسی کردن وجود مستندات، کد و غیره است.
  • توسط توسعه دهندگان انجام می شود.
  • شامل فعالیت های ایستا از قبیل جمع آوری بررسی ها، پیگیری ها و بازرسی های مورد نیاز برای تأیید نرم افزار است.

اعتبار سنجی (Validation)

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

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

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *