Over a million developers have joined DZone.

How Docker Makes Testing More Efficient

Automated testing is a crucial aspect of any modern development project. We take a look at making this often-tedious process more efficient by making use of Docker.

· Integration Zone

Learn how API management supports better integration in Achieving Enterprise Agility with Microservices and API Management, brought to you in partnership with 3scale

Testing your software is important. Automating your testing and having continuous integration for your project in place is a matter of best practice nowadays. Often it’s one of the first things a software team works on when starting a new project.

A good test suite allows you to push changes to your product in a safe way without breaking things for your customers. It also helps you validate the functionality of your features. But your test suite also needs a lot of time and maintenance. Many teams want to have good testing in place but don’t actually work on it.

There’s an argument that large test suites slow down your deployment, and running your test suite simply takes too long. However, we have quite a few services nowadays that help automate the running of your tests.

One of the main reasons my co-founders and I began working on Codeship was to remove the burden of running tests on your own machines. We also wanted to help you with automation, process control, and removing your development machine as a blocker to pushing changes. As a result, now we can offer you dedicated infrastructure that’s geared toward speed but still allows for flexibility. Most importantly, it doesn’t require the resources of your personal machine.

Reasons why development teams skip tests

Reasons why development teams skip tests

You Should Really Test Your Software

Yes, we all have a lot to do, and writing/improving tests or refactoring your code might not really be on top of your high-priority tasks list. Taking care of your test suite may not feel like the most important thing to do just now — you need to work on all these features that are on your team’s roadmap, and the deadlines are getting dangerously close. Rarely does it feel like testing needs your immediate attention.

But really, it should. Relying on continuous integration or continuous delivery without adequate test coverage is not a great idea. You’ve got to have a safety net in place that stops code-breaking changes to be pushed to your customers.

“Relying on CI/CD without adequate test coverage is not a great idea.” via @codeship

Click To Tweet

Continuous Integration and Delivery with Docker

Today, efficient software teams push code to production multiple times a day. But this only works with good processes in place. Pull requests, code reviews, and good test coverage are essential for enabling a fast pace and high output of new code. You can read more about this in my free eBook about “Efficiency in Development Workflows.”

Making sure that development and production environments are as similar to each other as possible can often feel like an overwhelming goal for software teams. Having the same conditions on your testing environment as on your production environment has been difficult to accomplish in the past.

Today, Docker allows you to run your tests in containers as well as isolate your tests in development and deployment. And together with our Codeship Jet CI Platform, you now have a simple way to make testing predictable across multiple platforms by achieving parity between your testing environment and production. This gives you the confidence that when something works on your machine it will also work for your customers.

As Codeship senior engineer Laura Frank and I will demonstrate in our upcoming webinar, setting up testing with Docker is a big step toward improving your team’s efficiency and level of output. All software teams, no matter which team size or company size, will very likely benefit from having such a workflow in place.

“If services are running in containers in dev, they should be running in containers in prod.”

Click To Tweet

While a lot of people view Docker containers as something similar to virtual machines, you really should think about them more as processes. This perspective suddenly opens up a lot more creative thought for how to use containers. When Jessie Frazelle spoke at DockerCon 2015, she showed several examples of “Container Hacks in Docker,” demonstrating just how creative you can get and how much you can push the boundaries with Docker containers.

Testing with Docker Live Tutorial in our free webinar on March 29

If you are interested in learning how to leverage Docker for your testing, I highly encourage you to join our free webinar on Tuesday, March 29, 2016. Laura Frank, a senior engineer here at Codeship, and I will talk about the importance of writing tests, as well as offer detailed examples of how to run your tests with Docker and how to parallelize them.

Unleash the power of your APIs with future-proof API management - Create your account and start your free trial today, brought to you in partnership with 3scale.

continuous delivery,continuous integration,docker,testing,automation,integration

Published at DZone with permission of Manuel Weiss, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}