Converting from manual QA to a system QA
“API is what ah?”
“Huh, what’s protobuf?”
“Dude, can help me? I have no idea how to do this git thingy”
“Oh sh*t, I just accidentally deleted my entire branch…”
That’s pretty much what happened when you throw a manual QA some system QA’s work. It wasn’t easy, but well, when there’s a will, there’s a way, right? … right? … *internally crying*
I started my career as a manual QA simply because I have always been interested in software in general. I wasn’t good at it, but I was interested in it. Who wouldn’t? You know how wizards would recite some spells like Wingardium Leviosa and something happen, but the wizards don’t exactly know how it works? Yea, I see programmers the same way too. Instead of chanting, they would write codes and hope something magically happens.
One year into my career and having worked together with several developers, I got more comfortable with seeing codes (yes see, not read yet). I thought to myself, perhaps it’s about time for me to learn some m̶a̶g̶i̶c̶ coding and perform more than just front end testing. I then decided to take a system testing class taught by some of our senior QAs within our team. I started being super enthusiastic about it but, boy, I didn’t know what I signed up for.
Taking a class on top of work was not easy. The half-year long class was long enough to drive in some fundamental skills of system testing, but not short enough to easily balance work and class (salute to all those who are taking part time studies on top of work. You all are absolute beasts #respect).
The entire concept of system testing and manual testing, at its core, is the same. In terms of designing test cases, the mindset and how we approach a testing object remain unchanged. The main difference is the testing object itself. As a manual QA, I tested many front end features which involve a lot of manual preparation of data, clicking and scrolling the app to check how things ended up being displayed on the FE, etc. The testing object is something visible. On the other hand, system testing involves something we don’t usually see; APIs, databases, cache, event stream, etc.
However, getting used to the difference between the testing objects take a while. And time isn’t exactly on our side when we work in a fast-paced industry. So, how did I try to catch up and learn system testing as soon as possible?
1. The small achievements count
My interest in programming kept me going. But nothing beats the feeling of my code finally runs and works! It might just be a simple print, a simple for loop, or a simple error code handling. Those small steps count and keep me going and hang in there.
2. Ask, Ask, and Ask
No one knows everything, and everyone has to start somewhere. So don’t be shy to go and ask your co-workers or friends. If you are too shy to ask, Google can be your best friend (and of course stack overflow too). If you could think of the question, at least 1 of the other 7.9 billion humans out there would have asked the same question before.
3. Don’t Wait, Just Do It
Do not wait until all the stars are aligned to be “ready”. Seeking perfection is great, but often times, this would impede one from actually growing at all because it prevents one from start moving at all.
I was lucky to have a team lead who values learning through experience. While I was still in a system testing class (probably only several weeks into the class), she passed me a feature to test — an api test. From then on, she kept passing more and more system testing tasks to me. Needless to say, I made many mistakes. But only from those mistakes I can quickly learn. In the beginning, I would miss some testing points, and reading codes was still very intimidating. But tasks after tasks, I simply get used to it.
If I were to wait until I feel “prepared” and “ready” to start doing system testing, who knows, I might not have even started yet today.
All in all, converting from manual does not happen overnight. And surely, it takes effort.
So is it doable? Yes, definitely.
I have minimum programming background, can I still do it? Duh, I was pretty noob too.
Is it daunting? You bet it is.
Is it worth the effort? To me, yes!