Behat یک فریمورک اپنسورس برای زبان PHP است که امکان توسعۀ مبتنی بر رفتار (Behavior Driven Development) را برای دولوپرها فراهم میکند. با استفاده از متدولوژی BDD، کاربران سناریوهایی مینویسند که قابلفهم توسط انسان بوده و در آن رفتاری که اپلیکیشن کدنویسی شده توسط دولوپر باید داشته باشد را شرح میدهند؛ سپس این سناریوها میتوانند به صورت خودکار روی اپلیکیشن تست شوند تا مشخص شود که آیا رفتار مورد انتظار به درستی انجام میشود یا خیر.
نحوهٔ کار فریمورک Behat
روال کار بدین شکل است که سناریوها بر اساس الگوی Context-Action-Outcome شکل میگیرند که در آن رابطهای بین کاربران و دولوپرها صورت میپذیرد تا دولوپرها دقیقاً بدانند که کاربران چه فیچرهایی را میخواهند و این فیچرها چگونه عملکردی باید از خود نشان دهند؛ کاربران نیز از دولوپرها این انتظار را دارند که این فیچرها را دقیقاً طبق همان پلَن از پیش تعریف شده پیادهسازی کنند.
در واقع، میتوان گفت فریمورک Behat یک ابزار برای دولوپرها است که فرآیند ارائۀ اپلیکیشن را از طریق ایجاد ارتباط مستمر با کاربران، جستجوی آگاهانۀ اطلاعات و خودکارسازی تست اپلیکیشن، برای ایشان تسهیل میکند (جستجوی آگاهانۀ اطلاعات عبارت است از روشی که در آن با کشف اطلاعات خاص در طی فرآیند اجرای پروژه، تصمیمات مختلفی به غیر از تصمیماتی که در طی فرآیند برنامهریزی مطرح شده بود، گرفته میشود؛ این اطلاعات خاص را میتوان با صحبت با مشتریان، صحبت با کاربران به دست آورد).
این روش در مواقعی کاربرد دارد که مجریان یک پروژه از زمان برنامهریزی شده برای پیادهسازی آن به نحو مؤثری استفاده نکرده باشند! در واقع، این فریمورک متمرکز بر ارتباط بین کاربران و دولوپرها است و مشابه هیچ فریمورکی که قبلاً برای تست استفاده شده، نمیباشد؛ به عبارتی، به جای اینکه اثبات کند که یک سیستم به درستی ساخته شده است، در وهلۀ اول به کاربران و دولوپرها کمک میکند تا با تبادل اطلاعات مورد نیاز، با کمک یکدیگر یک سیستم درست و اصولی بسازند.
این فریمورک از ابتدا برای زبان PHP ساخته شده است و یک لایبرری عالی برای این زبان محسوب میشود. در کدنویسی این فریمورک، از اصول کدنویسی استاندارد پیروی شده و همچنین بخش عظیمی از کدبیس آن بر اساس کامپوننتهای فریمورک Symfony 2 است و میتوان گفت که در میان بسیاری از ابزارهای آنالیز استاتیک، بالاترین رتبه را به خود اختصاص داده است. همۀ اینها بدین معنی است که به عنوان یک توسعهدهندۀ پیاچپی، در صورت استفاده از فریمورک Behat، از کدی که میزنید لذت خواهید برد.
در پایان لازم به ذکر است که این فریمورک قابل توسعه بوده به طوری که حتی کوچکترین اجزای این فریمورک میتوانند توسعه یافته و یا حتی با یک سیستم پیشرفتۀ قدرتمند جایگزین شوند (با مراجعه به ریپازیتوری Behat در گیتهاب، میتوانید به سورسکد این فریمورک دسترسی یابید).