GIT version control
We use GIT as a version control system. We work with separate branches that allow us to have control over what is deployed in different environments and to be able to deploy it quickly in production.
Unified development environments with all necessary tools
We unify our development environments with Docker and integrate all the necessary tools for local development.
Test driven development
We develop TDD / BDD tests of what is expected of the required functionality. In this way we automate the acceptance criteria, reducing ambiguities and resolving and anticipating the difficulties that may arise initially in the coding phase and later in the testing phase.
Code review (Pair review)
Our code is always reviewed by another team member before being integrated with the main development branch through Merge Request. This improves the quality of each delivery and reduces eventual human errors.
We use Jenkins as a continuous integration tool to automate the different processes and calculate quality metrics, obtain a professional deliverable and avoid regressions by means of code analysis and test execution. Each branch of code is analyzed and its result is published and notified to the team.
Static code analysis
We integrate objective tools that measure the status of the developed code (modules, libraries, themes) and provide information to know its quality. This way we can detect and prevent problems: duplicated functions, overly complex methods, low-quality code, and non-standard coding style.
These tests are automated in the continuous integration system (Jenkins) and are executed in each new version of the software allowing to have a history of its evolution.
Visual Regression Testing
Integrated BackstopJS as a visual regression tool: compares different browser resolutions with the previous version to detect differences and possible regressions and unwanted effects on other parts of the system.