How we ensure quality
We write automated tests that verify our code on several layers. Unit tests are used for small blocks of code. But testing individual classes is not enough, especially if they are heavily dependent on resources injected by a container. Also testing applications in a mock-up environment always leaves doors open to bugs that only appear in the real environment. That’s why besides unit tests we also apply integration tests which use Arquillian and run them within a real-life container.
Our team has made significant contributions to the Arquillian project which were very well received by the community.
Besides unit and integration tests that cover system internals we write automated user interface tests using such tools as JSFUnit, HtmlUnit, Warp, Graphene or Selenium.
When you write automated tests for your system you want to know how much of the code is covered by them. We use Jacoco, a great tool for measuring code coverage.
We enforce coding conventions to ensure that our code is clear, readable and maintainable. Checkstyle, PMD and Findbugs are our tools of choice for this.
Our QA process includes automated testing using Jenkins continuous integration server, which runs tests and QA checks after every commitment.