DevOps and Test Automation

Java Programming Masterclass for Software Developers Course for as low as ₹ 420

DevOps – this term is rapidly spreading through out the community. While this is new and many organizations are still discussing to adopt, people have lots of confusions and many a times contradictory impressions defining it and how it works. When it comes for testing and automation in DevOps, it creates lots of confusion again. In this post we are going to discuss on overview of DevOps, and will try to clarify some of the confusions. Hope you will find this useful.

What is DevOps?

Lets start with understanding DevOps first, different people define it differently. If you are into DevOps or reading through , trying to understand or implement , you might have heard many different versions of its definition.

Lets understand this in a very simple way —

A Developer writes code for many different tasks like – Code for New Applications or products, Bug fixes, security updates etc. When this comes to deploy in the actual environment (Production environment) where users can use it, a developer needs to wait for days or weeks. Reason would the bandwidth for Operations team finishing up there huge pile of work before they take up new. This delay causes delay in products availability in market also on the other hand it becomes difficult for developers to manage the multiple versions of code, one that is pending to push to production and other on which he has to work on next. Moreover when the code gets deployed into Production environment, occasionally unforeseen errors occurs. This happens because, developer writes code for there development environment which is not similar to the production environment. This ultimately increases work for the operations team to manage the environment and making sure systems are up and running. Operations team has to do lots of massaging on every new code that comes to production and continuously diagnose to ensure a stable environment. Any issue that occurs due to code, leads to many different issues in production environment and delay in availability of product in market.
To overcome this major issue in Software Development Life Cycle (SDLC), it is critical that Developer and Operation work together and share responsibilities. Basically its about changing mindset and culture on how Development and Operations work.

So, DevOps is a phrase in SDLC, mean to Change and Improve the work relationship between Developement and Operations Teams thereby improving collaboration and productivity by automating infrastructure , workflows, Continuous testing and Continuously measuring application performance.


How DevOps Works?

DevOps is about changing the mindset, culture, approaches and the tools that we use. It’s required to analyze everything being done manually and decide to continue it manually, eliminate or automate it.

Developers, Testers and Operations works together and identify and rectify the pain points before hand. Establish a better collaboration, benefit into a better product and on time. There will be an identical environment for development and production with same configuration. DevOps teams write configuration management code, which automate infrastructures and they will have the ability to build dozens of servers instantaneously

Success Criteria for any team depends on right set of tool-set. a DevOps oriented team requires below tools to achieve the below

  • A development approach to involve and collaborate Development, Testing and Operations teams together. Such as Test Driven Development (TDD)/ Behavior Driven Development (BDD). We will go through these approaches in detail in later posts.
  • Continuously build and test code with tools like Jenkins, TeamCity 
  • Tool for Source Control such as GitHub , Team Foundation Server etc. to track and manage code and Documents
  • Configuration Management Tools like Chef , Puppet etc for easy code deployments
  • Tools to measure continuous performance of application on servers

DevOps Process and Tools

Benefits of DevOps

Technical benefits:

  • Continuous Product delivery
  • Less complex problems to fix
  • Faster resolution of problems

Business benefits:

  • Faster time to market
  • More stable operating environments
  • More focus on adding values to the product

Test Automation in DevOps

With all of the above, we understand that Automation is the key for a team which is DevOps oriented. The goal for a DevOps oriented automation team should be to “Automate Everything —  Continuous Code Testing easily and quickly build of Infrastructure.”

Test Automation in DevOps includes Continuous Integration and Continuous testing. Tests that are automated should be tested continuously for each build and all the tools should work integrated  for a greater outcome. There is a need for faster automation development and faster turnaround time for any maintenance that is required for the scripts. with there are automation tools like Selenium, Cucumber, LeanFT etc are being preferred over other traditional tools. The automation code are tightly integrated with the developer codes and it can be utilized for unit testing to regression testing as and when code is ready for deployment.

In our future posts you will see more about these tools, approaches that are widely being used currently. we are going to deep dive into some of the tools . Stay in touch.

If you have any questions or want to share your thoughts about DevOps, please do so with you comments below.



  1. Hi Saket,
    In Agile based application automation testing, we create automated test scripts for specific sprints. The integrated testing planned for the build with all the sprints combined along with few new functionalities integrated. What is the best approach to be followed for an integrated testing in such scenario and what could be the challenging portion which we should focus on.

    • Hi Malini,
      Ideally we should execute the whole set of regression/integrated automated suite along with the new test automated for a particular sprint. but in case where your automated execution will take longer that the execution window, below two approaches can be adopted

      1. Risk Based Executions – Identify a subset of functionalities which are a must to test for any changes in functionality. Execute the set of features accordingly.

      2. Dependent functionality/features Execution – as we progress with automation or manual execution for sprint, its a good practice to maintain a dependency track of features ( kind of traceability) and execute those dependent functionalities only for upcoming sprints.
      e.g in a particular sprint functionality E has gone through some changes or newly added. Functionality E is dependent on A and D from A B C D functionalities. Execute features/test cases only for A and D along with E

      hope this helps.

  2. […] LeanFT is a solution by HPE built for continuous integration and testing. It’s a fully integrated in standard development IDEs: Visual Studio, Eclipse, and IntelliJ. It enables the development of test scripts based on standard unit testing frameworks, such as NUnit, JUnit, and TestNG. With various features and capabilities, it’s a great tool for efficient automation and for collaboration with Agile and DevOps teams. […]


Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.