This is a series of blog post interviews, aiming to help testers understand how different IT departments see the role of a tester. Every tester wants to become a better version of itself, yet not everyone has all the missing pieces in doing that. Hopefully, these interviews will give you new ways of improving yourself.
1. What does DevOps stand for?
DevOps is more of an ideology. It basically boils down to a set of practices and principles built around shortening/improving software delivery times, streamlining software development lifecycles (SDLCs) and producing a "fail-friendly" atmosphere. There's a ton that goes into the devops mindset, but prefer to often resume to simple idioms like "Automate everything!".
2. Where does testing fit in DevOps?
Testing is a big part of DevOps, a vital one actually. If we are to look at what makes software "safe" for shipping, it goes without saying that whatever is being built needs to be tested properly to fit the bill.
Considering the simple ideology of "Automate everything!" tests are definitely an important aspect of the process. Whether you are copying static HTML code in a text file on a server or delivering a complex, multi-component environment, fully provisioned with various applications, pertinent testing is required.Simply put, the main "trick" to achieving a lot of the aspects described above is to make sure you get reproducible results reliably. The simplest way of doing that is (and knowing it too :D) is to put together a relevant test-suite.
3. How do you see the role of a tester from a DevOps person position?
Testers are very important throughout the stages of software development. Their focus should mainly be building automated tests as well as integrating tests within the various layers involved in delivering software.
An entire SDLC should benefit from the expertise and knowledge of testers on each and every step of the way. I believe that there is an increasing need for testers with CI Tool DSL knowledge and a devops mind-set.
Having the knowledge and the opportunity to write out your entire CI/CD methodology for testing will get you on anyone's good side and can relieve annoyances caused by tooling barriers (e.g. "The tester doesn't know if the change is good because the platform guy didn't have time to show him the test results").
4. How do you interact with testers during your work?
I am always involved in working directly with testers as more and more companies are moving towards fully adopting various CI Tooling solutions. The most common situation I've found myself in is that testers are considering DevOps engineers a default first point of contact. It's rather natural as DevOps engineers are usually jacks-of-all-trades and they are almost always the ones building the DSL libraries used with their CI tools, hasing out all the automation, responsible for platform applications and infrastructure, and that can lead into gaining a fair amount of knowledge within the project and all of it's specifics.
So ever so often I get involved into and asked about a variety of items that have (in reality) nothing to do with my job description - I still enjoy lending a helping hand though :)
Leaving that aside, there's always a discussion to be had on how to optimise, test smarter, increase coverage, increase quality and so on.
5. Which is the DevOps effect on quality?
I believe that if the mentality is adopted and applied correctly, you will never have to worry about drops/decreasing trends in quality.
6. Do you think a tester should reinvent his role and if yes, how?
Not entirely. I do believe that recently more and more people are moving into automated testing which is ultimately where all testers should be (in my opinion).
That being said, one aspect that I've always found lacking in the people that I've worked with is a total disregard for non-functionals. I guess it's arguable whether or not that should be of interest to a tester but from my perspective, non-functionals are equally important when it comes to delivering quality software.
7. How would you see a perfect relationship between a DevOps engineer and a tester?
When I think of any inter-disciplinary relationship, the first thing that comes to mind is that the other person should know how and why they want to automate something and I should be able to provide a relevant and easy (enough) to use platform and set of tools to achieve that. It's a bit difficult to elaborate further as it all varies heavily based on the project and the teams end-goals.
8. What skills do you think a tester should have to survive in a DevOps world?
Adaptability, an open-mind and being proactive (nosy even) in the software development process (and in platform development as well!)
9. And what tools would you recommend he or she should master?
I think picking up any of the big CI Tooling DSLs would be a great start. (Jenkins Pipeline Groovy, GitLab CI DSL). Getting familiar with stuff like Docker and Kubernetes should also pay off in the long run as many companies are in full blown transitions towards containerised infrastructures.