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

باور اول: فرآیند تست کردن هزینه بر است.

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

باور دوم: فرآیند تست کردن وقت گیر است.

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

باور سوم: تنها محصولاتی که کامل توسعه داده شده اند تست می شوند.

بدون شک فرآیند تست کردن به سورس کد بستگی دارد، اما بررسی نیازمندی ها و توسعه ی موارد تست به سورس کد بستگی ندارد. با این وجود، اگر از مدل های افزایشی (Incremental Models) در چرخه ی توسعه ی نرم افزار استفاده شود، وابستگی فرآیند تست کردن به نرم افزاری که کاملاً توسعه داده شده است کاهش پیدا می کند.

بسته ی آموزش ویدئویی Unit Testing فریم ورک xUnit.net

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

باور چهارم: تست کردن تمام و کمال قابل انجام است.

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

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

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

باور ششم: مسئولیت وجود نقص هایی که پیدا نشده اند به عهده ی تسترها است.

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

باور هفتم: تسترها مسئول کیفیت نرم افزار هستند.

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

باور هشتم: در صورت امکان، باید از خودکار سازی فرآیند تست برای صرفه جویی در زمان استفاده شود.

این که خودکار سازی فرآیند تست (Test Automation) باعث صرفه جویی در زمان می شود باور درستی است اما انجام این کار در هر زمانی از چرخه ی توسعه ی نرم افزار امکان پذیر نیست. در رابطه با Test Automation از بسته ی آموزش ویدئویی Automated Testing از ابتدا تا پایان استفاده کنید. خودکاری سازی فرآیند تست باید پس از اینکه نرم افزار به صورت دستی شده است و تا حدودی Stable است انجام گیرد. علاوه بر این، اگر نیازمندی ها مکرراً دستخوش تغییرات شوند، انجام خودکار سازی فرآیند تست امکان پذیر نیست.

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

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

باور نهم: هر کسی می تواند یک نرم افزار را تست کند.

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

باور دهم: تنها وظیفه ی یک تستر پیدا کردن اشکالات است.

پیدا کردن اشکالات درون یک نرم افزار به عهده ی تسترها می باشد اما این تمام مسئولیت آنها نیست. توسعه دهندگان تنها مسئول ماژول یا Component ی هستند که به آنها اختصاص داده شده است در حالی که تسترها Domain Expert هستند. در رابطه با اینکه یک Domain Expert کیست از بسته ی آموزش ویدئویی کاربردی طراحی نرم افزار Domain Driven Design استفاده کنید. آنها رفتار کلی نرم افزار، وابستگی ها آن، تاثیر یک ماژول بر ماژول دیگر و بسیاری مورد دیگر را درک می کنند.

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

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

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