In the agile world, the Stake Holders or Business Analysts or Product Owners decides the behavior of systems first and writes System Requirements or System Scenarios in Customer’s point of view. These requirements are reviewed and singed off to Developers for development, this is BDD.
Now the above System Requirements can be easily converted to end user tests using BDD approach. The code can easily read/understandable to Product Owners or Business Analysts. So Selenium with Cucumber is good choice for executing the tests.