# Do any of you use Docker (or anything similar) for feature testing? What would you say are the pros & cons of one of these apps?

**URL:** <https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421>\
**Category:** Discussions\
**Tags:** tools, culture, quality, testbash-autumn-2023\
**Created:** [8 December 2023 10:09 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421 "2023-12-08T10:09:29Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![dianadromey](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/dianadromey/32/7839_2.png) [@dianadromey](https://club.ministryoftesting.com/u/dianadromey)\
**Post date:** [8 December 2023 10:09 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/1 "2023-12-08T10:09:29Z")

</div>

At TestBash Autumn we had a fantastic Panel Discussion with experts in Driving a Culture of Quality, they are: @parveenkhan , @fullsnacktester and @c32hedge .

During the lively discussion, a lot of questions were asked by the audience and a lot didn’t’ quite make it live.

One of those questions came from @karenlewis :

> **Do any of you use Docker (or anything similar) for feature testing? What would you say are the pros/cons of one of these apps?**

How about you? What would you say?

---

<div class="post-metadata">

**Author:** ![flynnbops](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/flynnbops/32/7757_2.png) [@flynnbops](https://club.ministryoftesting.com/u/flynnbops)\
**Post date:** [8 December 2023 16:12 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/2 "2023-12-08T16:12:38Z")

</div>

I’ve used Docker in a lot of projects, and the biggest benefit in my experience?

Just how much `it works/ doesn't on my machine` is removed. With Docker I can run for example a Node application, without having to install and configure it myself.

Being able to to have people working in the same setup removes a lot of friction and chances for subtle configuration issues. If you are using that same `docker image` to build your application in different environments, you can be extra sure they’ll be the same. And any effort to change it benefits more than one person.

In terms of drawbacks, it is yet another thing to learn and manage.

But it’s far better to put the effort into defining something once, that you can use for local development, testing, and your production environments.

---

<div class="post-metadata">

**Author:** ![ckenst](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/ckenst/32/4997_2.png) [@ckenst](https://club.ministryoftesting.com/u/ckenst)\
**Post date:** [9 December 2023 00:50 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/3 "2023-12-09T00:50:06Z")

</div>

100% @flynnbops answer. It removes hurdles and creates consistency between different phases of software development.

By the way, it’s not about Docker the tool, it’s about containers, the technology.

When it comes to testing with containers it adds a little complexity to the process. In addition to worry about branches (git) when testing locally, you now have to make sure all the containers are running their respective services and each is working.

For example you might be testing a new feature in a container on your local machine but you can’t see the changes. You have the tight branch checked out. What could be the problem? Well did you restart the right service? Are there other dependencies that are working / updated?

So it adds complexity there. It also can add complexity in terms of debugging things. Like if you were accustomed to seeing logs in your terminal, those might now be buried inside the terminal of an individual container. You’ll have to figure out how to inspect those logs to find your problem.

---

<div class="post-metadata">

**Author:** ![flynnbops](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/flynnbops/32/7757_2.png) [@flynnbops](https://club.ministryoftesting.com/u/flynnbops)\
**Post date:** [9 December 2023 10:58 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/4 "2023-12-09T10:58:11Z")

</div>

> [@ckenst](#):
>
> By the way, it’s not about Docker the tool, it’s about containers, the technology.

As usual a great point from Chris! That gets to the core point

---

<div class="post-metadata">

**Author:** ![c32hedge](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/c32hedge/32/9126_2.png) [@c32hedge](https://club.ministryoftesting.com/u/c32hedge)\
**Post date:** [9 December 2023 15:04 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/5 "2023-12-09T15:04:12Z")

</div>

I haven’t had a chance to try containers yet, but I think we’re moving in that direction. Helps that nowadays I think they can coexist with VM software, which we currently use a lot.

---

<div class="post-metadata">

**Author:** ![okdashcam](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/okdashcam/32/11418_2.png) [@okdashcam](https://club.ministryoftesting.com/u/okdashcam)\
**Post date:** [9 December 2023 20:11 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/6 "2023-12-09T20:11:22Z")

</div>

Containers make it easier to model production environments for realistic integration testing. You can deploy containers identical to production with the same base OS, dependencies, etc.

That’s the real advantage of containers, and you can easily “swap” them out.

If you you have an architecture that looks like

[App A] ----\> [Service B] -----\> [Service C]

you can swap out App A or any service with a newer version and still maintain most of your tests for the rest of the chain

[App A] ----\> [New Service B] -----\> [Service C]

(As long as it’s not a major change which would require to also swap out other containers with new code in either A or C)

---

<div class="post-metadata">

**Author:** ![daluu](https://avatars.discourse-cdn.com/v4/letter/d/8c91f0/32.png) [@daluu](https://club.ministryoftesting.com/u/daluu)\
**Post date:** [9 December 2023 20:30 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/7 "2023-12-09T20:30:36Z")

</div>

This is a good topic, but could be expanded on to consider how you utilize docker / containers in your testing. I wrote a post some years ago on a different aspect of using containers for testing. I think it is more normal/popular now than when I first posed the question as you can find more articles online around this topic if you search around.

> **[To dockerize your tests or not?](https://autumnator.wordpress.com/2015/09/16/to-dockerize-your-tests-or-not/)**
>
> I recently started working with Docker. And Docker is the rage these days, with people trying to deploy and run their systems/applications as Docker containers. And how to test these new deployment…

On the questions posed in this thread,

pros of dockerizing your tests: self contained, and hopefully more repeatable deployment of test and test runs; ease of deployment of tests if you have docker infra in place

cons: more work to design the setup if not familiar with docker

and if I wasn’t considering docker, my next thought would be how could I manage the test codebase and infra via something like vagrant or terraform.

---

<div class="post-metadata">

**Author:** ![ckenst](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/ckenst/32/4997_2.png) [@ckenst](https://club.ministryoftesting.com/u/ckenst)\
**Post date:** [16 December 2023 18:43 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/8 "2023-12-16T18:43:54Z")

</div>

Your article seems to be about containerizing your automated tests, right? I agree that’s a worthwhile thing to do.

However I separate that from other testing activities which you might do against containerized applications.

---

<div class="post-metadata">

**Author:** ![daluu](https://avatars.discourse-cdn.com/v4/letter/d/8c91f0/32.png) [@daluu](https://club.ministryoftesting.com/u/daluu)\
**Post date:** [18 December 2023 02:48 UTC](https://club.ministryoftesting.com/t/do-any-of-you-use-docker-or-anything-similar-for-feature-testing-what-would-you-say-are-the-pros-cons-of-one-of-these-apps/72421/9 "2023-12-18T02:48:16Z")

</div>

> Your article seems to be about containerizing your automated tests, right? […] However I separate that from other testing activities which you might do against containerized applications.

Correct, about my article. However, in the context of this thread, how folks would be testing an application or service (or overall the system under test (SUT)) that is containerized, you could further containerize the testing pipeline by containerizing the test codebase / test infrastructure, such that the only thing not containerized in the test pipeline is the executor, which could be CI, jenkins, a script, etc. Although for case like jenkins, that could also just run from a container that you then use to run job to trigger the tests (running in another container) to test the application running in yet another container container.

As for why consider doing that? The pros & cons are already mentioned in my previous comment.
