Possible Duplicate:
Verification of requirements question
Having asked but deleted the question as it was a bit misunderstood. If Quality Control is the actual testing, what are the commonest true quality assurance activities? I have read that verification (reviews, inspections..) but it does not make much sense to me as it looks more like quality control as mentioned here:
DEPARTMENT OF HEALTH AND HUMAN SERVICES
ENTERPRISE PERFORMANCE LIFE CYCLE FRAMEWORK
Practices guide
Verification – “Are we building the product right?” Verification is a
quality control technique that is used to evaluate the system or its
components to determine whether or not the project’s products satisfy
defined requirements. During verification, the project’s processes are
reviewed and examined by members of the IV&V team with the goal of
preventing omissions, spotting problems, and ensuring the product is
being developed correctly.
Some Verification activities may include
items such as: • Verification of requirement against defined
specifications • Verification of design against defined specifications
• Verification of product code against defined standards •
Verification of terms, conditions, payment, etc., against contracts
And the opposite (project management knowledge scope – google result)
Verification is a quality assurance process or technique applied by …
5
In many ways, trying to find the dividing line between Quality Assurance and Quality Control is akin to finding the exact demarcation between Verification and Validation – and whilst the comparison may imply equivalence, it isn’t that clear cut either.
What is really important is that you undertake all necessary Verification AND Validation, and the whole development is undertaken with appropriate levels of Quality Assurance AND of Quality Control.
Ultimately Product Quality is everyone’s responsibility.
For reference, the applicable ISO standard is ISO/IEC 12207 – Software Lifecycle Processes – it is a good read (if you are an insomniac) and available from the ISO store
Quality Assurance is not about the results, but rather the process. QA is responsible for the process of creating a product.
In a software world, the activities of QA may revolve around:
- Audits of the code (the developers said this code is following the coding standards of the company, lets look at it)
- Verifying that the process to build the code has the necessary steps and checks in it (“This project has not allocated any time to code reviews – that needs to be corrected”)
- The tools for tracking (“Excel spreadsheets are not a bug tracking mechanism – they do not meet the minimum acceptable requirements for a bug tracking system”)
- Checking the schedule (“The last three projects had one week of debugging for every 2 ksloc – this project is estimated at 10 ksloc but only one week of testing is allocated”)
- Looking at the requirements and deliverables (“The requirements mandate feature XYZ but there are no tests that address this functionality”)
- In areas where there are defined standards (aircraft, life support, critical infrastructure, etc…), making certain that all of the standards and processes associated from those realms are followed.
QA will also be likely doing things such as ISO standards and mention such words as “Six Sigma.”
In theory, the interaction between developers and QA is rare as QAs activities tend to be at a higher level in the management chain.
2
I am not going to use any fancy definitions as they will confuse you.
Typically Quality control is a sub set of Quality Assurance.
For a quick and dirty example you will be using term VERIFICATION when you will be checking your Functional specs for correctness thus
“Are we building the product right?”
Once your product is passed to dedicated Testing teams then validation comes into picture indication of
“Are we building the right product?”
Quality Assurance is a vast process which consist of fulfilling many processes such as Audits, Code Reviews etc and ensuring conformance to standards such as CMMI or ISO.
A quality assurance department helps a development organization to release their software in a timely manner with as few defects as possible. Developing and releasing software is a series of trade-offs. QA can help a company decide which defects or user experience problems are acceptable at a certain time.
Some common QA goals are:
- ensure that the software continues to work as it should (minimize regressions)
- new features are usable and work correctly
- help identify problem areas and make recommendations on how to fix them
- use the system
As much as we hate to admit it, a QA department is often the first real users of a system. Because of this, they can help identify “customer” pain points that developers and even designers fail to see so they can be fixed.