Leveraging Kubernetes as a Tester
With the advent of agile and DevOps, organizations are moving from specialized roles to cross-functional teams—and that means cross-functional sharing of the specialized tools used in each silo. So it’s not unreasonable for a tester to need access to the tools used in those other silos, such as Kubernetes.
Kubernetes is a scalable, production-grade container orchestration tool with automated deployment, scaling, and management capabilities. Here’s how you as a tester can leverage Kubernetes to quickly gauge application quality and speed up the delivery of value.
Kubernetes brings five critical things to testers: decreased dependence on shared environments, direct access to logs, the ability to get to a complicated failure state quickly, cheap, disposable environments, and unambiguous communication with developers. Each of these advantages brings value either by allowing work to happen in parallel, shortening the feedback cycle, or by enhancing communication in and between groups.
To gain these advantages, you can leverage Kubernetes to give you a personal environment that closely matches that of production. You can run risky tests that could potentially destroy the environment at will because no one else depends on your copy. There’s no need to worry about consuming a particular type of data for a test case: It is all yours.
If you have a long test case that’s failing, you can use Kubernetes to get to the failure state quickly. By using Kubernetes you’ll also have access to the logs. If you are using your own instance of Kubernetes, you’ll have instant access to the entire stack on which each component of the application you are testing executes. Because the environment is not shared, you can be assured that any error in the log is actually related to your issue.
Kubernetes is an extremely complicated tool, and there is a line to how much you need to know about it as a tester. Specifically, as a cross-functional team member who specializes in testing, you probably only need to know how to:
- Start kubernetes in a virtual machine
- Find the logs of each component in the GUI or the command line
- Access the GUI
- Tell which version of which components of the software are running
- Update just one component of your application
- Read the important parts of the YAML specification
By untangling data and safety dependencies from shared environments, you can move faster. Having direct access to logs, and a guarantee that you are the only person on the system, also makes defect reporting more accurate and faster. Testers and developers can work together on a private instance to test hotfixes. Developers see exactly what is wrong and can provide immediate fixes for testing to the person who reported the issue, which makes the feedback loop very short.
Kubernetes is more than just a container orchestration tool: It’s one heck of a testing tool, too.