4

There's a person with actual manual testing skills gained after countless testing of in-house software products [open that page, that page, and that page. Run test. Wait. Record results. Run performance test. Summarize. Gather artifacts. E-mail. Repeat to reproduce results.].

Outside of that experience, that person is just a typical "install Ubuntu, learn to google shell commands" poweruser, and she asks us the developer people to give learning advice on QA road.

As an actual software developer, who is going to keep an eye on that tester's skill progress - what practical skills, typically found in software developers, are most recommended to transfer to QA people to let them later find some work in that quality?

Also, what skills should be never taught to testers by software devs?

I recall hearing that Excel skills are much expect to prepare all kinds of statistical reports, are there other basics (probably never encountered by the poweruser) to be learned first?

3

4 Answers 4

7

As a manual/exploratory tester who works very closely with developers I find that the best way to improve my effectiveness is to learn as much as possible about programming in general, plus the languages/technologies (e.g. Drupal, WordPress) being used. Being able to code to the same standard as a developer is not a requirement to be an effective tester, but being able to hack stuff together or tweak existing code is definitely a good way to learn more about the products I'm testing and build up my overall domain knowledge.

Being able to think about a product in terms of how it might have been coded also helps me to better assess risk, discover bugs more quickly and (often, but not always) identify a likely cause to an observed problem. I also find that having deeper domain knowledge helps me to write better bug reports that are written in a format that developers can easily understand.

When testing front-end code, being fluent in HTML/CSS (with a good grounding in JavaScript) often enables me to pinpoint the section of code that is causing issues or needs more work. When I'm testing a website's back-end I'm generally not able to access the code that powers it, but having an understanding of databases, relationships between objects, user permissions etc. helps me to root out obscure bugs and get a good idea of what might be causing them.

My advice to you (and the tester you're supporting), therefore, is to give him/her as much insight into how the software is built, for instance by explaining how key technologies work or by talking him/her through some of your code. This will hopefully help him/her to become a more investigative tester.

I wouldn't say there's anything that a developer shouldn't teach a tester, but I do think it's important that testers aren't just replicating the testing already performed by developers. Testers need to be able to think beyond the code and the software's intended functionality; instead of just checking that things are working as they should, testers should use their intuition and creativity to find edge cases and unintended functionality that a developer might never have thought of.

3

As an actual software developer, who is going to keep an eye on that tester's skill progress - what practical skills, typically found in software developers, are most recommended to transfer to QA people to let them later find some work in that quality?

What I think the majority of manual testers need to be taught first would be the basics behind development and how the system itself is functioning. SQA (Manual) can be considered a low skill easy job that you can fill with nearly any one with basic technical skills. Sadly this results in poorly written defects, very little discovery testing and overall a weaker QA department that relies on the Development department.

So where to start? I would personally start by teaching them techniques to allow them to attempt to find the root cause of a defect. This will not only assist them in learning the development practices but it would also assist the developers when you have someone in QA who files a defect that says "On line 86 of Orders.CS we are mapping the AddressID to the OrderID" instead of "Wrong order was returned when I seached for it".

(I know this example is a bit overkill but I have personally filed such defects. Typically though they should be attempting to find the source of the issue not how to fix it in the source code).

The bottom line is that it needs to benefit both teams. Having a stronger QA department primarily, IMO, means that they are finding more defects and filing them in such a way that allows the developer to spend a minimal amount of time attempting to discover and fix the defect.

1

Software Testers require good concentration, soft skills, good attitude, and knowledge of the domain they are testing. Beyond that, the skills that are valuable to them, and which you as a software developer can teach them, are related to build automation and test automation. Software Testers who know how to set up and expand automated test frameworks get a lot more perks than manual software testers, and there is infinite knowledge to be gained in that area.

"Also, what skills should be never taught to testers by software devs?"

Nothing really. Just one vital sin comes to mind: Don't ever use Software Testers to write your Unit Tests.

1

I just happened today to read again blog post about difficulties people encounter when they try to transition to programming . Most of programmers will fail to even mention this problem (because they are past the transition). it is not obvious that even a PC power user can become a programmer. And hurdle so hard to overcome is not recursion or loops, but having a mental model how assignment work.

Blog post links to academic article (written by professors teaching programming for CompSci students) which contains simple test to check if a person can build mental model of assignment. Try it with your person. Article claims that more than half of CompSci students fail to develop mental model how assignment works and will never become competent programmers.

That is before learning domain-specific tools.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.