How Can I Make It then How Can I Break It?

Jun 10 2016

This is the second in a series of posts recapping ImageX’s presentations at this year’s DrupalCon. With so many testing methods available -- code static analysis checks, unit testing, functional testing, front-end performance testing, load testing, visual regression testing, etc. --  it can be difficult for a development team to choose which will work best for their project, particularly with limited time and budget available. Yuriy Gerasimov, discussed the principles of these types of testing and the projects that they might be best suited for.  Specifically, what a development team should take into account when introducing automated testing to their projects and how they can maximize coverage most efficiently.

How can I make it?

One of the biggest challenges that development teams face when they begin implementing automated testing is that they often have limited time and budget, and delivering the project to scope takes priority.   So how can we sell testing to our clients when no tangible result come from the budget?   Clients expect high quality from the outset, not as a result of additional budget that isn’t allocated towards a specific feature.  It’s hard to sell what can’t be measured. But testing always brings the overall quality of the project up to a higher standard, so it’s in the best interest of both the client and ImageX to ensure that it’s included.

How can I break it?

Yuriy’s presentation discussed the different methods of testing, how much effort to allocate for each, and how development teams can maximize the value of their testing efforts by prioritizing them based on the project’s needs. Some of the testing methods discussed include:

  • Code Checks -- the first and easiest testing method, automated, and ensures adherence to Drupal code standards and security checks.
  • Unit Testing -- individual units of source code are tested against sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures.
  • Functional Testing -- this is based on how users will interact with your website.
  • Front-End Testing -- performance-based testing, primarily focused on front-end operations.
  • Visual Regression Testing -- testers will create screenshots of pages as a baseline and control for them, checking for false positives where something passes a test in one area but fails in another.
  • Performance -- testing of the speed and stability of the project’s infrastructure against predefined benchmarks in a production environment.
  • Pre-Flight Checks -- the final round of testing, which confirms the accuracy and completeness of URLs, page sizes, image sizes, etc.

When development teams are first integrating automated testing into their workflow, it’s a common mistake to be too ambitious and try to cover too many things.  A more efficient and economical approach is to identify those critical pieces of the project, focus on them, and allow for maintenance over time. You can view Yuriy’s full presentation below:

Learn from us
Sign up and receive our monthly insights directly in your inbox!

Subcribe to newsletter (no spam)

Fields