A framework for software quality assurance
Abstract
The current era is highly impacted by new technologies, creating a technological race, including new features and updates daily, which produces a significantly high amount of code that is generated. However, as an organisation grows, it becomes harder to maintain software quality standards, leading to a bigger emphasis on creating new features instead of the quality of software throughout the development processes, which allows for defects to slip through.
The use of existing tools and techniques is highly advisable to ensure and enforce the quality of software products. The main practice emphasised in this study is software quality assurance, which goes hand in hand with software control. The discipline of software quality assurance is the procedure of verifying that a piece of code meets the processes, standards, and specification requirements. Conversely, software quality control focuses on the outcome of the solution, ensuring the proper functioning of a product, whilst ensuring that its quality will indeed mitigate defects.
While implementing those practices, several tools and technologies must be used to guarantee overall efficiency. The focus is on Continuous Integration, which is a practice of automating the code merging process while implementing a series of verification steps. This safeguards the program’s overall quality, as well as the outcome of the solution. However, moving from a manual to an automated process requires high monitoring and a defined and well organised sequence of events.
The goal of this study is to design and implement a software quality assurance framework; one that can be generic and easily implemented, incorporating the concepts central to this study, and according to a company’s standards. The automated framework results in a faster, less error-prone and more robust software development process. This will ensure a product of quality, thus increasing the value of the software as a company’s asset.
Based on the study’s need, the proposed framework focuses on the business needs in a generic manner, using available tools and techniques. It is adaptable to any given piece of code or feature. It comprises a planning stage, which focuses on the requirements and standards of quality. It also has an implementation stage where the coding is performed, tested, verified, implemented, and maintained.
Some quantifiable results obtained from implementing the framework showed an increase in potential errors detected with a defect reduction, as well as a decrease in the verification time. The former is the number of errors that can have a negative impact on the outcome, which are detected through each iteration, while the latter relates to the time that is physically needed for a human to perform verification steps manually.
By enforcing and improving implementation of the framework, the defects obtained in the form of error and critical errors decreased by 40% on average. The number of warnings increased by 40%, resulting in more potential defects being detected. Also, the verification time decreased by an overall 25%. The results obtained confirm that the proposed framework assists in mitigating and controlling system defects. Quality is, therefore, assured.
Collections
- Engineering [1424]