Software quality assurance (or SQA, as some IT pros often acronymize it) refers to the process by which software defects present in newly developed software programs are identified and fixed. If you develop software or are in the process of custom software applications then it critical to address the quality needs that would arise to meet all your business objectives. To ensure the quality that is desired, it is necessary to have a QA team or group that is tasked with that job. However a lot of times allocated a large pools of resources to the testing or QA function seems to be in-effective as the resources cannot be effectively utilized throughout the development cycle. There are phases where the resource requirements could be quite large while sometimes the need may not be as much. Hiring and keeping a large team of testers on staff could be cost prohibitive due to the fluctuating testing needs.
Can’t developers be asked to test the software themselves?
Often companies wonder whether software quality assurance personnel are really required for ensuring quality. Why not have the developers test the applications. After all, developers are the most qualified to know the internals of the application. Wouldn’t they be the people most suited for carrying out the bug-hunt?
To some extent, quality can be instilled in the development process. The developers can follow best practices during unit testing to ensure that most of the code gets tested up front. However, once all the various components developed by different developers start coming together it is fair to expect some functional defects to be uncovered. That could be either due to poor design, unclear requirements or due to configuration or flows that may be impacting the finished product. To test these ‘integrated’ pieces thoroughly, there is not only application knowledge required but a thorough knowledge of testing methodologies and tools is also required. Getting up to speed on the software testing methodologies and being able to use today powerful testing tools requires long-term specialized training. If a developer is engaged in training with testing tools, who is going to do the actual coding? Also, as bugs are being found, the developers would have to start focusing back on their core activities which is development. This could eventually slow down the overall development process and result in ‘cutting corners’ to meet the delivery deadlines.
Is outsourcing a good option?
Outsourcing of some of the testing activities or in some cases outsourcing of the complete testing function is gaining popularity amongst most IT companies. Data suggests that in the long run outsourcing can not only help save significance costs associated with managing quality but also allows organizations to go to market faster with their products. There are a lot of testing services vendors that cover a wide spectrum of offerings ranging from manual testing to process implementation to tools expertise.
However, due to the abundance of QA firms out there, it is imperative for every company to evaluate each potential vendor and ensure that they truly have the right expertise and the credentials. Verify the references and look at the testing tools implementation track records of each. You may want to ensure that the potential vendor has an internal training program to train and certify manual testers on today’s sophisticated testing tools. Check if they have testing tools certified consultants on staff.
A good example of a reputed company has the breadth and depth in testing expertise would be Advanced QA. This Texas-based company is a HP partner that not only provides manual testing expertise but provides tools experts that are certified in products like Loadrunner, QTP and Quality Center. They have a solid track record of providing top notch consulting services across various industries. They are mentioned favorably in several QA/Testing forums. It may be worthwhile to get in touch with them and check if they are a good fit for your needs.