تست محصول در Agile

همیشه به خاطر می آورم , زمانی که برنامه نویس بودم و یا به عنوان رهبر تیم توسعه نرم افزار فعالیت می کردم با مقوله تست برنامه مشکل داشتیم . نرم افزار که توسعه می دادیم یا اصلا تست نمی شد و یا اگر هم می شد به صورت دستی توسط خود برنامه نویس ها یا یک سری افراد متفرقه مانند اسپانسر پروژه تست می گردید که چندان روش با اعتباری نبود. معمولا برنامه ای که پر از باگ باشد مستعد از دست دادن مشتری هست و از دست دادن مشتری مصادف با عصبانیت مدیران شرکت خواهد شد . برنامه...
Continue reading...

آیا TDD در عمل امکان پذیر می باشد؟

آیا TDD در عمل امکان پذیر می باشد ؟ این سوالی بود که یکی از عزیزان از بنده پرسیده بود . ایشون فرموده بودند : “شما که می گید اول تست بنویسیم و بعد کد نویسی , مگر چنین چیزی ممکن است ؟ مگر برای کد نانوشته می شود تست نوشت؟ ” و ایشون TDD را به یک افسانه تشبیه کرده بودند . من همین سوال را از شما می پرسم , آیا در عمل و یا اصطلاحا در Real World امکان دارد که TDD عملی شود ؟ در مقاله قبلی گفته شد که : TDD عبارتست از ترکیب TFD...
Continue reading...

کد تمیز بهتر از کد کثیف

قبلا پستی در مورد نحوه نوشتن کدهای تمیز داشته ام ولی هرچه قدر ما به صورت یک پست خلاصه بنویسیم ثواب یک کتاب جامعه در این مورد را نخواهد داد . بدلیل اهمیت این قضیه بر این شدم که کتاب خوبی در این مورد معرفی نمایم . برادر گرامی Robert Martin کتاب بسیار جالبی با عنوان Clean Code: A Handbook of Agile Software Craftsmanship دارد که خواندن آن خالی از لطف نمی باشد . در این کتاب خواهید خواند : چگونه کد خوب را از کد بد بشناسیم چگونه کدهای خوب بنویسسیم و چگونه کدهای بد را به خوب تبدیل...
Continue reading...

چگونه کدهای تست نشده را رفاکتور نماییم؟

معمولا در مرحله Bug-fixing یا رفع خطاها فرصتهای مغتنمی برای رفاکتور کردن کدهای تست نشده به وجود می‌آید . به عبارت دیگر شما کدهایی دارید که مشکل دار هستند و این فرصت را دارید تا با ساختاری بهتر کدها را بازسازی نمایید . بعنوان یک قاعده کلی ، به ازای هر کسی که یک مشکل (Problem) را به شما اطلاع می دهد بین 10 تا 100 نفر دیگر وجود دارد که با همین مشکل مواجه شده است ولی به شما اطلاع نداده است . زمانی که می خواهید به مسائل بالای کیفیت دست پیدا کنید در واقع می خواهید کدهای...
Continue reading...

تست نرم‌افزار در Agile Software Development

همان‌طور که می‌دانید Unit Testing به معنای تست کردن قسمت کوچکی از برنامه است که ماجول یا یونیت برنامه نام دارد و می‌تواند در پیدا کردن اشکالات برنامه بسیار مؤثر واقع شود، اما در حقیقت نوشتن یک Unit Test بیشتر عملی است که در قسمت طراحی نرم‌افزار به کار می‌رود تا در قسمت Verification یا اشکال‌یابی، و می‌تواند نظرات کاربران را بگیرد.  به این معنا که وقتی کاربری در مورد سیستم نظر داد که مشکلی در Unit وجود دارد و آن مشکل در Unit Testing حل شد، در قسمت‌های بعدی نمی‌توان از او برای آن قسمت از برنامه نظرخواهی کرد. علاوه بر...
Continue reading...