Testing Practitioner Handbook
上QQ阅读APP看书,第一时间看更新

Best practices to adopt early and continuously automate

Like any other practice, automation requires some basic tenets to be in place for it to be successful. Some of them are as follows:

  • Treating automation as any other development work
  • Quality engineering
  • Coupling of development, automation, and test teams
  • Selecting the right solution

Treating automation as any other development work

Since automation becomes the engine to run DevOps seamlessly, it is critical to maintain a similar discipline. Automation should be treated as any other development work. Starting with the framework design to coding standards, to code reviews and unit testing of the code/scripts, the team should be aligned and should sign up to follow the best practices, whatsoever. Any new work would easily mold itself into the implementation framework, reducing the ramping up and initiation efforts. This will have a direct and positive impact on the ROI.

Quality engineering

Start automation as early as possible, thus moving the focus from mere testing to quality engineering. Practices such as BDD, service testing, API testing, and performance engineering bring out the engineering aspect of testing and help find and fix defects much earlier in the cycle.

Coupling of development, automation, and test teams

If a physical co-location of the development and test teams is not possible, a virtual coupling using centralized tools, daily standup meetings, and regular interactions is key to synchronize the teams together. Having the builds deployed on the test environment either on cloud or virtual systems is required to continuously execute automated scripts and provide regular feedback.

Selecting the right solution

There are multitude of solutions available on the market for automation adoption. Some tools focus only on one aspect, such as JUnit for TDD or Selenium for functional testing. The end-to-end automation solutions where most of these tools are integrated centrally using custom code with a continuous integration server, say Jenkins or Bamboo, for a seamless implementation are usually owned by organizations themselves or by some key vendors, such as HP, and so on.

Choosing the right automation approach and solution is key to the successful and smooth functioning of DevOps implementation.