We have written a few blogs as of late about testing, and to some it might seem a little boring. I can’t argue – testing isn’t the most exciting thing that I get to talk about. Being the Director of Innovation, I get to work on a lot of really cool custom software development projects, and work on some really technically challenging projects. But one of the important pieces to all the projects I am overseeing is the Quality Assurance (QA) aspect. It isn’t the “sexiest” thing in the world, but if you don’t have a good QA process, you might be in trouble down the road. We have written a few blogs here about the importance of testing. So I won’t go into this in too much detail, but I will talk a bit about QA and testing and how we approach the whole process.
Why is Quality So Important?
Most of us can say that we don’t work in a place where if our software breaks, someone might die. But – that doesn’t mean it is less dire to the health of a company if their software is riddled with bugs and doesn’t operate well at all when they need it most. But we also have clients where the performance of their applications is actually a life or death situation, and so we approach every project with the thought in mind that quality really is tantamount.
Let’s take an example of a client of ours called FieldSaver, that markets an Android application for first responders. This app takes the data an EMS or Firefighter takes data on a patient, and inputs this into the app (called “on-scene” Pre-Hospital Patient Care Reports) and this is sent to the hospital while the patient is in transit, saving time, and possibly saving the patient’s life. You can see why quality and a good testing process are really important in this situation.
What is the difference between Quality Assurance and Testing?
Testing and QA is like the difference between an artist and someone who just paints. An artist knows how to paint, but they also have an understanding for presenting things in a visual way and have a deeper knowledge of the craft. Someone in QA has a deeper knowledge for how to ensure that a software product has an acceptable level of defects. This person is engaged in the art of trying to ensure that the software product is of sufficient quality and they understand that the devil is in the details. They also consider the fact that 100% bug free software is something most clients can’t afford, and it isn’t really a goal to strive for. The QA finds the important bugs or knows how to find the errors that are bad in production. A tester just runs test plans.
Here is another important part of the process- you shouldn’t have the same person who developed the application test it as they develop. Why not? Well, because a developer and a QA analyst have two different mindsets. A develop is an engineer that is constructing and building something. They are not necessarily going to think about the software from the user’s perspective because they participated in building. It is very hard to play both roles at the same time because the developer knows how they built it. This is not to say that a developer can’t ever be the QA person on another project. If they have a smaller hand in building it – they can absolutely be the one running QA.
A Note on Using Testing Tools
A tool is an important way to help you organize your testing and apply uniformity to your testing so that the consistency doesn’t necessarily rely on one person. Two different people can test the system at the same time and the tool helps keep things straight so all testers involved have consistent levels of what failure and success mean. We use a tool called the Amadeus Testing Center, and this helps us to be much more efficient. It also helps us to write better test plans that focus on the most important things for each application.
Need help testing your application? Contact us to learn more.