Our clients constitute large retail chains that expect customized solutions which are continuously adjusted to their requirements and changes in the method of operation. They require that the implemented IT solution will be a flexible tool to support their activities. Our goal is to meet these expectations. However, this results in applying constant modifications to our software and the need for rapid and frequent implementations of new versions. In such mode of operation and the complexity of the software (the largest of our projects contain over a million lines of code, and consist of several thousands of source files), it is necessary to ensure proper software development process, with the focus on the code verification and automation tests.
The process of software development in our company is illustrated in the scheme below. The most important elements of this process, aimed at eliminating errors in software, in particular in the form of regression when new modification of the specific functionality results in an error in another, seemingly unrelated place, are the following:
- an audit of the source code added to the repository by the analyst / programmer assisting from the beginning of the task,
- programming unit tests by developers that will create the code to be verified by those tests,
- programming automatic tests,
- automatic daily version development using current code, automatic execution of unit and automatic test, the analysis of the results and registration of detected errors,
- manual tests, including tests of new and modified functionalities.