Testing as efficiently as possible is key to doing DevOps well. One tool you can use to test more quickly and with less effort is ChatOps.
Below, I explain what ChatOps means and how it applies to automated testing.
What is ChatOps?
The DevOps movement has given rise to a need to maintain visibility across the development pipeline for all team members. ChatOps, which uses chatbots to integrate development tools with communication platforms like HipChat (which was recently integrated into Sauce), helps you do this.
ChatOps keeps the people involved in software development more connected and facilitates conversation-driven development. It allows you to aggregate information about processes, discussions, QA, and testing. This flow improves the delivery of information about the status of the project to all members of the team.
ChatOps + Testing
The participation of testers in ChatOps is essential for a DevOps team that wants to make the most of an automated delivery pipeline. Testers have a great deal of knowledge about how the system has to work and can often identify the cause of a problem even without seeing the code.
ChatOps helps the testing team to present, demonstrate, and reproduce an issue to the development team. This alerts developers to problems so that they can be fixed before they reach users or customers—with minimal disruption to the delivery pipeline, thanks to tools that automate the process of inserting testing information into chat channels.
In the case of the Sauce Labs HipChat plugin, enabling ChatOps is very easy. All the tester has to do is paste a test case URL into the plugin. The development team then receives and visualizes the tests in the same communication platform that the testers use, even if developers do not all have access to the tests results in original source. The team can even share screenshots and videos if desired via the plugin.
Of course, before deploying ChatOps within the context of testing, it's important to establish a clear, functional and well-documented test process in order to avoid making ChatOps just another piece of bloat within your communication structure. Also, it's very important to notify the team about every new webhook that is added to the communication platform, such as a ChatOps integration. Explain the reason, and encourage everyone to pay attention to and use the new functionality.
How to Start
Since ChatOps works via webhooks and allows communication between applications through custom callbacks, this makes it easy to get information about new code pushed to the repository, and receive information about the results of automated tests and deploys (as well as the status of servers and applications) through the same channels.
To build a ChatOps + Test environment, it's necessary to have these components in place:
- A test and development team
- A test process
- Automated tests
- A central testing platform that supports webhooks
- A communication platform that allows webhooks and can integrate with your testing platform
The process that you take for implementing ChatOps should be an extension of your testing process. A good place to start is to create a channel on your communication platform where test information can be posted. Then, include everyone who participates in development, testing, or IT Ops within the channel. Before you start pushing test result information to the channel, have a conversation about expectations and goals, so that everyone is on the same page and knows how to make the most of the ChatOps integration.
Then, once you have established your plan, start sharing the automated test results in an automated way through the ChatOps integration. The result will be a communication pipeline that is as automated and free-flowing as your delivery pipeline—which will, in turn, become better, thanks to the efficiencies you gain through better communication.
Brena Monteiro is a software engineer with experience in the analysis and development of systems. She is a free software enthusiast and an apprentice of new technologies.