Skip to content

لزوم نوشتن کلاس های تست چیست؟

Notifications You must be signed in to change notification settings

Schabaani/why-need-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

لزوم نوشتن تست برای پروژه ها

این فایل برداشت آزادی است از صحبت های آرش خانگلدی در دورهمی logcat

چرا تست می نویسیم؟

چون که شب ها راحتر بخوابیم. در زمان های بسیار دور برنامه نویسان ادعا می کردند که برنامه آنها کار می کند اما پس از مدتی مشتری با زنگ ها و پیام های مکرر خواب و آرامش را از برنامه نویسان می گرفت. اما با نوشتن تست ما ادعای خود را اثبات می کنیم.اثبات می کنیم که برنامه کار می کند.

هرم تست

Test Pyramid

  • Manual Test

به عنوان یک کاربر معمولی آن را تست می کنیم بدون هیچ گونه ابزار اتوماتیکی.

  • unittest

ساده ترین و راه ترین روش برای نوشتن یک تست. در این روش فقط منطق یک تکه برنامه تست می شود. و به side effect های کاری نداریم.

  • integration test

یک view یا یک سناریو کوچک یا یک component را تست می کنیم. نکته مهم این است که در این نوع از تست و unittest ما از داده ها و روش های mock برای تست بهره می بریم.

  • End to End Test

تست واقعی با داده و شرایط واقعی. خبری از mocking نیست. پر هزینه و زمان بر است. این روش تست بیشتر برای لبه های حساس یا critical پروژه از آن استفاده می شود. فرض کنید که عملیات پرداخت دارید. این کار بسیار حساس است و باید مطمئن باشید که در شرایط واقعی جواب می دهد.

هرم تست از دید مارتین فالر

در این هرم تست کردن قسمت های مختلف از دو زاویه هزینه و زمان مورد بررسی قرار گرفته است. Martin Fowler

چه زمانی تست بنویسیم؟

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

اصول طراحی نرم افزار

About

لزوم نوشتن کلاس های تست چیست؟

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published