Software quality assurance analysts and software quality testers both play an integral role in the software testing process. Software quality analysts must concentrate on delivering consistent quality across the software development life cycle (SDLC) of the company, while managing procedures, process, standards and policies; whereas a software quality tester is responsible for ensuring the overall quality of the software products.
In a perfect world, the requirements would always be clearly defined prior to any software quality testing or software quality assurance-related activity. But in reality software quality assurance analysts and software quality testers are often given minimal direction by project management, software developers and business analysts. They are also allotted little time in which to complete a software project. The reason for this has partly to do with the organizational structure of many software technology companies.
Software quality assurance and software quality testing are two distinctly separate functions that should be able to work together at some level, but should never be rolled into a single entity. At some companies, software QA and testing are both couched under the same name or same department; often lumped together as QA.
Some organizations may not have software quality assurance analysts at all, and testers have the unofficial duty of outlining process methodologies for the Software Development Life Cycle (SDLC), project management workflows and/or software templates. The tester's resources are stretched, because he is expected to conduct testing and do the work of a software quality assurance analyst.
In software development , the goal is to support the needs of the business, customer and software systems. Surprisingly, project managers and business analysts often don't understand this goal and are focused on the overall scope of the project, its timeframe and cost. Sure, those factors are critical indications of projects' success, but without quality the projects fail whatever their scope, length of development or cost.
In my view, software quality analysts and software quality testers should be free from the reins of any other department, thus forming their own distinct groups. The term, silo effect, usually has a negative connotation when describing business practices, but software quality assurance and software quality testing are two areas where the silo may actually be the most effective way to work. In fact, IT quality is at its best when the individuals responsible for it are removed from the influence of other departments.
Being separated from other departments eliminates the risk of having project managers or business analysts changing the software testing process and department to suit their cost, deadline and other requirements. Separation also lessens the software testers' chance of conducting testing that is biased toward any one department, and it reduces the number of distractions that could hinder communication between the software quality assurance analysts and software testers.
In order to create outstanding products, these two entities must be able to work together while still maintaining a certain amount of exclusivity. Software quality analysts must concentrate on delivering consistent quality across the company, managing procedures, process, standards and policies; whereas software quality testers are responsible for ensuring the overall quality of the software products in terms of their functionality, security, infrastructure and performance.
Creating a governance group that monitors how software quality analysts manage and performing enterprise-wide quality assurance activities can help ensure that software quality activities are compliant with internal regulations. If compliance issues occur during the start of the process, they will only snowball as the software development lifecycle continues. Governance ensures that QA activities remain fluid throughout the SDLC from department to department. Software quality can be considered successful if software QA analysis and testing are completed without any bias infiltrating the process.
The following points depict how software QA and testing activities should be organized:
Start with process.
- Create an SDLC that the whole company is expected to follow.
- Decide how the software quality assurance and software quality testing activities will be managed.
Group acceptance and agreement
- Every key member of the SDLC should agree, must participate, and needs to acknowledge the process that was set in the above step.
- Dedicate a specific location where all documentation will be stored.
- Communicate this location and the process of creating documentation to all who will need to access/perform it.
- Software quality assurance analysts should be in charge of creating audits and reports.
- Software quality analysts should be responsible only for testing reports and projections.
Review and re-establish process
- Review all software quality assurance and testing activities and put together a list of "lessons learned" to be reviewed against the SDLC.
Following these five steps keeps the responsibilities of software QA analysts and testers linear, formalized and easily managed. Remember also that although silos may help software QA and testers stay productive, the silo effect should be kept to a minimum on the enterprise-wide scale.
About the author: John Scarpino is director of quality assurance and a university instructor in Pittsburgh. You may contact him at scarpino@RMU.edu.