Code quality is one of the essentials in software development. I shouldn’t need to re-emphasize how important it is. It reduces production defects, protects application for security, builds concrete foundation for future features and much more. A good engineering team should make code quality core of their culture and always look for ways to improve application quality iteratively. In the Adobe Experience Manager (AEM) realm, application code quality is even more imperative, since it is built on top of many open source frameworks, like Apache Sling, JCR, OSGI. You can develop and deploy all kinds of applications within these frameworks. So in this blog series, I am going to focus on different areas you can build quality in AEM applications. To start off the series, I will talk about unit testing. I will cover the benefits of unit testing, general guidelines you can follow, some practical tips and code snippets, how to enable unit testing in AEM application and a reference to my blog code repository. Let’s get it started.