CHAPTER 2
QUALITY ASSURANCE &
QUALITY ENGINEERING
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
KHOA CNTT –TRƯỜNG ĐH NGOẠI NGỮ TIN HỌC TPHCM
OBJECTIVES
Help students
• Understanding the concepts of Quality Assurance, Quality Control,
Quality Engineering; verification, validation..,;
• Distinguishing them to each other, the confusion or blending with each
other or “2 in 1”
• Perceiving their roles and activities in Software Engineering
• Career orientation
CONTENTS
1. Quality Assurance (QA)
2. Quality Control (QC)
3. QA/QC occupation
4. Quality Engineering
5. Validation & Verification
QUALITY ASSURANCE (QA)
What is Quality? ( cont)
• Quality is extremely hard to define, and it is simply stated: "Fit for use or purpose." It is
all about meeting the needs and expectations of customers with respect to functionality,
design, reliability, durability, & price of the product.
What is Assurance?
• Assurance is nothing but a positive declaration on a product or service, which gives
confidence. It is certainty of a product or a service, which it will work well. It provides a
guarantee that the product will work without any problems as per the expectations or
requirements
QUALITY ASSURANCE (QA)
Quality Assurance in Software is defined as a procedure to ensure the
quality of software products or services provided to the customers by an
organization. Quality assurance focuses on improving the software
development process and making it efficient and effective as per the quality
standards defined for software products. Quality Assurance is popularly known
as QA Testing.
Software quality assurance (SQA) is a process which assures that all
software engineering processes, methods, activities and work items are
monitored and comply against the defined standards.These defined standards
could be one or a combination of any like ISO 9000, CMMI model, ISO15504,
etc.
SQA incorporates all software development processes starting from defining
requirements to coding until release. Its prime goal is to ensure quality.
QUALITY ASSURANCE (QA)
Different view’s software quality
DIFFERENT VIEWS OF SOFTWARE QUALITY
Transcendental view: quality is hard to describe in abstract terms, but can be
recognized if it is present.
User view: quality is fitness for purpose or meeting user’s needs.
Manufacturing view: quality means conformance to process standards.
Product view: focus on inherent characteristics of software product: reliability,
usability, maintainability
Value-based view: quality is the customers’ willingness to pay for a software.
PEOPLE ROLE TO SOFTWARE QUALITY
1. Investors low investment money, high quality product
Find reputable and professional manufacturers with low price
2. Users Useful, high efficiency->high labor productivity
branded products with reliability, don't want to change
3. Manufacturers low cost, high quality product, quickly delivery products
Hire high quality staffs, get the rules, processes, control quality with lowest coste
4. Developers easy requirements, new technique, do quickly, as few error as possible
Apply the new tools, techniques, regularly improve knowledge and skills, need the supporters: tester,
designers, database analysis, TA…..with flexible schedules…
All viewers : high quality with low cost, high value
QA APPLY FOR MANUFACTURERS
• Small to Zero Defects After Installation with lowest cost
The biggest goals of SQA is to prevent any possible defects when the output is made. The ability
to handle stress of a program is different from the errors it has but crashes usually comes from
defects so prevention of defects will most likely yield a continuously working application.
• Customer Satisfaction : Part of SQA is to ensure that software development was made
according to their needs, wants and exceeding their expectations. Even if the bugs and errors
are minimized by the system, customer satisfaction is more important and should be
emphasized.
• Well Structured :- SQA ensures that each application are build in an understandable
manner. Their applications could easily be transferred from one developer to another.
THE QUALITY TRIANGLE
COST OF QUALITY DEFECT
QA IN SOFTWARE DEVELOPMENT LIFE
CYCLE
QUALITY OBJECTIVES
Defect prevention:
error blocking
error source removal
Defect reduction
Fault detection
Fault removal
Defect containment
failure prevention
failure containment
QUALITY OBJECTIVES
QA ACTIVITIES
There are a large of tasks involved in SQA activities
1. Creating an SQA Management Plan
2. Setting the Checkpoints
1. Process definition 3. Apply software Engineering Techniques
2. Process training 4. Executing Formal Technical Reviews
3. Process implementation 5. Having a Multi- Testing Strategy:
4. Process audit 6. Enforcing Process Adherence:
7. Controlling Change:
8. Measure Change Impact:
9. Performing SQA Audits:
10. Maintaining Records and Reports:
11. Manage Good Relations:
(https://www.softwaretestinghelp.com/software-quality-assurance
/)
SOFTWARE QUALITY ASSURANCE STANDARDS
7 principles of ISO 9000 are depicted in the below image:
QUALITY CONTROL
• SOFTWARE QUALITY CONTROL (SQC) is a set of activities for
ensuring quality in software products. Software Quality Control is limited
to the Review/ Testing phases of the Software Development Life Cycle and
the goal is to ensure that the products meet specifications/ requirements.
• SQC is a set of activities designed to evaluate the quality of a component
or system.
QUALITY CONTROL ACTIVITIES
1. Reviews 2. Testing Levels
• Requirement Review • Unit Testing
• Integration Testing
• Design Review
• System Testing
• Code Review • Acceptance Testing
• Deployment Plan Review
• Test Plan Review
• Test Cases Review
SOFTWARE QUALITY ASSURANCE VS SOFTWARE
QUALITY CONTROL
OCCUPATION QA- QC
QA AND QC: SOMETIME 2 IN 1
1. Ambiguity tasks, don’t need distinguish clearly
2. Can change tasks later
3. Company can build the quality system
4. Lack of resource
5. Small company size
6. Agile SDLC
…
QUALITY ENGINEERING
• Quality engineering focuses on making sure that goods and services are
designed, developed, and made to meet or exceed consumers’ expectations
and requirements. It includes all the activities related to the analysis of a good’s design
and development. Quality engineers also make sure that the manufacturer makes the
goods according to specifications.
• Quality engineering is the discipline of engineering concerned with the principles and
practice of product and service quality assurance and control. In the software
development, it is the management, development, operation and maintenance of IT
systems and enterprise architectures with a high quality standard. (Wikipedia)
QUALITY ENGINEERING
• Quality Engineering consists of analysis methods and the development of systems to
ensure products or services are designed, developed and manufactured to meet or
exceed the customer’s requirements and expectations.
• Quality Engineering encompasses all activities related to the analysis of a product’s
design, development and manufacturing processes for the purpose of improving the
quality of the product and the production process while identifying and reducing waste in
its many forms.
• Quality Engineering methods and tools are often developed and implemented using a
cross-functional approach involving multiple business and engineering disciplines
QUALITY ENGINEERING VS. QUALITY
ASSURANCE
• Quality assurance is the overall process of making sure that a manufacturer makes things
properly. The manufacturer needs a quality system to make that happen.
• Quality engineering, on the other hand, defines that system. It also maintains and
improves it.
• Quality assurance focuses on maintaining quality in the production process, while quality
engineers ‘engineer’ it. In other words, quality engineers devise the system.
Quality engineering and the ‘voice of the customer’
QUALITY ENGINEERING
1. QA = TESTING + METHOD + TECHNIQUE + TOOLS QUALITY
PROCESS
2. QE = QA + MEASUREMENT + IMPROVEMENT QUALITY SYSTEM
QUALITY ENGINEERING PROCESS
QUALITY ENGINEERING CATEGORIES
1. Creation, implementation and management a quality system
2. Quality Consulting
3. Quality Training
4. Quality support
VERIFICATION & VALIDATION
Verification in Software Quality is a process of checking documents, design, code, and
program in order to check if the software has been built according to the requirements or
not. The main goal of verification process is to ensure quality of software application, design,
architecture etc. The verification process involves activities like reviews, walk-throughs and
inspection.
ISTQB®: Confirmation by examination and through provision of objective evidence that
specified requirements have been fulfilled.
PMBOK® : The evaluation of whether or not a product, service, or system complies with a
regulation, requirement, specification, or imposed condition. It is often an internal process.
Contrast with validation.
VERIFICATION & VALIDATION
Validation in Software Quality is a dynamic mechanism of testing and validating if the
software product actually meets the exact needs of the customer or not. The process helps
to ensure that the software fulfills the desired use in an appropriate environment. The
validation process involves activities like unit testing, integration testing, system testing and
user acceptance testing.
ISTQB®: Confirmation by examination and through provision of objective evidence that the
requirements for a specific intended use or application have been fulfilled.
PMBOK® : The assurance that a product, service, or system meets the needs of the
customer and other identified stakeholders. It often involves acceptance and suitability with
external customers. Contrast with verification.
VERIFICATION & VALIDATION
Verification Validation
•The verifying process includes checking documents, •It is a dynamic mechanism of testing and validating
design, code, and program the actual product
•It does not involve executing the code •It always involves executing the code
•Verification uses methods like reviews, walkthroughs, •It uses methods like Black Box Testing,White Box
inspections, and desk- checking etc. Testing, and non-functional testing
• Whether the software conforms to specification is •It checks whether the software meets the
checked requirements and expectations of a customer
•It finds bugs early in the development cycle •It can find bugs that the verification process can not
catch
•Target is application and software architecture, •Target is an actual product
specification, complete design, high level, and database
design etc.
•QA team does verification and make sure that the •With the involvement of testing team validation is
software is as per the requirement in the SRS executed on software code.
document.
•It comes before validation •It comes after verification
VERIFICATION & VALIDATION
• Verification activities
check the conformance of a software system to its
specifications
Verification check the PRODUCT RIGHT
• Validation activities:
check whether a function needed and expected by the
customers is present in a software product.
Validattion check the RIGHT PRODUCT
VERIFICATION & VALIDATION
Example of verification and validation
• A clickable button with name Submet
• Verification would check the design doc and correcting the spelling mistake.
• Otherwise, the development team will create a button like
So new specification is:
VERIFICATION & VALIDATION
• A clickable button with name Submit
• Once the code is ready,Validation is done. A Validation test found –
Owing to Validation testing, the development team will make the
submit button clickable
VERIFICATION & VALIDATION
Q &A