- A supported environment exclusively for automated testing.
- A valid seed data set because no system starts with a blank slate.
- A well documented API.
The question here is a matter of asking how much experience and skill an automated test engineer needs to bring to the job. I’ve seen manual testers expected to learn to code so they can create automated tests, and I’ve seen automation engineers expected to fully support the entire tech stack in a dev-ops kind of way….test-ops? If I have to understand the system deployment process so well that I could stand up your app on a server with all its services and all the supporting databases complete with the right schema and seed data on top of having to build out the automated test project, the necessary data for testing, and appropriate data resets not only will this take a lot longer, it really shouldn’t be this manual.
First of all, you should already be creating your unit tests. I won’t talk to this much more because it’s a little infuriating to have developers ask the automation engineer to write unit tests, and sadly, I’ve been there too. TDD means the developers are writing unit tests before they ever write code. This means that developers have tests on their local machine. Those tests should run before code is ever written. You know, red then green. Now, to support such a TDD practice, developers should be able to deploy on command in an automated way. Not so you can spin up databases and such because another part of the unit testing thing is that the code is tested as a unit, and I know the definition of unit is confusing, but it most definitely means you’re using a repository pattern in your code so you can mock your data objects. What a sticky topic unit testing is. Anyway, deployment should be automated and docker is pretty nice for that.
Yes, I might be excluding the older .NET ASP guys, but an upgrade is in your future and I suggest you begin considering .NET Core. But really, I see no reason you … oh look, from April of this year - 2017 - .NET on Docker. Thanks Scott. Now, push button deploy app. Great.
I want that for automated UI testing. That’s it. I want an automated deployment of your system with only seed data. Let me handle creating the necessary data for test cases. And to do that, I’m going to ask for something from your Business Analysts or Product Owners. But that’s a whole other post.