Behind the Software: QA
For those of us not acquainted with the technical backend side of software, much of what goes on behind the scenes goes unnoticed and stays that way. To develop software is one matter, while testing and keeping it bug free is another. This post seeks to explain exactly what goes on behind the software to keep it running as smoothly as possible.
The people who take up this noble post at Sourcefabric are part of our quality assurance (QA) team. So, what is quality assurance exactly? Why is it important? What does it do for our users and how does it make our software better?
I spoke with our Sourcefabric quality assurance team to learn more about QA. As a relative novice to the technical backend side of software development, I asked the team to speak to me as though they were trying to explain their job to a seven-year old child. After a bit of laughing, the team was extremely patient and fantastic at explaining things. Here is a summary of our conversation.
Q: Why is QA important?
A: QA goes far beyond simple testing which many non-tech observers may consider the only responsibility of QA testers.
The idea here is to act preventively and catch the issues at the earlier stages of the software development life cycle (which is implemented following scrum on our major Superdesk project).
The cost of the issues found at later stages is much higher for a variety of reasons, e.g.
a) Certain technical solutions might have already been adopted by the time QA starts to report problems that have certain trends or patterns. Should those issues have been discovered earlier, the more appropriate technical solution would have been chosen then.
b) Say we are demo-ing an alpha version (testing version) to our customers. Although they might be prepared to see certain issues, it would be much more cost-efficient to catch the critical and major issues before those end up in the demo version.
There are various problems that QA tester may face in his/her day-today life. For instance the issues which have been fixed already might occur again (so called regression), so a QA tester has to be prepared to continuously test the current working version against such regressions.
Q: What is automation testing about?
A: It is just utilization of basic programming skills within the automation framework appropriate for the nature of a task that should be automated. Automation testing ensures that the expected requirement criteria will be met while the automated suite emulates the user actions. Simply speaking smart QA will write basic automated suites to a) login to the system , b) perform action a, c) delete object c; etc. The automation framework instructed appropriately will emulate the user actions and then check the specific outcomes of those actions against the expected results (that were programmatically inscripted into the automated suite).
Automated testing is saving testers from repetitive human efforts, keeping the motivation among them at its highest level and fostering an efficient software development process.
Q: What should I do if I find a bug?
A: Given the open source nature of our projects, our users are more than welcome to report the issues on our issue tracking system. Or they can reach out to the community in our forums. We are here to exterminate all bugs, so if you see one that we have missed, please let us know so that we can take care of it.
Part of our goal at Sourcefabric is to make sure that what we do is properly communicated to the community, no matter what their technology experience and background is.