6 Bugs a Crowdsourced Testing Campaign Can Help You Catch
According to some estimates, as many as 25 percent of technology projects fail, with an additional 20 to 25 percent never showing a return. Even when projects are labeled “successful,” 50 percent require massive reworking to succeed.
For software projects, the challenges don’t stop with being successful. In fact, according to experts, there are as many as 750 bugs per 1,000 function points (roughly 50,000 lines of code) when software is released. Of those 750 bugs, at least one is sure to be a show-stopper.
Once software is released, and the maintenance cycle begins, these problems become even worse, with an average of six bugs per function point. Even worse, your chances of catching bugs during the maintenance period is lower – a mere 83 percent – and there’s a seven percent chance of introducing a new bug when trying to fix an old one.
How do you get ahead of these challenges as a solo developer or small team? One recent trend that developers are using to beat the odds is crowdsourced software testing.
According to estimates, 25% of technology projects fail and 750 bugs are found per 50,000 lines of code when software is released.
What is crowdsourced testing?
Crowdsourced software testing is an evolution of the old-style beta testing that many companies still engage in. While companies have relied on beta testing for decades, the results often leave much to be desired. Joel Spolsky, from Joel on Software, has long made the case that beta testing is a waste of time
By contrast, crowdsourced testing involves a structured process with paid testers, teams of specialists who review, duplicate and document reported issues, as well as a project manager who keeps things on track and makes sure the client’s needs are met.
How crowdsourced testing works
When a company or app developer decides to use crowdsourced testing, they are assigned a project manager who will handle all communication between the testers and the client company, schedule testing times and ensuring the entire process goes smoothly.
For companies working with a tight deadline, the project manager can usually coordinate tests within an hour or two of receiving the go-ahead. Conversely, if a project is experiencing delays, the project manager can reschedule testing for when it’s needed.
Once testing begins, client companies can monitor the process and see exactly what the testers are discovering. In addition, the platform will bring any critical bugs to the attention of the client as soon as they’re discovered. Once testing is completed, the client is also given a detailed report of all discovered bugs and issues.
This new method of testing is already helping developers catch and address a number of different kinds of software bugs that would normally be much harder to address. While not an exhaustive list, crowdsourced testing is helping companies solve the following development bugs.
Despite the fact that the mobile world is dominated by two main operating systems (OS) – Apple’s iOS and Google’s Android – fragmentation within those OSs can stretch a development team’s resources to the breaking point when trying to find and eliminate bugs.
To illustrate the point, in August 2015 OpenSignal found there were some 24,093 distinct Android devices on the market, an increase from the 18,796 devices the year before. Add to that the number of different vendors, such as Samsung, Motorola, Sony, LG, Huawei, Google and others, fragmentation becomes a real problem.
In fact, while only 7 percent of Android users were running Nougat – the latest version of the Android OS – as of May 2017, some 90 percent of iPhone users were running the latest version of iOS. Even in iOS, however, there are still issues pertaining to what device the customer is running, whether it is an iPhone or iPad, what screen size it has and the relative performance of the device in question.
For development teams, large and small, testing for each of the myriad of hardware, software and OS configurations can be a near-impossible task. With crowdsourced testing on the other hand, companies can tap into a much larger network of testers capable of testing a much wider variety of parameters than would normally be possible in-house.
In 2015, there were 24,093 distinct Android devices on the market, an increase from the 18,796 devices in 2014.
The WannaCry ransomware made headlines in early 2017 when it infected computers in some 150 countries and brought some industries to a halt. Although the attack’s impact was mitigated by amateurish mistakes by the perpetrators and the discovery of a “killswitch” by a 22-year-old security researcher, the ultimate cost of the ransomware is still expected to reach well into the billions of dollars.
Ultimately, WannaCry took advantage of a security issue in older versions of Microsoft Windows. Although Microsoft had released a security patch to address the problem, many companies had not installed it, leaving them vulnerable to the virus.
While, in this particular instance, the bug was already well-known with a patch already written and waiting to be applied, the damage would have been far worse if the bug was a zero-day exploit – a previously unknown or undisclosed vulnerability. In the time it would have taken to identify how WannaCry was infecting computers, code a patch and distribute it, the virus could have done untold damage.
As much of a nightmare scenario as that might be, it is exactly the kind of security scenario that crowdsourced testing can help companies avoid. By having such a wide and varied source of testing at their disposal, companies can significantly reduce the risk of major, zero-day exploits creeping into their software.
No matter how well a piece of software is designed or code written, errors are a fact of life. Whether the errors are bugs in the software or user mistakes, errors that are not handled properly can mean the difference between the program handling it gracefully or crashing and losing valuable information.
Unfortunately, programmers and software developers often have a very specific workflow in mind when creating software. As the architects of the software, they know exactly how they want it to work, how it should work and how it will work best. As a result, it’s not uncommon for them not to account for edge-case scenarios, or someone who has no idea how the program should or should not operate.
Having a diverse team of testers is an invaluable resource in identifying edge-case scenarios and fool-proofing software against exactly the kind of users that software developers often don’t account for and help developers make sure that potential errors are handled safely and gracefully.
Gone are the days when a single company could dominate the tech landscape with an OS, office suite, development tool or other category-leading program. Thanks to the rise of open source software and ever-more competitive tech startups, even the largest corporations are seeing the benefits of software that plays well with others – even competitors.
For developers, however, this is another area where testing can stretch available resources to the limit. Since in-house developers can rarely account for every possible way the end-user may want to import, export or share data, crowdsourced testing can uncover interoperability issues that might otherwise be missed.
Run-time and performance issues
Because of the myriad of different software and hardware configurations we mentioned earlier, there’s often a real difference between performance in a testing environment and in real-world scenarios.
Crowdsourced testing can help identify those scenarios and improve an application’s performance in the real world where it will need to reside alongside other applications, share resources and continue operating under less-than-ideal circumstances.
The physicist Werner Heisenberg was the first to describe the observer effect of quantum mechanics, wherein the process or act of observing something inevitably changes its state. A Heisenbug is aptly named for Werner Heisenberg, as it describes a software bug that either disappears or seems to change when the programmer attempts to duplicate, study or fix it.
For a computer programmer, there is no bug more difficult than one that cannot be reliably reproduced. By having a large team of testers working on the issue, the odds of being able to determine the specific steps necessary to trigger a bug are greatly increased.
While crowdsourced testing may be a newcomer to the software development scene, it is already proving to be an invaluable resource for development teams, large and small.
Thanks to these benefits, one recent report shows as many as 47 percent of respondents are relying on crowdsourced testing for their development. In the coming years, this number will undoubtedly increase as more and more companies recognise the benefits crowdsourced testing provides