انواع تست ها در برنامه نویسی و تستینگ
مقدمه
انواع تست ها در برنامه نویسی و تستینگ : بسیار خب ! اول به اهمیت تست ها و اینکه چرا باید تست کنیم پی ببریم , حتما اگر برنامه نویس بوده باشید به موجود اعصاب خورد کنی به نام باگ برخورده اید و قطعا اگر این باگ سمت یوزر و زمانی که یوزر با برنامه تعامل میکند رخ بدهد میتواند تجربه کاربری را ضربه و یا حتی آن یوزر بار آخری باشد که به وبسایت و یا اپ شما سر میزند .
پس فکر کنم تا به اینجای مقاله به اهمیت تست و آزمایش برنامه ها پی برده اید , پس در ادمه سه نوع تست را به شما معرفی خواهیم کرد که به شما کمک میکند باگ هایتان را آسان تر و بهتر برطرف کنید و همچنین استفاده هر کدام را در ادامه خواهیم گفت .
Tdd چیست؟
در ابتدا بهتر است متد tdd را معرفی کنیم که مخفف : test-driven-development است , و به نوعی نمیتوان اسمش را متد گذاشت و بهتر است بگوییم یکی از اجزای پروسه تولید نرم افزار است .
و این متد به چه شکل است ؟ به این شکل است که : شما قبل از اینکه کد را وارد برنامه اصلی خودتان بکنید اول از همه آن را تست میکنید و بعد به برنامه تان اضافه میکنید و این کد قطعا یک بخش کوچکی از برنامه شماست .
بنظر من بهترین کار بکارگیری همین tdd در تولید نرم افزار های بزرگ است چراکهه قبل از بزرگ شدن نرم افزار به شما باگ ها را ریپورت میکند و شما آن هارا حل میکنید و فکر کنم خودتان بفهمید چقدر کارتان آسان تر میشود . (اگر نرم افزار بزرگ شود و حجم کد ها سنگین قطعا تست کردن آن هم سنگین و دشوار خواهد بود)
“Following TDD has not only allowed us to write simpler, more understandable code but has allowed us to think more about what we are implementing before actually implementing it.
دنبال کردن tdd و بکارگیری آن فقط ساده نوشتن و کد قابل فهم و مناسب را برای ما فراهم نکرده است بلکه فکر کردن درباره اینکه چه چیزی را در حال پیاده سازی آن هستیم قبل از اینکه واقعا پیاده سازی اش کنیم به ما میدهد .
Joe Birch, Senior Android Engineer at Buffer_
مشکل وقت دارید؟
اگر فکر میکنید که شرکت شما و یا خود شما اگر در حال پیاده سازی نرم افزاری هستید و وقت برای تست ندارید , به این مثال توجه کنید : شما یک نرم افزاری را نوشته اید بدون تست و اصول , و این نرم افزار را خودتان که برنامه نویس هستید تست میکنید و میبینید خطا های بسیار زیادی وجود دارد , الان چکار میکنید؟ بین آنهمه کد و نوشته هایتان ؟ (فکر کنید این نرم افزار بزرگ بود و شما در یک شرکت کار میکردید و قطعا اوضاع خیلی بدتر میشد) .
پس تست کردن را همین الان در نرم افزار هایتان بکار ببرید و کارتان را اصولی کنید و درباره پروسه تولید نرم افزار بیشتر مطالعه کنید . (در آینده مقاله هایی درباره پروسه تولید نرم افزار از کدفرند منتشر خواهد شد)
پس الان به این باور رسیدید که وقتی که برای تست میگذارید بیهوده نیست .
انواع تست ها در برنامه نویسی و تستینگ
- unit testing
- integration testing
- functional testing
یونیت تست(unit testing)
یونیت تست قطعه کوچکی از کد که نیازمند به کد ها و یا ابجکت های زیادی نیست , مثل یک متد و یا یک کلاس برای تست که نیازمند آبجکت ها و یا کلاس های دیگر و یا توابع دیگر نیستند , دقت کنید که گفتیم زیاد نه اینکه یک کلاس وابسته به کلاس دیگری برای ران شدن باشد و ما این را یونیت تست صدا نزنیم , نه! این اشتباه است ما قطعه کوچک را باید در نظر بگیریم و اگر کد بزرگی داشتیم قطعا از متد های دیگر استفاده خواهیم کرد .
و یکی از راه های سریع و ساده تستینگ همین یونیت تستینگ است
اینتگریشن تستینگ(integration testing)
تستی که در برگیرنده چند واحد کد است و منظورمان چند کلاس و متد و… با هم در یک کنسرت است . و معمولا بیشتر از یونیت تستینگ وقت گیر است چراکه complexity برنامه بالا رفته است و شما باید چند واحد را تست کنید و قطعا مشخص است که یونیت تستینگ وقت کمتری را خواهد گرفت .
و بنظرم کمتر از یونیت تستینگ از این روش استفاده کنید چراکه وقتگیر و کمی پیچیده تر است , اما اگر چند قطعه کد و یا چند واحد کد را دارید که باید تست کنید حتما به سراغ این روش بیاید .
فانکشنال تستینگ(functional testing)
فانکشنال تستینگ یا همان browser testing (تست مرورگر) است که معمولا به کاربر میدهند تا کلهم برنامه را تست کند و یا خود برنامه نویس آن را تست میکند و یا تستر شرکت آن را تست میکند و عیوب آن را پیدا میکند .
و یا میتوانید آن را به طراح تجربه کاربری پروژه بسپارید تا انجام دهد بهرحال اینتراکشن و تعامل یوزر در آن دخیل و کلید اصلی است .
دوره های آموزشی ما را دنبال کنید .