We are all aware of the high costs that a poorly planned project can entail, be it to build a house, an electrical appliance, an advertising campaign…
Well, it’s the same for computer projects.
We must study and plan the costs and resources involved in a project very carefully, taking into account any potential setbacks that might occur and planning their countermeasures. This is what is known as “Software Engineering”.
The importance of testing
There are, however, some factors that we cannot predict or control, namely the human factor.
However much we try to do things right, we are fallible and make mistakes, which in software development are called bugs.
For this reason, designing tests that effectively and efficiently ensure our software product not only works as expected – verification, but also meets our quality expectations – validation, needs to be an integral part of planning our projects.
There are many methodologies and concepts around such planning. For example, the concept of ‘QA’ – Quality Assurance aims to reduce errors in the development process, while the concept of ‘Testing’ focuses on checking for flaws in the finished product. Both combine to create a cycle of detection and prevention that ensure a good job.
Testing strategies and types
Within the testing strategies, there are different levels of testing that refer to different objectives: While a unit test searches for bugs in a code module, integration tests focus on the interaction between different modules, system tests look for faults resulting from the interaction of all the elements (including external elements), and finally, acceptance tests are conducted to ensure the product meets what was originally expected of it.
This last phase of the above-mentioned strategies is very important when it comes to working on Infrastructure as Code (IaC), since the capacity of our platform is a priori unlimited, given that we can always easily scale our resources in the cloud without having to change any of the code.
However, the cost of our infrastructure will be inversely proportional to the quality of what is developed; having a more efficient system means we buy less resources to cover the same service volume.
In the R&D Department at Teldat, we actively work to reduce infrastructure costs by optimizing and automating processes related to our SD-WAN platform and its deployment in the cloud.
We make a daily effort towards monitoring, load tests, integrating with new technologies and the continuous improvement of the quality of our product.