ISD Lecture 12 Software quality assurance. Developing systems that works Flashcards

1
Q

Quality

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cost of Quality

A

there are three types of cost: prevention, internal failure and external failure. The later an error is identified, the more costly it is.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Software quality assurance:

A

Which basically is an independent control of software engineering activities to verify compliance with the defined software process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Testing

A

is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Verification

A

Evaluating whether “we are building the product right?”

refers to the set of tasks that ensure that software correctly implements a specific function.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Validation

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

SQA (Model)

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How to make a effective software process

A

making quality less dependent on individuals

Establish an supporting infrastructure,

management aspect of process,

software engineering practices,

umbrella activities

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a useful product?

A

Delivers the needed content:

With no (important) errors:

Satisfies explicit requirements:

Satisfies implicit requirements:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Where does SQA adds value?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

The software quality dimensions

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Describe McCall’s Quality Factors

A

Product revision (Maintainabliity, Flexibility, Testability) ->

Product Transition (Portabability, Reuseability, Interoperability) ->

Product Operation (Correctness, Reliability, Usability, Security, Efficiency)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How to measure quality

A

Make it specific

Use some kind of hard metrics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What kind of dilemma is there with software quality

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is good enough software and what can be a argument against good enough?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What does prevention costs include?

A

quality planning
formal technical reviews
test equipment
Training

17
Q

What does Internal failure costs include?

A

rework
repair
failure mode analysis

18
Q

What does External failure costs include?

A

complaint resolution
product return and replacement
help line support
warranty work

19
Q

What kind of negative impact can there be with management decisions on quality?

A

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.

20
Q

What kind of positive impact can there be with management decisions on quality?

A

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).

21
Q

Elements of SQA

A
Standards 
Reviews and Audits 
Testing
Error/defect collection and analysis 
Change management 
Education  
Vendor management 
Security management 
Safety 
Risk management
22
Q

The roles of the SQA group

A

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.

23
Q

The SQA Goals

A

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

24
Q

What is statistical SQA

A

Continuous improvement

Collect information about errors,

identify the underlying causes,

identify the vital few causes,

remove the causes

25
Q

What is used to analyze the causes?

A

The Fishbone Diagram

26
Q

Strategic approaches for software testing

A

Before Testing - Conduct effective technical reviews

Testing order - Testing begin at the component level and works “outward” toward the integration of the entire system

Choosing the right testing techniques - Different testing techniques are appropriate for different software engineering approaches and at different points in time.

Organizating testing - Testing is conducted by the developer of the software and (for large projects) an independent test group.

27
Q

what is the order of testing

A

o Unit test -> integration test -> validation test -> system test
o Begin testing-in-the small and move toward testing-in-the-large

28
Q

Two different kinds of test

A

Verification

Validation

29
Q

Who test the software?

A

Developer

Understands the system but wil test “gently” and, is driven by “delivery”.

Independent tester

Must learn about the system, but, will attempt to break it and, is driven by quality.

30
Q

Agile methods and SQA

A

Agile methods have a less rigid and bureaucratic approach to systems development – and traditional SQA techniques are built upon ideas that makes systems development more bureaucratic and rigid, so….

31
Q

What kind of QA techniques are there

A

Static
Do not involve the execution of code (e.g. reviews. Static techniques involve examination of documentation by individuals or groups.

Dynamic
Do involve the execution of code (tests). Testing and simulation are dynamic techniques.

The waterfall model uses both static and dynamic techniques. However, agile methods mostly use dynamic techniques.

32
Q

Agile Methods with QA

A

Integrated QA

Fast QA feedback:

System metaphor

On-site customers:

Having an On-site customer is a general practice in most agile methods. Customers help developers refine and correct requirements – validation.

Consequently customer involvement in agile methods is much heavier than in waterfall development.

pair programming
Pair programming means two programmers continuously working on the same code

: refactoring
is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

Continuous integration
a popular practice among agile methods means the team does not integrate the code once or twice.

Acceptance testing:
is carried out after all unit test cases have passed. This activity is a dynamic QA technique.

Early customer feedback:
is one of the most valuable characteristics of agile methods.

33
Q

A SQA comparison

A

Timing

Frequency

Static/dynamic

34
Q

How to use SQA

A

Many projects suffer from badly executed SQA and test.

Make sure: 
o	Quality goals defined for the project
o	Dimensions operationalized so that it can be determined whether they are achieved or not 
o	Make a proper strategy for prevention and identification of errors 
o	Validation 
o	Verification
o	Independency
o	Resources and responsibilities 
o	Statistical SQA
35
Q

Reflections and relation

A
  • Only focus on software not organizational change
  • Agile development might have a weakness regarding SQA  little documentation
  • When comparing with the IS success model (lecture 11) – considerations about service quality is missing
  • Lecture 5 ephasize the lack of concern for non-functional requirements in agile – making QA for these requirements difficult