Software Quality Assurance


Wikipedia says of Software Quality Assurance: “Software quality assurance (SQA or QA) 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”.

Wikipedia says: “SQA encompasses the entire software development process, which includes processes such as requirements definition, software design, coding, source code control, code reviews, software configuration management, testing, release management, and product integration. SQA is organized into goals, commitments, abilities, activities, measurements, and verifications.”

Techopedia says of SQA: “Software quality assurance (SQA) is a process that ensures that developed software meets and complies with defined or standardized quality specifications. SQA is an ongoing process within the software development life cycle (SDLC) that routinely checks the developed software to ensure it meets desired quality measures.”

If you think about it, when you are developing software, QA should not be at the back-end of the process of testing the software. Manual testing of software is the process of following a very strict list of actions and recording the results. Type this end and click the button and note what happens. QA really belongs at the beginning of the process. If QA finds a lot of bugs, the developers aren’t really doing their jobs. We should be automating our manual tests! How do we do that? We use unit tests and test-driven development. These ideas come from a video by Bob Martin called Clean Code – Uncle Bob / Lesson 3, at about time 42:35.