For real-world definitions (yes, not just one) of quality assurance, you can check ISO 24765, which is the standard that defines software conditions. (I don't think I'm allowed to copy paste definitions here, so I'm just making a link). ISO 24765 regroups the definitions of ISO 12207 and ISO 15288 so that you can also check out two points. CMMI also provides its own definition of QA.
For information:
ISO 12207 -> Systems and software engineering - Software life cycle processes. ISO 15288 -> Systems and software engineering - System life cycle processes. ISO 24765 -> Systems and software engineering - Vocabulary
I would define quality assurance in 2 parts.
=> (software) Quality assurance is a systematic way of gaining confidence that software will be consistent with quality. QA consists of processes → Activities → Tasks → Procedures. The number of processes and the depth in which processes will be laid out in “Actions, Tasks and Procedures” usually depends on the size of the team and the criticality of the software being developed. QA will mainly try to prevent defects, while Quality Control will try to identify defects (therefore, I believe that error correction is not part of QA, but is part of quality control). QA has testing processes, but it is more focused on integration and qualification testing.
=> Quality is the degree to which the software will satisfy the needs of the client (both said and never said), requirements and expectations. (Please note that it is rather difficult to find out about the unexplained needs of the client and the expectations of the client).
Gab
source share