این فایل برداشت آزادی است از صحبت های آرش خانگلدی در دورهمی logcat
چون که شب ها راحتر بخوابیم. در زمان های بسیار دور برنامه نویسان ادعا می کردند که برنامه آنها کار می کند اما پس از مدتی مشتری با زنگ ها و پیام های مکرر خواب و آرامش را از برنامه نویسان می گرفت. اما با نوشتن تست ما ادعای خود را اثبات می کنیم.اثبات می کنیم که برنامه کار می کند.
- Manual Test
به عنوان یک کاربر معمولی آن را تست می کنیم بدون هیچ گونه ابزار اتوماتیکی.
- unittest
ساده ترین و راه ترین روش برای نوشتن یک تست. در این روش فقط منطق یک تکه برنامه تست می شود. و به side effect های کاری نداریم.
- integration test
یک view یا یک سناریو کوچک یا یک component را تست می کنیم. نکته مهم این است که در این نوع از تست و unittest ما از داده ها و روش های mock برای تست بهره می بریم.
- End to End Test
تست واقعی با داده و شرایط واقعی. خبری از mocking نیست. پر هزینه و زمان بر است. این روش تست بیشتر برای لبه های حساس یا critical پروژه از آن استفاده می شود. فرض کنید که عملیات پرداخت دارید. این کار بسیار حساس است و باید مطمئن باشید که در شرایط واقعی جواب می دهد.
در این هرم تست کردن قسمت های مختلف از دو زاویه هزینه و زمان مورد بررسی قرار گرفته است.
قبل از پیاده سازی فیچر تست های مربوط به آن را بنویسید. این کار ویژگی های بزرگی دارد. اساسا شروع به نوشتن تست کار سخت و زمان بری است. اما زمانی که شما تست هایی پیاده سازی کنید که تمام شرایط را پوشش دهند دارند برای شما مسیر طراحی و پیاده سازی را مشخص می کنند. زمانی که احساس کنید تست های شما برای آماده سازی کلاس هایی که قراراست پیاده سازی کنید خیلی پیچیده است این مفهوم را می تواند برساند که از اصول طراحی نرم افزار غافل شده اید.