Cheezburgers and testing advice

I started to make a list of 10 tips I’d give to junior software testers.  But then I saw a talk by Ben Huh, of lolcats/icanhascheezburger fame.  Ben made the point that, with the internet, content is free, but the organization, editing, and presentation all require skill.

Inspired by Ben and the cheezburger franchise,  I asked 60 successful testers to each provide 3 tips they’d give to a junior tester.   I received tips back from more than 40 of the testers, and ended up with a list of more than 100 tips.

To respect their privacy, I won’t provide the verbatim tips here, but I did find it interesting that there was a lot of commonality and the tips were collectively much better than what I came up with.

I grouped the collected testing tips into these 19 themes.

1. Focus on the customer  Keep the customer in mind when testing.  Develop empathy for their needs.  Talk to customers and observe them using your software.

2. Read bugs  If you work with a group of testers, read all the bugs they log each day, especially any logged in the area you’re testing.  You can learn a lot from how other testers approach bug finding.

3. Read code  Find the code that implements your feature.  Even if writing code isn’t your thing, reading code critically helps find potential boundaries and flaws.

4. Take pride in your bugs  Bug advocacy starts with a well written bug title and description. I re-read the bugs that I log to assess whether they are fair and properly detailed.  For important bugs, if they aren’t getting fixed, be the driver to make sure the right decisions and tradeoffs are being made.

5. Get involved in your feature’s design Before code is written, find out about the planning and get involved while big changes are still possible.  This also helps to understand the tradeoffs and compromises that are being considered.

6. Design your tests Whether it is finding boundary values, applying combinatorial techniques, drawing pictures, or creating models, it helps to put thought into your test design.  During exploratory testing, consciously alternate your test planning and product learning.

7. Know your feature  Whatever features you’re testing, you should know the design, limitations, bugs logged by others, code churn, and interactions with other features.

8. Work with others to test your feature  Work with testers with different expertise to test your feature.  Brainstorm test ideas and ask for their feedback.

9. Learn your product  Even if you’re only responsible for a small feature area, becoming an expert on your product and the other new features can help you be a better tester.

10. Foster good relationships with your developers  Testing can be adversarial, and it is easy to flip the “bozo” bit on some of the people you work with.  To find out the latest and get your bugs fixed, it helps to develop strong relationships with the developers that fix your bugs.

11. Expand your scope and network  Successful people have strong networks they can rely on for expertise and advice.  Work both within your company and externally to meet new people and develop professional connections.

12. Find mentors/role models I’ve worked with some amazing testers, and learned a lot from them.  To improve your skills, look for mentors to meet with, or role models to emulate.

13. Be self-critical  Testers are great at finding flaws in software.  It can help to turn some of that attention inward, and identify what you need to improve.

14. Manage your time It is easy to get focused on big tasks or distracted by meetings, and not make time for learning, bug hunting, or a healthy life.  To avoid burnout, learn how to manage your time.

15. Automate wisely Automated tests may lack the same “peripheral vision” as a skilled tester.   When done wrong, automation can lead to spectacularly unmaintainable code that doesn’t provide value in assessing product quality.  But careful automation can provide value in noticing defects faster.

16. Improve your coding skills  I’ve met some talented testers who’d rather not write code.  Arguably, just as movie critics become jaded and don’t appreciate the move-going public, when I put on my coding hat I think differently from customers.  But coding is a valued skill, and it can help you become better at reading code and understanding the internals of your product, as well as become better at small tools to make mundane tasks easier.

17. Attend triage  In the final days before shipping, triage teams review bugs to decide what to fix and what to postpone.  If you don’t normally get invited, ask to attend.  It is fascinating to see the roles of tester reputation, customer impact, and perceived risk balanced to make decisions.

18. Keep learning  Whether it be a soft skill,  like public speaking, programming language, or new test technique, successful testers take time from their busy days to keep learning.

19. Enjoy what you do, and do it well  If you can’t afford to leave your job, you need to learn how to love it.  Testers can get cynical, especially during challenging release cycles.  Testers who enjoy their work, and exceed expectations will do well.

Special thanks to all those who provided tips.  For privacy, I’m not listing the names here, but I’ve emailed you all to thank you.  I learned a lot from all of you.

Advertisements