
آموزش نکات و ترفندهای SpecFlow برای تست نرم افزار
آموزش نکات و ترفندهای SpecFlow برای تست نرم افزار یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، نکات و ترفندهای SpecFlow برای تست نرم افزار است که با نام اصلی SpecFlow Tips and Tricks از شرکت Pluralsight منتشر شده است.
فریمورک SpecFlow چیست؟
فریمورک SpecFlow کمک می کند که در کنار زبان Gherkin سناریوهای تست یک نرم افزار را طوری بنویسیم که توسط افراد برنامه نویس و افراد تجاری قابل خواندن باشند. این موضوع کمک میکند تا یک درک مشترک از رفتارهای یک سیستم نرم افزاری برای افراد تجاری و فنی ایجاد بگردد. فریمورک SpecFlow در راستای استفاده کردن از روشBDD برای توسعه نرمافزار ارائه شده است. با استفاده از این فریمورک زبان Gherkin تمامی افراد حاضر در یک پروژه نرم افزاری می توانند از یک نقطه نظر مشترک با نیازمندیهای سیستم آشنا شده و آنها را در قالب تست های نوشته شده مشاهده کنند.
زیبایی استفاده کردن از فریمورک SpecFlow و زبان Gherkin در این است که تست های نوشته شده نه تنها حکم مستندات را دارند بلکه قابل اجرا کردن و یا گزارش گیری نیز می باشند. علاوه بر این قابلیت های مختلف SpecFlow و زبان Gherkin کمک میکند تا تلاش های مربوط به همگام کردن مستندات با تغییرات غیر قابل اجتناب در نیازمندیهای نرم افزار به حداقل برسد. به عبارت دیگر با تغییر در نیازمندیهای یک سیستم نرمافزاری تست های نوشته شده با فریمورک SpecFlow سریعاً بازتاب این تغییرات را در خود نشان می دهند و از این جهت مستندات ایجاد شده با این فریم ورک همواره با نیازمندی های سیستم همگام هستند.

فریمورک SpecFlow قابلیت های مختلف دیگری را نیز ارائه می دهد تا بتوانیم نگهداری تستها را به سادگی انجام بدهیم. استفاده کردن از پارامترها برای کاهش تعداد تست ها و یا قابلیت استفاده مجدد از مراحل نوشته شده در هر کدام از تست ها جز دو مورد از تکنیکهای هستند که با استفاده از آن ها می توانیم نگهداری تست ها را ساده تر کنیم.
بررسی Step ها و Binding ها در SpecFlow
در تست نرم افزار با SpecFlow، ارتباط میان Step ها و Binding ها نقش مهمی در اجرای صحیح سناریوهای آزمایشی دارد. Step ها بخش هایی از سناریو هستند که رفتار مورد انتظار سیستم را توصیف می کنند و Binding ها مشخص می کنند که هر Step چگونه به کد اجرایی مرتبط شود. درک درست این ارتباط به شما کمک می کند ساختار تست های خود را بهتر مدیریت کنید و از تکرار غیرضروری کد در سناریوهای مختلف جلوگیری نمایید.
در پروژه هایی که تعداد سناریوهای تست افزایش پیدا می کند، مدیریت صحیح Binding ها اهمیت بیشتری پیدا می کند. آشنایی با نحوه تعریف و سازماندهی آن ها باعث می شود توسعه و نگهداری تست ها ساده تر شود. در این آموزش با بررسی Step ها و Binding ها، با روش هایی آشنا می شوید که به شما کمک می کنند ساختار تست های SpecFlow را به شکل منظم تری طراحی کنید و مشکلات احتمالی در ارتباط میان سناریوها و کدهای اجرایی را بهتر تشخیص دهید.
استفاده از Hook ها و Scoped Binding ها در SpecFlow
Hook ها در SpecFlow امکان اجرای کد را در مراحل مشخصی از چرخه اجرای تست فراهم می کنند. برای مثال، می توان از آن ها برای انجام کارهایی استفاده کرد که باید پیش از اجرای یک سناریو یا پس از پایان آن انجام شوند. استفاده صحیح از Hook ها به شما کمک می کند عملیات تکراری را از بدنه Step ها جدا کنید و ساختار سناریوهای تست را خواناتر نگه دارید.
Scoped Binding ها نیز برای محدود کردن دامنه استفاده از Binding ها به شرایط یا محدوده های مشخص به کار می روند. این قابلیت زمانی اهمیت پیدا می کند که چند سناریو به Step هایی با عبارت های مشابه اما رفتارهای متفاوت نیاز داشته باشند. در این آموزش با نحوه استفاده از Hook ها و Scoped Binding ها آشنا می شوید تا بتوانید منطق اجرای تست ها را بهتر سازماندهی کنید و از تداخل احتمالی میان تعریف های مختلف Step جلوگیری نمایید.
استفاده از پارامترها و Data Table ها در سناریوهای SpecFlow
یکی از روش های کاربردی برای افزایش انعطاف پذیری تست ها در SpecFlow، استفاده از پارامترها در Step ها است. با تعریف پارامتر می توانید یک Step را برای مقادیر مختلف به کار ببرید، بدون اینکه لازم باشد برای هر مقدار یک Step جداگانه ایجاد کنید. این رویکرد به کاهش تکرار و افزایش قابلیت استفاده مجدد از کد کمک می کند و امکان نوشتن سناریوهای متنوع تر را فراهم می سازد.
Data Table ها نیز برای انتقال مجموعه ای از داده ها به Step ها استفاده می شوند و به شما اجازه می دهند اطلاعات چندگانه را به شکلی ساختاریافته در سناریوهای Gherkin تعریف کنید. این قابلیت برای تست رفتارهایی که به چند ورودی یا ترکیبی از داده ها وابسته هستند، مفید است. در این آموزش با پارامترگذاری Step ها و کار با Data Table ها آشنا می شوید تا بتوانید سناریوهای تست را با داده های متنوع و ساختارمند طراحی کنید.
سرفصل مطالب آموزش ویدئویی نکات و ترفندهای SpecFlow برای تست نرم افزار
فصل اول: بررسی Step ها و Binding ها- مقدمه
- بررسی اجمالی Gherkin و SpecFlow
- نگاشت کردن چندین Step به یک Step Definition تک
- اجرا کردن Step های دیگر از درون یک Step Definition
- استفاده کردن از Step Binding ها در Assembly های دیگر
- به اشتراک گذاری داده ها بین Step ها ها با استفاده ازContext Injection
- جمع بندی
- مقدمه
- استفاده کردن از Hook ها برای اجرای کدهای بیشتر
- استفاده کردن از Hook های مربوط به یک TestRun و Feature
- استفاده کردن از Hook های مربوط به سناریو
- محدود کردن اجرا شدن Step Definition ها با استفاده از Scoped Binding ها
- ایجاد کردن یک Scoped Binding
- ترکیب کردن شرط های مروبط به Scoping
- محدود کردن اجرای Hook ها با استفاده از Tag Filtering
- جمع بندی
- مقدمه
- اولویت تبدیل و یا Conversion مربوط به آرگومان های Step ها
- بررسی Conversion های استاندارد
- استفاده از Conversion های سفارشی در پارامترهای Step ها
- تبدیل کردن Data Table ها به کالکشن های Strongly-Typed
- محدود کردن کد با استفاده از Dynamic Table Conversion
- انجام دادن خودکار Dynamic Table Conversion
- جمع بندی
- جمع بندی دوره اموزشی







