The most valuable testing is that which exposes your lack of understanding of what the system should do. These also usually require the most extensive rewrites, so you definitely want them as early as possible. Unfortunately, they also require the most extensive understanding of the system as well as an ability to detail their thinking at a level that can be understood by the development team(s).
That's why I don't see the value of freelance testers, and I'd much rather have somebody employed on a more permanent basis, either part-time or full-time.
TLDR; Sometimes you can gain valuable input from a fresh pair of eyes.
As an example, an error in an iPad app was dismissed as a known connection issue by the dev team because there were no server side logs so the request wasn't hitting the server. This was the dev team's first iOS app. My specialist knowledge of mobile testing helped identify quickly that the app was connecting to the servers but that this one request wasn't and provide console logs showing where the communication error was occurring.
This customer were to launch in public the following week and this would have killed their reputation due to the critical nature of the function that was failing. This was my first day testing with them after they had put in a year of development effort and dev testing (they brought me in specifically because they felt they were getting "tunnel vision"). This was one bug masking behind another which I spotted due to 3 years experience in testing mobile apps. I think that provides value for money without being employed permanently, however I appreciate that companies/teams don't see that value until it's their reputation that has been protected by the investment.
In short, if you have small (micro) services, they are easy to build and easier to test.
Testing, on the other hand, is a simulation of how your system responds to user input, and how your users respond to the system's outputs.
If your tester can't simulate a user, then you can make your services as micro as you like - it'll make no difference when you get the phone call saying the system doesn't work as expected.
Without that domain knowledge, the testers may find implementation bugs, but they won't expose the issues caused by the developer's lack of understanding. The latter is almost always more valuable to find and more difficult to fix.
Going off another tangent, getting not a generic tester, but a domain expert who's also a tester, might help.
Of course you should do both kinds for security critical projects.
Take a concrete example: a piece of medical equipment prints off reports. If your tester has no medical knowledge, he doesn't have a frame of reference to know if the numbers are correct or not. He's also more inclined to use it exactly how you specify.
A real doctor would bring his own experience of similar equipment and try to use it in ways you didn't think of. In addition, he will be able to gauge whether the reports "look right".
Freelance web designers and SEOs are everywhere because you don't need any experience and often times don't even require any actual skill to do the job. All you need to know is how to repeat the whole "Social media marketing your business reach customers user experience blah blah nonsense" spiel and people say "Yeah! I want to miraculously reach the top of Google for everything and make a billion online like Zuck" and hire some dude for $300 who read "HTML and CSS for Dummies" last week at a Barnes and Noble. I know this because I used to be that asshole (not the business owner, the freelancer).
Other kinds of web/tech freelancing have very simple-to-understand values. In the minds of a lot of people who hire freelancers, Web design = Branding or Marketing = Profits. Simple. Not exactly correct, but that's the line being fed to everyone these days. Same with SEO. SEO = Rankings = $1B profit.
Testing is different though. I have to say however that if a company even needs to test software to begin with then they're probably playing at a higher level than the companies hiring freelance designer/devs and SEOs. Still, the value of a tester is still nebulous. You don't hear freelance testers out there drilling "Testing will make your customers love to use your product, increase efficiency on yours and the customer's end, and save you a ton of money" or something equally easy to market. To most businesses testing means "we played with the app on the staging server and it worked fine for us. time to push it live". It just comes off as an extra expense that isn't worth the investment.
And why is that? Because freelance testers, unlike other freelancers, have failed to create a consistent, marketable appeal to business owners (i.e. tell them why it's going to make them tons of cash) the way other freelancers have. And it's probably because those who do testing are a little more thoughtful and less about pizazz and flash than designer/developers and the nature of testing itself is kind of boring unless you're really into it yourself. Design is fun because everyone wants to be an artist. SEO is fun because people are given the idea they're in control of which keywords they'll pop up for and such. Testing? Totally boring. Some guy's gonna come in here and find bugs in our software? We can do that ourselves or just make sure to mark all the complaint emails as TODOs in Gmail.
(random point + small shameless plug: I founded http://www.testelf.com as flat priced testing service for iOS apps)
Your well-tested software still has a huge marketing battle and possibly integration issues to replace incumbents, regardless of how many bugs they have. You end up needing to create a negative campaign about the headaches and hassles of using XYZ, and that you don't have those issues (because it's well-tested, but you generally can't promote that to most people, as it's 'too technical').
IMHO there is a strong cultural component at play. Testers are, quite frankly, second class citizens in the land of software. This is due in part to the ambiguity of the term itself, as it can mean everything from a button-clicker to an engineer (with perception often defaulting to the former).
As a result, testing becomes unsexy. Few developers with options choose to do it full time, and it becomes an afterthought. Even dev-centric approaches like TDD get brushed off as "crutches" for "junior" engineers. This all helps propagate a fairly downward-tending cycle of testers and testing lacking voice and status within the organization.
Testing in this space is often more a function of the technology stack than the industry of the client. This allows security test companies to build up great expertise without knowing anything about the client's specific app or industry.
I think the reasons it's really hard for freelance testing communities to get traction are
1. real or perceived lack of return - you have a 2-3 month engagement and realistically the first month is training and acclimatization (hence wasted). better off hiring a FT resource.
2. ample market supply - there are plenty of people looking for FT roles. I'm a testing manager in a secondary technology city in the US, and it's no trouble to get resumes.
3. limited scope where they're useful - I would consider freelancing or hiring a freelancer that specialized in a particular tool (Selenium, Robot, Cucumber, QTP, etc) if building out a testing framework or conducting major refactoring but otherwise consider testing an iterative process.
4. This is a bit of a bootstrapping problem, but it would need a (much) better version of Angie's List. Because of the reasons I listed before, this would be a high risk decision and most people would be very reluctant to go with an unknown quantity. There would have to be a substantial number of verified ratings and reviews. [EDIT: this is also why so much contract testing is arranged via recruiters - the recruiter wants repeat business. A bad referral can poison a relationship, so you have a strong element of trust]
You make some good points which I'd agree with
If I ever went independent (or engaged a freelancer), I'd expect an LLC/s-corp with a professional online presence, reference sheets, sample work, and slighly better than LegalZoom-grade contract templates. Consider it my smoke test of potential partners :)
It would need granularity: as a developer I should be able to purchase N minutes of time from N people, potentially in such and such a demographic.
It would need an API: I should be able to build human testing into my deployment infrastructure.
It would need accountability: at minimum I want webcam footage of the tester using my product.
There are complications, but I see no reason why almost all of these couldn't be overcome by sufficiently smart automation.
Someone go build this!
If you're looking for this more as a formal end-to-end service, you can take a look at our buddies at Rainforest (https://www.rainforestqa.com/). You can also look at services like uTest, though they're real pricey.
UserTesting may already have one, however my brief two minutes of poking around didn't reveal that they do.
From what I understand the phone won't stop ringing so clearly there is strong demand for something like this out there.
Clients rarely understand the value of testers, they appear to simply be an optional additional cost. Freelance developers have little incentive to recommend them since it inevitably leads a smaller slice of client budget for them.
When an organisation gets to the stage at which it understands the value of, and develops a need for, a tester they probably have enough work and cash to occupy one full-time.
To cater to the companies that thought testing was an additional expense and didn't go for it.
It most white collar work, there is strong pressure to tell people what they want to hear. Well, it makes me very happy to get a clean bill of health from a tester, but if I was expecting that to happen, I wouldn't need a tester.
Testing takes a kind of special discipline that the average office worker doesn't have. Whenever I've been an organization that has tried to press ordinary people into a tester role, it's always been highly ineffective.
That said, there isn't one formula to make a good tester. Some testers I know are very systematic, they belong to quality control associations, others are expert in project management, requirements, etc. On the other hand, one of the best testers I worked with had bombed out of every other job we gave him because he was always able to screw up anything we gave him. As a tester, he was great, because if he couldn't break it, nobody else could.
All of these things, I think, point to a need to a longer-term relationship with a tester than you're going to get in a freelance situation.
And how often do you really need just one tester? What are you going to do, bring in 10 different freelancers?
Freelancers need to wear more hats than just "tester".
It seems to me, a lot of folks here wouldn't be adverse to using a freelance tester in general, but are extremely adverse to using bad freelance testing (and have the scars to prove it!).
I'm a contract tester and recently decided to make the transition to freelance. From my experience (and confirmed by the comments here) the main barrier is one of perception - how can testers / add value to my organisation? And how do I know this tester is as good as they claim?
There are numerous ways someone like me can help an organisation:
Help organisations find the right permanent employees; Mentor said permanent employees by sharing knowledge; provide testing experience to a known or unknown business domain; supplement the clients test lab with your own equipment; evangelise testing throughout the company, demonstrate what good testing can do, what it looks like
I had to stop myself there! And pretty much all of those examples are from recent (within 12 months) history. Luckily for me I've been able build a decent enough reputation that there is potential for repeat business.
Two more key problems: first, the kind of testers that people here need may live in a bubble where everyone knows the value of testing and as such may not realise the rest of us exist - my colleagues and I need to start dispensing some red pills :). Second, the testers that are trying to be better appear to be outnumbered by the ones that aren't (snake oil merchants, testing zombies, call them what you will) so again we need to tackle that head on too.
Nice discussion. Thanks for the illuminating comments folks.
There's a reason -- software developers have figured out that they're better off just releasing the product and hearing from their customers. It's called "beta testing" -- no special panel of testers, just users eager to try a new product, willing to put up with imperfect operation for the privilege.
And not all beta tests are identified as beta tests -- many of them appear to be a product release, but the real purpose is to wring out the bugs. The classic example is Fedora Linux, which is one very long beta test (and one that most of its users understand).
As to Web sites and online games, developers use A/B testing to accomplish the same ends, without the need to locate people whose special role is to test.
When you have a really good, competent, creative tester, the contribution can be invaluable.
But... many organizations tend to rank testers somewhere around the janitorial staff.
(By the way, get incompetent janitorial service, and watch what happens to your work environment... And, personally, I've found many of them to be plenty competent, caring, and helpful -- better people than many of the suits.)
Then, there is the other side of testing... It does exist. People who couldn't hack (aka "handle") any more, and who really are more or less button pushers. They are the ones who provide "QA signoff" as opposed to real troubleshooting.
It can be difficult to argue your value, when much of your field is a morass on two axes: Lack of respect, and lack of competence.
If you mean a software engineer that designs software to validate that other complex software systems function (often dealing w nontrivial engineering efforts and undecidable problems) , they probably don't freelance because we denigrate them by calling them "testers" and they'll get hired fulltime by companies that understand the value of their work.
I have a lot of experience testing desktop apps for my day job, but I'd love to start something on the side.
Anyone here have ideas on where to start?
I find that really good QA testing often needs someone quite technical and even someone who has some insight into the way the code works. You have to actively think about ways the system could break. It's probably closer to the mentality of a penetration test than it is to usability testing.
I think my only concern would be security with those who are testing your app, because you would most likely need them to test use cases by giving them special accounts and such. Is there some sort of checks and balances for people who are testers on the site? Can you make the testers sign a NDA before they test (if the project happen to still be in BETA or something)?
As most other cheap labors in a remote freelance mode — it is discredited. I think it would be just hard to build a personal brand strong enough to compete with tons of people, who can look like a diamond on a pre-sale phase and then just disappear.
We have great customer retention (excluding some specific one-time projects, like a penetration test), I hope due to our dedication :)
I would say manual tests are most popular, and then load tests, then automation. Often customers start from a tiny manual test and then use our services more and more, in other QA areas, being happy to receive all of those from one window in a unified manner.
I've never heard a single coworker or fellow entrepreneur say, "Gee, I really need to hire a freelance 'tester'." (Or other words that would be more likely, such as 'Q&A specialist'.) That's something people either don't do at all / don't care about, or do in-house because they know it's so important.
So, aside from arguments about skills, I don't think there's any demand.