Testing, Continuous Integration (CI) and Delivery (CD) are essential parts of software development as they ensure smooth feature delivery and prevent the system from breaking. Some people practice Test Driven Development (TDD) where none of the features would be implemented without prior tests. Advanced levels of testing skill implies additional knowledge in monitoring and defensive programming.