Software quality assurance

Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as CMMI.[1] It is a set of methods that try to ensure the quality of all projects in the software process. This includes standards and procedures that administrators may use to review and audit software products and activities to verify that the software meets standards. According to ISO/IEC 15504 v.2.5 (SPICE), it is a supporting process that has to provide the independent assurance in which all the work products, activities and processes comply with the predefined plans and ISO 15504.[citation needed]

SQA encompasses the entire software development process including processes such as requirements definition, software design, coding, source code control, code reviews, software configuration management, testing, release management, and product integration. It is organized into: goals, commitments, abilities, activities, measurements, and verification.[2]

Purpose

  • To ensure quality in a software product, an organization must have a three-prong approach to quality management:
    • Organization-wide policies, procedures and standards must be established.
    • Project-specific policies, procedures and standards must be tailored from the organization-wide templates.
    • Quality must be controlled; that is, the organization must ensure that the appropriate procedures are followed for each project.
  • Standards exist to help an organization draft an appropriate software quality assurance plan.
    • ISO 9000-3 (original), now ISO 90003
    • ANSI/IEEE standards
  • External entities can be contracted to verify that an organization is standard-compliant.

Activities

  • Application technology to manage quality
    • Analysts use application technology to achieve high-quality specifications and designs
  • Conducting formal technical reviews
    • Technicians find problems with related software quality through a series of meetings
  • Testing strategy
    • To ensure effective error detection, technicians use the use case design method to test
  • Enforcing standards
    • Some standards that need to be followed and tested during implementation
  • Controlling change
    • Applied during software development and maintenance
  • Measurement
    • Track software quality and assess the ability of methodological and procedural changes to improve software quality
  • Metrics and reporting mechanisms
    • SQA information needs to be collected and disseminated, this activity gives the procedures for it

The advantages include

  • After a rigorous and complete software quality audit, the software itself will be greatly reduced in vulnerabilities and risks, and the software will be more efficient. In addition, the quality of the software can be improved to avoid spending a lot of time on testing and maintaining the software. On some errors that could have been avoided.
  • Through software quality control, customer satisfaction can be greatly improved, because most customers do not have a strong software professional background, they only need a reliable tool.
  • Software maintenance is a large part of the development and use of the software, so improving software quality also means reducing maintenance costs.
  • Not only is the maintenance cost reduced, but a reasonable software quality assurance strategy can also reduce the total life cycle of the software.

While the disadvantages:

  • SQA is the whole process of software development, so it is a project that consumes manpower, time and money.
  • Due to it has many standards and requires a lot of testing, there are certain requirements for the corresponding auxiliary programs.
  • Many times, if you don't achieve the software quality standards, the program needs to be modified or redesigned

See also

References

  • 730-2014 - IEEE Standard for Software Quality Assurance Processes. 2014. doi:10.1109/IEEESTD.2014.6835311. ISBN 978-0-7381-9168-3.
  • April, Alain (2018). Software Quality Assurance. Wiley-IEEE. ISBN 978-1-11850-182-5.
  • Chemuturi, Murali (2010). Software Quality Assurance: Best Practices, Tools and Techniques for Software Developers. J.Ross Publishing. ISBN 978-1-60427-032-7.
  • Kelemen, Z. D.; Kusters, R.; Trienekens, J. (2012). "Identifying criteria for multimodel software process improvement solutions - based on a review of current problems and initiatives". Journal of Software: Evolution and Process. 24 (8): 895–909. doi:10.1002/smr.549.
  • Auburn University Libraries. Auburn University Libraries / Illiad @ Auburn Libraries, onlinelibrary-wiley-com.spot.lib.auburn.edu/doi/10.1002/9781119312451.ch3.
  • "Software Quality Assurance(SQA): Plan, Audit & Review." Meet Guru99 - Free Training Tutorials & Video for IT Courses, www.guru99.com/software-quality-assurance-test-audit-review-makes-your-life-easy.html.
  • Collofello, James S., and Jeffrey J. Buck. "Software Quality Assurance for Maintenance." IEEE Software, vol. 4, no. 5, Sept. 1987, p. 46. EBSCOhost, doi:10.1109/MS.1987.231418
  • Parnas, David L., and Mark Lawford. "Inspection's Role in Software Quality Assurance." IEEE Software, vol. 20, no. 4, July 2003, p. 16. EBSCOhost, doi:10.1109/MS.2003.1207449.
  • Laporte, Claude Y., and Alain April. Software Quality Assurance. IEEE Press, 2018.