I was discussing with a Software Test Engineer post meetup. We two stayed back for a couple of hours conversing on various topics and how to approach the problems. He was assisting a recent graduate to get started in Software Testing. His question to me was, "What all should I share and where should I start?".
I ask the same question to myself when I sit back and observe my practice and journey. That is,
"Ravi, what is the one advise you give to your younger self when you are starting career and practice in Software Testing?"
That question of him resonated in me as I listened to him. I said him,
"I ask the same to myself. I align; I'm a beginner resetting and starting over everyday using the learning of till date.".
Note this; what I'm saying here it is my experience and learning. I feel, it make sense to me in my contexts. You evaluate it and take it to your context. Nevertheless, I see it is sensible advise and it should be must in your practice the day you start to practice Software Testing & Engineering.
My Words and One Advise
This is a advise I give to younger myself who is starting the career in Software Testing & Engineering,
"Practice programming! This should be your day to day activity [practicing programming] to improve your testing skills. It is critical and elemental to be a better Software Test Engineer. Do not ignore it. Embrace programming and leverage your testing."
Any other skills that you hear or said, you can apply them on your programming practice work. Evaluate it.
For example, if you hear skills as questioning, thinking, critical thinking, lateral thinking, and whatever, apply them to the programming activity and the code you are writing. Take help of mentors here. Know the boundaries to set and unset as you progress here.
That said, do not be biased and get stuck to just programming alone. The programming should aid your testing practice and skills, and vice versa.
If I'm testing a software and the general [contextual] systems with which it associates, I should know how the software is being implemented, how it communicates, and manages. This is essential and necessity for a Software Test Engineer. This is a need!
Being away from programming, I will fall short in the ways I think of the tests and how I test. The software that I'm testing is composed from the programming along with other general [contextual] systems integration [specific to the contexts]. If I cannot identify, learn, write and understand the composition of software, I have to think about my testing and question it.
For example, how would this blog post get saved and published when I publish this draft? What goes behind and in front? If I cannot see the layers here and understand them, I cannot test better. Maybe, I can see them to an extent without programming skills. But, the programming skills gives the different perspectives to the testing, automation and test engineering. The advantages of these perspectives are unparallel and helps immensely when identifying and designing the context's priority and critical tests, and its samplings. Hope this makes sense to you and tell how critical it is.
To end this post, I summarize it as,
- I do not have to practice programming in the scale for being a full time skilled programmer.. I practice programming to be a full time test engineer whose testing is sought after. I stand here for today.
- Practice programming to engineer your testing better.
- Apply all other skills which you see as important to test the code that you are programming in your testing practice.
- If you are starting to practice Software Testing, start from programming and test your program. In testing this programming of yours, apply all other skills which are said critical for testing better, and upskill them in parallel.