ISD Lecture 12 Software quality assurance. Developing systems that works Flashcards
(35 cards)
Quality
Quality can be hard to explain!
There is many views of what quality is.
The transcendental view
Quality is something that you immediately recognize, but cannot explicitly define
The user view
Quality in terms of an end-user’s specific goals. If a products meets those goals, it exhibits quality.
Manufacturer’s view
Quality in terms of the original specification of the product. If the product conforms to the specification, it exhibits quality
Product view
Quality can be tied to inherent characteristics of a product
Value-based view
Quality based on how much a customer is willing to pay for a product.
Software quality
An effective software process applied in a manner that creates a useful product that provides measurable value for those who produce it and those who use it.
Cost of Quality
there are three types of cost: prevention, internal failure and external failure. The later an error is identified, the more costly it is.
Software quality assurance:
Which basically is an independent control of software engineering activities to verify compliance with the defined software process.
Testing
is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.
Verification
Evaluating whether “we are building the product right?”
refers to the set of tasks that ensure that software correctly implements a specific function.
Validation
Evaluating whether “we building the right product?“
refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements.
SQA (Model)
What is Quality ->
Whats the cost of quality? ->
How can we prevent errors: Effective software development process,
How can we create errors: In-effective software development process,
How can we find errors: Review and test,
How can we manage SQA: Project-level & Corporate-level
How to make a effective software process
making quality less dependent on individuals
Establish an supporting infrastructure,
management aspect of process,
software engineering practices,
umbrella activities
What is a useful product?
Delivers the needed content:
With no (important) errors:
Satisfies explicit requirements:
Satisfies implicit requirements:
Where does SQA adds value?
The software organization:
gains added value because high quality software requires less maintenance effort, fewer bug fixes, and reduced customer support.
The user community:
gains added value because the application provides a useful capability in a way that expedites some business process.
The end result is:
greater software product revenue,
better profitability when an application supports a business process, and
improved availability of information that is crucial for the business.
The software quality dimensions
Performance quality,
Does the software deliver all content, functions, and features that are specified as part of the requirements model in a way that provides value to the end-user?
feature quality,
Does the software deliver all content, functions, and features that are specified as part of the requirements model in a way that provides value to the end-user?
reliability,
Does the software deliver all features and capability without failure?
conformance,
Does the software conform to local and external software standards that are relevant to the application?
durability,
Can the software be maintained (changed) or corrected (debugged) without the inadvertent generation of unintended side effects?
serviceability,
Can the software be maintained (changed) or corrected (debugged) in an acceptably short time period.
aesthetics,
perception
Describe McCall’s Quality Factors
Product revision (Maintainabliity, Flexibility, Testability) ->
Product Transition (Portabability, Reuseability, Interoperability) ->
Product Operation (Correctness, Reliability, Usability, Security, Efficiency)
How to measure quality
Make it specific
Use some kind of hard metrics
What kind of dilemma is there with software quality
The cost
If you produce a software system that has terrible quality, you lose because no one will want to buy it.
If on the other hand you spend infinite time, extremely large effort, and huge sums of money to build the absolutely perfect piece of software, then it’s going to take so long to complete and it will be so expensive to produce that you’ll be out of business anyway.
Either you missed the market window, or you simply exhausted all your resources.
What is good enough software and what can be a argument against good enough?
Good enough software delivers high quality functions and features that end-users desire, but at the same time it delivers other more obscure or specialized functions and features that contain known bugs.
. If you deliver a “good enough” (buggy) product, you risk permanent damage to your company’s reputation.
it can be negligent and open your company to expensive litigation.
What does prevention costs include?
quality planning
formal technical reviews
test equipment
Training
What does Internal failure costs include?
rework
repair
failure mode analysis
What does External failure costs include?
complaint resolution
product return and replacement
help line support
warranty work
What kind of negative impact can there be with management decisions on quality?
Estimation decisions
E.g. too little time to do a complex program
Scheduling decisions
E.g. that requirements are unclear when design starts
Risk-oriented decisions
E.g. that projects “gets surprised” and has to re-schedule continuously.
What kind of positive impact can there be with management decisions on quality?
Software quality is the result of good project management and solid engineering practice.
Project management –
project plan should include techniques and activities for quality and change management
Quality control -
series of inspections, reviews, and tests used to ensure conformance of a work product to its specifications
Quality assurance -
consists of the auditing and reporting procedures used to provide management with data needed to make proactive decisions
Projects should integrate software quality assurance practices (SQA).
Elements of SQA
Standards Reviews and Audits Testing Error/defect collection and analysis Change management
Education Vendor management Security management Safety Risk management
The roles of the SQA group
Support -
Prepares an SQA plan for a project: How should SQA be performed in this project?
Participates in the development of the project’s software process description: How should the project work?
Control -
Reviews software engineering activities to verify compliance with the defined software process.
Audits designated software work products to verify compliance with those defined as part of the software process.
Ensures that deviations in software work and work products are documented and handled according to a documented procedure.
The SQA Goals
Requirements quality.
The correctness, completeness, and consistency of the requirements model
Design quality.
Every element of the design model should be assessed by the software team
Code quality.
Source code and related work products (e.g., other descriptive information) must conform to local coding standards
Quality control effectiveness.
The SQA group and the projects will typically try to monitor SQA processes and quality using quantitative data
What is statistical SQA
Continuous improvement
Collect information about errors,
identify the underlying causes,
identify the vital few causes,
remove the causes