Automated Testing with a Domain-Specific Language (DSL)
What does this documentation cover?
This documentation covers features in the Possum Labs DSL project. These features extend Specflow to add support for variables, entities, and proxies. You can write tests for web applications using the Selenium features, and you can write tests for application programming interfaces (APIs) and enterprise service buses (ESBs) using the core functionality.
If you’re new to automated testing with a domain-specific language (DSL), this documentation will help you get up and running. If you’re already familiar with DSL testing, you may want to take a look at the advanced features and customizations.
What is a domain-specific language (DSL)?
A domain-specific language is a limited-use language made up of words that have meaning within a certain context. That context, or domain, is often a product, business, or workflow. The keywords in a domain-specific language can be combined and used to accomplish specific tasks. Alexa, Cortana, and Siri are examples of domain-specific languages: you can interact with them in simple, scripted ways to accomplish tasks.
Why use a domain-specific language for automated testing?
Automated testing helps ensure that software remains reliable with every new release. For automated testing to be successful, it’s important to have good test coverage. That means writing as many tests as are needed to check that all the parts of an application are working individually and together—and keeping those tests up-to-date as things change.
Tests written in a domain-specific language are human-readable and don’t require a background in coding or development to learn or understand. More people can participate in writing them, and they can provide visibility into testing for people across an organization, which leads to greater trust and reliability.
When tests are written in a domain-specific language, the underlying code for the test framework can be updated to support changing technologies without needing to rewrite the tests in most cases. The code for the product that is being tested can usually also be updated without breaking the tests, which helps to ensure that the product remains reliable as it evolves.
How can I learn more?
You can:
- Check out the Table of Contents for more on what this documentation covers
- Read the Glossary to learn more about the terms and concepts referenced in this documentation and related tutorials
- Check out the documentation for SpecFlow, Gherkin, and Selenium
What technologies is the Possum Labs DSL project built on?
The DSL project is built in C# and is compatible with .NET Core and Selenium 4.
I’m stuck. Where can I get help?
If you need help or would like to submit a bug, please open an issue in the DSL project on Github.