DEV Community

Discussion on: I'm a Tester, Ask Me Anything!

Collapse
 
mfurmaniuk profile image
Michael

Typically they come in after something is written, and either Customers are getting on board, or there has been a deploy and people are using the code somewhere. Issues are reported and then someone is hired to start checking code before the Customers see it. I've come into startups anywhere from the 10th to the 30th person, depending on the size, where junior Developers are given the task to write more Unit Tests, or even do all the Testing as a way to familiarize themselves with the code.

I came in to formalize the process, check the code, and because I am lazy I start automating things so I can have something check the simple things, while I focus on more complex tasks or pieces of code. With start ups its easier as people want their code to work and they want the company to be successful, so its easier to have conversations about something being broken and fixes can be done really fast. As companies grow and more process is in place, with more defects, you tend to start building up tech debt which can get out of hand if you don't manage it well. In a start up your code base is often small enough you can respond quickly enough to deal with issues right away.

The most successful Development organization I ever worked with had a "Release Day", where pizza was brought in and each Developer wrote a script (basically a set of tasks to check, or things to do with the UI) those scripts were handed out to people who had no familiarity with that part of the product and they went through things. Some stayed on script, some strayed or just played around - sort of like how some Context Driven Testers will work. This worked well because you can't always test your own things with an open mind, but something unfamiliar will often allow people to open their minds and think more outside the box.

My problem with continually testing things out on Customers is when they start paying for a product, or relying on it more, issues and risks become larger. Then you start getting a reputation problem and often can lose Customers who expect the finished product to be "defect free". Putting a Beta Release banner on things helps, or at least Customers know what they are getting into, but after a period of time you have to start testing before release, you can't build up a Customer base on a Beta forever.