How Software Quality Assurance Is Done

When software companies across Canada take on a new software project, there is usually a familiarity meeting to discuss aspects such as client requirements, delivery dates, development team members, and so forth. But one critical element to have in place is software quality assurance (SQA). This is the process ensuring that new software satisfies established quality standards. SQA is a continuing process at all stages of the software development life cycle.


Software Requirements
A project plan is created based on software requirement specifications (SRS). The project is broken up into different functional modules and developers begin coding on specific modules. The testing team is responsible for creating software test plans and test cases for all modules to verify that the code meets the goals set forth in the SRS.

Test Cases
Test cases are written which may include:
* Smoke - basic functionality
* Sanity - to verify specific functions, usually after changes
* Regression - verify features when interfacing with other software
* Negative - ability to handle unexpected input
* Extended - functionality with different variables and circumstances

Module Testing
As each module is coded, it is assigned to testers. Smoke testing is done, and if the module fails, it's reassigned to be fixed. Those that are passed are tested according to other test cases written for the module. Any bugs discovered are logged so that they can be tracked as the module is returned to the developers. The process is repeated until any bugs are corrected, tested, and verified as closed in the bug tracking tool. The module is regression tested against other modules. When no more bugs are discovered and the coded module meets all requirements, it can be approved. A Bug Report is submitted during final testing.

Final Testing
The integration of finished modules leads to testing stages which involve cross-platform compatibility testing for different hardware, OS versions, browsers, software platforms, and other issues established in the SRS. Memory, load and stress testing is done to ensure operation under various high-demand circumstances. At some point the code is "frozen" so that no new features can be added. Installers are applied and a build of the completed application is done.

A virtual reproduction of the client's environment is created for final testing of the completed software. After all test cases have been done and all requirements met, a final testing report is prepared as part of the approval process before the software can be released. This process, based on methods established by the ISO (International Standards Organization) of which Canada is a member, ensures that new software undergoes rigorous quality assurance testing at all levels of development, and under a variety of circumstances, before the finished product ever reaches the client. To see if software assurance testing is right for your specific situation, you should speak with an expert like QA Consultants.