Automation guarantees stability

Test automation

Higher software quality thanks to automation. Intelligent software includes automated testing. We use various testing methods to test our platforms in an automated way.

Our online platforms are built on the framework Symfony , which offers various testing mechanisms. In addition to classic unit tests, we also rely primarily on functional tests with Behat. These map the workflows within an application - or a platform - and run through various scenarios with test data. We also use the tests to monitor authorization structures and ensure that resources and content are only visible to authorized users.

Comprehensive test coverage is the be-all and end-all for high-quality and reliable software. Especially in the further development phase of a project, the tests are helpful because they always verify the functionality of the existing application. If an enhancement is made in one place , this can have unintended influences on other parts of the application. The tests help to detect and minimize such side effects directly. They are executed individually in our local development and run automatically before each checkout via Bitbucket Pipelines (Continuous Integration) .

Behavior driven development

With Behat we describe test scenarios. These are defined in the form of sentences with formulated rules. Depending on the complexity of the test, individual code blocks are programmed for it. The described test scenarios enable efficient and standardized writing of the tests.

Title (one line short description of story) Explaining: As a [role] (as ... [Rolle]) I want [feature] (would like to ...[Feature]) So that [benefit] (so that, in order to, because ... [Benefit]) Acceptance Criteria: (paraphrased as scenarios) Scenario: Title Given [context] (Given, preceding fact [Kontext]) And [more context] When [event] (When [Ereignis]) Then [outcome] (Then [outcome, goal]) And [another outcome] Scenario: ...

Ghost Inspector

For automated GUI tests, especially in productive environments, we rely on Ghostinspector. This allows us to directly simulate user interactions in the browser. We also use Ghostinspector to automatically detect changes in GUI areas on websites or applications. Privacy issues can be addressed with Ghostinspector. For example, we make sure that the cookie message always appears and that no scripts are loaded before the user clicks on "Accept cookies".