Awesome topic! Personally, here I agree with you completely & share your opinion: no coding is necessary to be able to test.
My experience has been working with many companies which have different roles which separate out those who know coding and those which don’t. Different roles are advertised & interviewed for, suiting different testing positions:
- ‘manual testers’ who create test cases & steps in a tool, perform exploratory testing, have communication and analytical skills to align with business team members setting requirements and oversee & or organise business members performing UAT
- ‘user experience testers’
- ‘accessibility testers’
- ‘test automation engineers’, ‘SDETs’ etc.
- ‘performance testers’
- ‘security testers’
If/where there are narrowly-defined & specific roles such as these, then the automation and performance testing roles *should* in my view know programming. My experience has been working for decades with testers applying those specific roles without the programmer mindset as well as the tester mindset, sadly being out-of-their depth very quickly, needing additional support & training which costs the company + project much unexpected time and money.
I completely support your points on the idea of learning programming to become a better tester also here - any strive for continuous improvement & improving knowledge to be a better tester is admirable & knowing programming will aid in so many ways, potentially including:
- better communication & understanding when speaking to developers on implementation or bugs
- better understanding potentially of the product/system, if more types of architecture diagrams like lower level UML can be understood
- better analysis skills of what might be causing a bug with increased understanding of how computers operate - memory, protocols, networking etc.
- better communication & alignment with other testing specialties - performance, security
- better communication & alignment with other project or company members - UI designers, operations or networking teams etc.
This is not to say other improvement areas such as demand analysis, communication, project management knowledge should be overlooked, but perhaps programming as a 1st step would provide the widest benefit...
Thanks for your comment, Alex. Agree with you, too .
There is so much more than “just” coding. Unfortunately, if engineering managers take care of testers without a testing mindset, will usually lead to a wrong picture of the role of software tester.
hey @danielknott , thanks for bringing up the topic. While I agree with all the points mentioned by @alex_read , I strongly believe that testers should be able to ‘read’ the code if not ‘code’ code.
There are lot of benefits to it, I highly recommend this article by Amy, https://amymhaddad.com/why-reading-code-matters though it’s more inclined towards developers, I agree with the points mentioned in ‘Reading Informs Writing’ and they would help testers as well.
Hi Gunesh,
thanks for your comment and the link to the article. I totally agree with you. Reading code is an important skill and is something testers should not be afraid of.
It will help to understand more about the implementation, the technology used and it trains the tester to see patterns in the code and to raise questions when needed.
Hi Gunesh,
thanks for your comment and the link to the article. I totally agree with you. Reading code is an important skill and is something testers should not be afraid of.
It will help to understand more about the implementation, the technology used and it trains the tester to see patterns in the code and to raise questions when needed.
I was going to write a long answer here, but it basically boils down to this. I’d like to see testers comfortable enough around code to have meaningful conversations with those who wr(i/o)te it. Everything else is a bonus.