I was asked several times, the importance of unit test in real time scenarios. If you look at the most followed software lifecycles; post development, complete end-to-end functional testing is performed in the development system.
The problem in doing this is, due to lack of valid data, lack of functional- and business process knowledge, the developers or the functional consultants end up testing the real-time scenarios with junk data. Because of this, the results produced may or may not match the business expectations.
The code is hardly checked for its correctness to handle the actual business requirement. A common trend among development teams is to perform Code Inspector checks along with ATC’s to validate the naming standards etc. Post which a manual review is done by the lead (Not mandatory) before the transports are released.
The entire process of functional testing in the development systems is a time-consuming process and still the number of bugs identified at an early stage is very low which results in higher production deployment time.
So, how does unit testing improve the overall delivery process?
If you ask me whether Unit Testing is really going to ease the entire process, my answer would be a definite YES.
But only if the methodologies are followed correctly.
Before talking about Unit Testing, people need to understand about Test Driven Developments (TDD). TDD is primarily a developer’s tool to help create a well-written unit of code (function, class, or module) that correctly performs a set of operations. Every unit of code should contain only a single functionality and it should contain a defined input and output.
So, the preparation should start from the technical design phase itself. The units/methods should not be overloaded with functionalities making it not eligible for performing the required unit tests. If the test approaches and methodologies are well defined, it will drastically improve the quality of testing and reduce the number of reworks at a later stage. Thereby improving the time-to-market.
SAP & DevOps
This is one of the hottest selling topics in the market and what does DevOps mean to you?
During one of my visits to a customer site, I was told that “We are not an Agile company” and “We don’t need an Agile transformation”. However, they did need DevOps to automate all their processes.
If it is just to automate a few processes, then we should name it as an “Automation” transformation.
So, what are Agile, DevOps and CICD and how are they related?
There are numerous blogs which tell about each of these. That’s why I’ll give a short explanation.
The image above tells us the actual difference between Agile, CICD, and DevOps.
Agile talks about breaking the boundaries between IT and Business users. Also, the Agile manifesto talks about Iterative and Incremental delivery approach. I.e., business values should be delivered frequently instead of delivering once.
DevOps is NOT automation, but a culture which talks about the collaboration between Development and Operations. For achieving the mentioned Continuous Integration, -Delivery & -Deployment, automation is used.