هدف SpecFlow پر کردن فاصله و ارتباط میان مشتریان و خبرگان دامنه1 با برنامهنویسان است. برای این منظور در SpecFlow سناریوهای متن آزاد به پیادهسازی مقید میشوند. در این قسمت از آموزش برای خودکارسازی2 تست روی Use Caseهای تحت وب3 صحبت خواهیم کرد. چارچوبهای متفاوتی برای این کار وجود دارند. ما در این آموزش به معرفی چارچوب WatiN4 میپردازیم. این چارچوب امکان تست روی Web Use Case را در مرورگر IE فراهم میکند. نحوه کار بسیار ساده است. به این ترتیب که در مرورگر وب، Use Csae باز شده و سپس با اِلِمانهای صفحه، تعامل صورت میگیرد.
برای این منظور، WatiN را با استفاده از کنسول مدیریت پکیج Nuget، با دستور زیر به پروژه خود اضافه نمایید.
PM> install-package watin
به این ترتیب همان طور که در تصویر ۲۵ مشاهده مینمایید، WatiN به رفرنسهای پروژه اضافه میشود.
تنظیماتی باید روی پروژه خود انجام دهید تا امکان خودکارسازی Web Use Case با WatiN برای شما میسر گردد. برای این منظور در بخش referenceهای پروژه، خاصیت Embed Interop types را در Interop.SHDocVw برابر با مقدار False قرار دهید. مانند تصویر ۲۶٫
هم چنین تنظیمات تصویر ۲۷ را به بخش AssemblyInfo.cs پروزه اضافه نمایید. به این ترتیب آماده استفاده از WatiN هستیم.
به عنوان نمونه یک Feature را برای جستجو در گوگل توصیف کردهایم. این Feature یک سناریو دارد. در این سناریو گفته میشود که اگر عبارت “Watin” نوشته شد و کلید جستجو زده شد، صفحات وبی که نمایش داده میشوند باید شامل کلمه “WatiN” باشند. این Feature و سناریو در تصویر ۲۸ نمایش داده شده است. شما میتوانید به جای گوگل، برای Web Use Case خود سناریو تعریف کرده و خودکارسازی گامها را بر اساس WatiN انجام دهید.
مراحل سناریو را با مدل مقیدسازی عبارات منظم، همانند تصویر ۲۹ تولید کردیم. حالا وقت آن است که با استفاده از کتابخانههای موجود در WatiN گامهای سناریو را پیادهسازی نماییم. به این ترتیب با توجه به کتابخانههای WatiN، در خط اول سناریو یک مرورگر IE باز شده و به آدرس www.google.com میرود. در این صفحه مرورگر، اگر المانها را شناسایی کنید، متوجه خواهید شد که فیلد متنی5 که روی آن جستجو انجام میدهید، دارای شناسه6 q است. بنابراین المان فیلد متنی در صفحه پیدا شده و سپس متن “Watin” در آن نوشته میشود. بعد از آن کلید جستجو در صفحه باید پیدا شود. در مرحله بعدی آن تعامل با این کنترل انجام شده و کلیک روی آن صورت میگیرد. در مرحله آخر بررسی میگردد که صفحه حتما شامل کلمه “Watin” باشد. اگر صفحه شامل کلمه مورد نظر ما باشد، تست با موفقیت طی شده است. در غیر این صورت اجرای تست منجر به شکست خواهد شد.
به این ترتیب با استفاده از چارچوب خودکارسازی تست، اجرای تست خود را در گامهای سناریوی SpecFlow مکانیزه مینماییم. امکان استفاده از چارچوبهای دیگر همانند Selenium و … نیز برای خودکارسازی گامهای تست امکان پذیر است.
در این هفت قسمت از آموزش SpecFlow سعی بر آن شد تا براساس مفاهیم اصلی BDD، چگونگی تعریف ویژگی و سناریوها تشریح گردد. در انتهای آموزش نحوه خودکارسازی تست برای Use Caseهای تحت وب تشریح شد. برای Use Caseهای دیگر نیز متقابلا چارچوبهای دیگری معرفی شده است. امید است با استفاده از آموزش ارائه شده در اینجا، معیارهای پذیرش سیستم بهتر گردآوری شوند. با گردآوری بهتر سناریوهای مد نظر مشتری، رضایت او از محصول نهایی بیشتر خواهد بود. با خودکارسازی تست، زمان تست سیستم کاهش خواهد یافت و در نهایت سیستم با کیفیت بالا در زمان کوتاهتر روانه بازار خواهد شد.
از همراهی شما در آموزش مقدماتی SpecFlow سپاسگزاریم.
این آموزش به سفارش تیستن و به قلم سرکار خانم مهندس سیده مهسا میری آماده گردیده، و واحد آموزش تیستن نیز آنرا منتشر کرده است.
تمام قسمتهای آموزش Specflow، به صورت دستهبندی شده از اینجا در دسترس است.