In the Rails ecosystem there is a well-rooted software testing tradition, especially in the declinations of Behaviour Driven Development and Test Driven Development. In both tese variants of software testing, the aim is to be able to guarantee deterministic behaviour of the application thanks to a suite of tests that demonstrates that all the application's features behave correctly.
The BDD or TDD practice helps build more simple and elegant architectures, as the actual writing of the cose is postponed to when the study of the feature is complete: the test is written before the code implementing a given feature. This way, we are stimulated to have a wider and neater vision of the problem to be solved before we start writing.
The main advantage is the realisation of more stable code.
Also, the test suite constitutes a safety net, useful every time a new bug appears, often giving a chance to find it out more quickly.
A well structured test suite allows to add functionality or change project components with more ease: in fact, it decreases the chance of inadvertently making changes that bear collateral effects on several components of the project.
Morevoer, tests constitute detailed documentation of the whole application: reading the tests allows to know in detail everything it does and how it behaves.
The experience we gained along the years allows us to suggest the best solutions starting from your needs. We are used to searching for the minimal solution, that is, the one that fulfils the requirements in the simplest and most inexpensive way. Our method is sound and effective.