General Principles
Quality in products and software does not happen by chance. To achieve quality, we must plan for it from the start and continuously monitor it on a daily basis. Discipline is required.
There are three general principles for quality assurance:
Know What You are Doing
You should continuously understand:
- what you are building
- how you are building it
- what you are building currently does
This necessitates organization, such as a management structure, reporting policies, regular meetings and reviews, and frequent test runs, among other things. We usually deal with this by following a software process that includes regular milestones, planning, scheduling, reporting, and tracking procedures.
Know What You Should be Doing
Here are some ways to determine what you should be doing:
- Have explicit requirements and specifications
- Use case analysis
- Explicit acceptance tests
- Explicit prototypes
- Frequent user feedback
- Continuously track and update the development or evolution cycle
Know How to Measure the Difference
In the context of software quality, this includes having explicit measures that compare what we do to what we should do.
This can be achieved through complementary methods:
- Formal methods consist of using mathematical models or methods to verify mathematically specified properties.
- Testing consists of creating explicit inputs or environments to exercise the software, to measuring it’s success.
- Inspection consists of regular human reviews of requirements, design, architecture, schedules, and code review.
- Metrics are used to measure a known set of simple properties related to quality by instrumenting code or execution.
Testing, inspection and metrics account for the majority of software quality assurance.