Jenkins and Cucumber: how Codebots tests

by Joseph Robinson, Jan 26, 2018

Testing should be easy, but it’s not. Even a very simple application will have a lot of tests to work through. That’s one of the testing barriers in the Software Engineering industry.

State Explosion is not a loud and lacklustre movie coming this summer. It means that there are too many facets of a software project to test in a reasonable amount of time. It could take days to test every scenario, and every character string. 

And designing software from a test-driven development point of view can cause more delays. It’s staggering when everything is added up, which is why it’s almost (but only almost) understandable when developers skip on adequate testing, despite the risks involved.

The Codebots platform links different testing tools together to help solve these challenges. Our model-driven testing solution combines two distinct and useful testing tools to improve the testing process. It’s designed to make it easier for you, and for your team.

As you know, codebots check themselves before they wreck themselves. With model-driven testing, a codebot automatically writes the tests as it writes the code. And to make it easier for everyone to use, Cucumber expresses our tests in plain language. Let’s take a quick look at Cucumber:

Cucumber: The best vegetable for testing?

Cucumber is a Domain Specific Language (DSL). It allows you to write a test for your applications using natural language. You don’t need to learn a new code syntax to understand tests. We integrate Cucumber into our testing interface so that when you start using the Codebots platform, you can write tests for your own applications using natural language.
This improves the testing process by saving time and enabling non-technical people to write and understand tests and their results. (You can write tests with a more descriptive language, and reuse common steps.)

But, there is another part of our solution that works directly with Cucumber: a housekeeper called Jenkins.

Jenkins: The best housekeeper for testing code

Jenkins is a testing automation tool that allows for continuous integration. It’s a popular solution for testing with agile methods, and often used by large teams that need to regularly add code to their repositories. Whether you’re working on new features, or fixing bugs in the code, you want to make sure that your software does what you expect it to do. Jenkins acts as the housekeeper of your testing. We combine Jenkins’ automation with Cucumber’s easy-to-read reporting. It’s a good toolchain.

The best of the best: Jenkins and Cucumber working together

Jenkins and Cucumber work together to solve testing problems, using easy-to-write and easy-to-read testing, and continuous integration automation. Cucumber lets you write and understand tests in plain language, Jenkins performs the testing, and then sends a report back to you.

Together, they make it easy to test important parts of your project code, to target edge cases, and to avoid state explosion (avoiding explosions is generally a good thing).

When you look at your Codebots dashboard, the tests that are passing are green, and failing tests are a less friendly orange or red. It’s easy to think of a failed test, in bright red, as something getting in the way of your project. From another point of view, it’s useful information. It tells you about your project design, and the state of your code. It helps you keep track of the overall progress of your project, and keep your finger on the pulse of your software development.

Codebots links together Cucumber and Jenkins with a model-driven testing design to decrease testing time. Testing should be easy, and the Codebots platform aims to make it easy as possible.