Agile Development Practices have widely been adopted in R&D Organizations. A core component is Continuous Integration where code changes are continuously integrated and tested to achieve the goal of having “potential shippable code” at the end of every Sprint/Iteration.

In order to verify code changes agile team members write Unit or Functional Tests that get executed against every build and every milestone. The results of these tests tell the team whether the functionality of all features is still given and that the recent code changes have not introduced a regression.

In Continuous Integration every build is verified by executing unit and functional tests giving immediate feedback to developers
In Continuous Integration every build is verified by executing unit and functional tests giving immediate feedback to developers

Besides functional verification we can add performance and architectural validations. With this we can additionally answer questions like:

  • How much CPU and Network bandwidth it takes to execute the search query?
  • How many database statements are executed to retrieve the search result?
  • Whether product images will be cached on the browser?
  • How JavaScript impacts the Page Load Time in the browser?
  • Whether the last code change affected any of these Performance, Scalability or Architectural Rules

Analyzing the execution of your existing tests allows you to answer these questions by verifying metrics such as Number of Remoting Calls against a defined Architectural Threshold. Additionally to your JUnit or Selenium Reports we get a report telling us which rules have been violated:

Enforce Architectural Rules by analyzing the executiong of the components your are unit testsing
Enforce Architectural Rules by analyzing the executiong of the components your are unit testsing

Automatic Baselining, Performance Validation of Unit and Browser Tests

Implementing this in Continuous Integration allows us to find many problems as explained in Top 10 Performance Problems early on before becoming a real problem.

Want to know more? Read the full article on the dynaTrace Community Portal!