Introduction It’s widely recognized that the bulk of software costs arise after its initial development in maintenance tasks like bug fixes, feature additions, and day-to-day operation. Therefore, it’s crucial to build systems that are easy to modify, extend, and operate, ensuring they remain maintainable over time. Robust testing, including unit, integration, and end-to-end tests, is