Calculate what you hope/expect your product to make. Now imagine 90% of that profit being cut out because the first 10% of customers rated your app poorly. Now you have the value of Quality Assurance (QA) and Usability testing. You really can’t afford not to do testing.
Despite the high stakes, testing can be an undervalued activity in software development. There is a temptation to leave it until the very end, or worse, to let the customers do it. Assuming that the software engineers will make sure their code functions as they write it and that will be sufficient is a great way to connect with disaster. Many teams don’t even consider usability testing at all.
One of the cheapest and most powerful things you can do for your product is to test usability before you begin programming. Create mock ups of the screens and print them out and show them to a focus group of potential users. What “buttons” would they push? What do they think will happen if they take a specific action? How is that different than what you had intended? Starting with usability will likely create changes to the design of the project. It is FAR less expensive to do that before the code has been written than after.
One of the delightful things about writing code is that it can be like putting together a puzzle in which connecting one piece to another can cause the picture to mutate. There is an old programming joke based on the song, “99 Bottles of Beer on the Wall.” It goes, “99 bugs in the code, 99 bugs in the code, take one down, patch it around, 117 bugs in the code.”
If you wait until the end to test, you might run out of time or money. Waiting until the end risks finding a catastrophic bug that has gotten very expensive to fix. Testing should occur concurrently with coding.
Testing is a specialized skill. To thoroughly test a product, a QA tester will create a plan that systematically exercises each of the different parts of the code and the whole. They document the outcomes of those tests in a clear and technical manner, so that bugs can be reproduced by the programmers.
The focus of testing is different than that of development. Development is trying to solve problems, QA is trying to find problems, and these are different mindsets. In some ways, QA testing is a bit like proofreading, and is most effective when someone different than the original programmer performs the tests. When a programmer tests their own code, it is very easy for people to miss or overlook errors because they are so familiar with the functions, they don’t even realize when they aren’t working properly.
Testing saves development money and time over the life of the project. It may seem like it “costs” more in the short run, and it can be hard to measure the value of the problems you don’t have. But, to get a picture of the value of testing, go to the Google Play Store or the iTunes App Store and look at apps that have poor ratings and read the comments. What are people complaining about? Things not functioning right or as expected. Too many complaints about functioning, and your app will be removed from the stores.