Continuous Integration and Automated Testing
Software development is one of the fastest growing fields in the world. As research drives new technological advances, the software that powers these new technologies and allows developers to interface with them changes as well. Developers must spend significant time learning and developing this new software. In order for this to happen, software engineering teams must have practices and procedures in place in order to focus on new development and not get bogged down with maintenance of old systems or with dealing with the unintended side effects of new code. This paper focuses on some of the methodologies and practices that allow development teams to write code quickly and efficiently. This paper will in particular focus on how automated testing and continuous integration work together to remove obstacles in the path of developers, while reducing technical debt and limiting bugs. This paper will delve into both practical and theoretical aspects of this topic. In particular, the full continuous integration process will be covered with details about how it is implemented and common mistakes that occur. This paper will also discuss why these techniques are important and how a development team will see them take effect.