What it takes to “Build with quality” ? Girish Elchuri outlines that it takes a good modern micro-services architecture, a robust design that is modular, adopting a zero trust programming mentality and documenting specifications & design to enabling good test cases.
The video of this “nano learning” smartbits video is available here.
When we are developing a product, we all know that apart from the functional requirements, the quality requirements are also equally important. It is important that the product works as per the functions and also as per the quality, and that must start from architecture. You should have an architecture which is as per the current trends going with the micro-services so that it becomes much easier to test it out for each service independently.
Then we look at the design. You need to have a robust design, preferably in a modular way which will simplify the process of testing because it is always easy to test a small portion than a big monotonous thing. That is the second thing you need to look at; having a design which is very modular so that you can do a plug and play much easily including testing.
The third thing that you would look at is what I call a zero-trust programming. When you are developing or programming, you don’t trust anything. For example, even if you are getting parameters from your own functions, you don’t trust them, you just verify them once again. Basically, the way to do programming is to do a lot of validation of the parameters, validation of the context and whole lot of other things and when you know everything is right, then go into the functionality. This way, you are catching a lot of errors that are possible, upfront rather than in the logic and kind of having the runtime issues.
After that, you have to also make sure that you put enough effort to write the functional specs and design documents, because that is one aspect that people always ignore. Primarily, if you have a good functional specs and design documents, it becomes that much easy for the testing/quality team to design the test cases. So, I would say that you should have a holistic approach to quality rather than a very narrow focus of testing it post product development and then suffer a lot.