• No results found

6-Software Quality Assurance (1)

N/A
N/A
Protected

Academic year: 2020

Share "6-Software Quality Assurance (1)"

Copied!
54
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)

Content

Quality, Software Quality, Quality Assurance

Software Testing

Goals of Software Testing

Defects VS Failure

Static and Dynamic Testing

Types of Software Testing

Software Testing Life Cycle

Testing and Inspection

(3)

What is Quality?

Degree to which a system, component, or process meets

1- specified requirements, and

2- customer or user needs or expectations

Other experts define quality based on:

Conformance to requirements

: the project’s

processes and products meet written specifications or

scope.

For example, if the project scope statement requires delivery of 100

computers with specific processors, memory, and so on, you could easily check whether suitable computers had been delivered

Fitness for use

: a product can be used as it was

intended

If these computers were delivered without monitors or keyboards the

(4)

What is Quality?

Customers Expectations

1.

Quality

2.

Budget

3.

Time-scale

4.

Meet the requirements

5.

Excellent performance

(5)

What is Quality?

Quality Criteria include:

(6)

Quality Assurance

Definition:

The maintenance of a desired level of quality in

a product, especially by means of attention to

every stage of the process of production.

Goal:

(7)

Quality Assurance

Quality Assurance Elements

Standards

ensure that standards are adopted and followed

Reviews and Audits

audits are reviews performed by SQA personnel to ensure hat quality guidelines are followed for all software engineering work

Testing

ensure that testing is properly planned and conducted

Error/defect Collection and Analysis

collects and analyses error and defect data to better understand how errors are introduced and can be eliminated

Changes Management

ensures that adequate change management practices have been instituted

Risk Management

(8)

Quality Assurance

SQA Tasks

1.

Prepare SQA plan for the project.

2.

Participate in the development of the project's software

process description.

3.

Review software engineering activities to verify compliance

with the defined software process.

4.

Audit designated software work products to verify

compliance with those defined as part of the software process.

5.

Ensure that any deviations in software or work products are

documented and handled according to a documented

procedure.

6.

Record any evidence of noncompliance and reports them to

(9)

07/10/20 9

Requirements

quality

Ambiguity

Completeness

Instability

Model clarity

Design quality

Architectural integrity

Component

completeness

Interface complexity

Patterns

(10)

07/10/20 10

Requirements

quality

Ambiguity

Completeness

Volatility/Instability

Model clarity

Design quality

Architectural integrity

Component

completeness

Interface complexity

Patterns

(11)

07/10/20 11

1. QA is a process oriented and focuses on defect prevention

2. QA is a set of activities for ensuring quality in the processes by which products are developed.

3. QA aims to prevent defects with a focus on the process used to make the product. It is a proactive quality process.

4. The goal of QA is to improve development and test processes so that defects do not arise when the product is being developed.

5. Verification is an example of QA. 6. QA is a managerial tool

1. Quality Control is product oriented and focuses on defect identification.

2. QC is a set of activities for ensuring quality in products. The activities focus on identifying defects in the actual products produced.

3. QC aims to identify defects in the finished product. Quality control is a reactive process.

4. The goal of QC is to identify defects after a product is developed and before it’s released.

5. Validation/Software Testing is an example of QC.

6. QC is a corrective tool.

(12)

Quality Costs

Prevention costs

quality planning, formal technical reviews,

test equipment, training

Failure costs

rework, repair, failure mode analysis

External failure costs

complaint resolution, product return and

(13)

What is Testing

The process consisting of all life cycle activities, both static and dynamic,

concerned with planning, preparation and evaluation of software products

and related work products to determine that they satisfy specified

requirements, to demonstrate that they are fit for purpose and to detect

defects.

The process of detecting defects is called testing.

(14)

Software Testing

The

process consisting of all

process

life cycle activities, both

life cycle activities

static

static

and

dynamic

dynamic

, concerned with

,

planning

planning

,

preparation

preparation

and

evaluation

evaluation of

software products and related work products

software products and related work products

to

determine that they satisfy specified requirements

determine

, to

demonstrate

demonstrate that they are fit for purpose

and to

detect

detect

defects

(15)

Static VS Dynamic Testing

Reviews, or inspections are referred to

as static testing

Actually executing

programmed code

with a given set of test cases is referred

to as 

dynamic testing

Static testing involves 

verification

,

whereas dynamic testing

(16)

Types of Defects that are easier to

find during static testing are:

1-

Deviation from standards

2-

Missing requirements

3-

Design defects

(17)

Dynamic Testing

The inverse of static testing is a dynamic testing, in which

code is executed.

Testing that involves the execution of the software using a

(18)

Why is it that software sometimes

do not work correctly?

Error (Mistake)

A human action that produces an incorrect result-the software is used incorrectly and

does not behave as we expected.

Defect (bug, fault)

A flaw in a component or system that can cause the component or system fail to perform

its required functions. NOT ALL DEFECTS RESULTS IN FAILURES; SOME STAY IN THE CODE AND WE NEVER NOTICE THEM.

Failure

(19)

Testing Objectives

The Major Objectives of Software Testing:

- Uncover as many as errors (or bugs) as possible in a given timeline. - Demonstrate a given software product matching its requirement specifications.

- Validate the quality of a software testing using the minimum cost and efforts.

- Generate high quality test cases, perform effective tests, and issue correct and helpful problem reports.

Major goals:

uncover the errors (defects) in the software, including errors in: - requirements from requirement analysis

- design documented in design specifications - coding (implementation)

- system resources and system environment

(20)
(21)

Verification & Validation

The distinction 

between

 the two terms is

largely to do with the role of specifications.

Verification

 is the process of checking that

the software meets the specification.

(22)

Verification & Validation

Verification

1.Have you built the product right?

2.Does the product meet system specification?

Validation

1.Have you built the right product?

(23)
(24)
(25)

Testing Principle-Testing is Context

Dependent

It is done differently in different contexts (nature of the

software)

1.

Safety software is tested differently from an e-commerce site.

2.

University software are tested differently from banking

software.

(26)
(27)

EXAMPLE 1

How many tests would you need to do to

completely test a one-digit numeric field?

1.

10 possible valid numeric values (10 tests)

2.

We need to ensure that all invalid values are rejected.

e.g. 26 uppercase letters, 26 lowercase letters,

(28)

When we can meet our test

objectives?

Testing Principle-Early Testing

Testing activities should start as early as possible in the

(29)

Focusing on defects can help us

plan our tests

Testing Principle- Defect Clustering

A small number of modules contain most of the

defects discovered during testing.

Reasons of defect clustering

1-Code is complex

2-Code is tricky

3-Not reviewing properly during development

(30)

Debugging Removes Defects

Testing Principle-Pesticide Paradox

If the same tests are repeated over and over again,

(31)

Is the software defects free?

Testing Principle- Testing shows presence of

defects

Testing can show that defects are present, but can

(32)

If we don’t find defects does that mean

the user will accept the software?

Testing Principle- Absence of errors fallacy

Finding and fixing defects does not help if the system built

(33)

Testing Principles-SUMMARY

Testing shows presence of defects

2- Exhaustive testing is impossible

3- Early testing

4- Defect clustering

5- Pesticide Paradox

6- Testing is context dependent

(34)
(35)

Test Levels-Component Testing

Component Testing

“The testing of individual software

components is called component testing.”

It searches for defects and verifies the functioning

(36)

Test Levels-Component Testing

Component Testing is classified into 3 types:

(37)

Execution Testing

Verifying the logic of the program.(statement coverage,

loop coverage, conditional coverage, program technique

coverages etc.)

Operation Testing

Checking whether the program is running on the customer expected

platform(i.e. OS, Compilers, Browser etc.)

Mutation Testing

(38)

Test Levels-Component Testing

Approach of Component Testing

Extreme Programming (XP)

Test-First Approach OR Test-Driven Development

To prepare test cases before coding.

OR

A way of developing software where the test cases

(39)

Test Levels-Component Testing

Component testing may include testing of:

1- Functionality Requirements

2- Non-functionality Requirements

3- Robustness Testing

Robustness

to which a component or system can function correctly in the

presence of invalid inputs.

Robustness testing

(40)

Test Levels-Integrated Testing

Integration

The process of combining components into larger

assemblies.

Integrated Testing

“All individual units are integrated/combined and

(41)

Test Levels-Integrated Testing

Other Levels of Integration Testing

Component Integration Testing

Tests the interactions between software components and is

done after component testing.

System Integration Testing

Tests the interactions between different systems i.e. systems

that can even run on different platforms.

Big-bang Integration Testing (First Extreme)

All components are integrated simultaneously, after which

(42)

Advantages of Big-bang Integration Testing

No need to simulate parts, often called stubs.

Stubs

A stub is a piece of software which performs functionality of

a not yet constructed/under- constructed component.

OR

while integrating in top down approach any compulsory

(43)

Disadvantages of Big-bang Integration

Testing

1-

It is time consuming.

2-

Difficult to trace the cause of failures

because of late integration.

3-

Difficult to check the functionality of

(44)

Second Extreme

All components are integrated one by one and tests

(45)

Test Levels-System Testing

“The process of testing an integrated system

to

verify

that

it

meets

specified

requirements.”

1.

It concerned with the behavior of the whole

system.

2.

It is most often the final test to verify that

the system to be delivered meets the

specification.

3.

Its purpose is to find as many defects as

(46)

System testing should investigate:

Functional Requirements

A requirement that a component or system must perform i.e

interoperability, security, accuracy and compliance.

Non-Functional Requirements

Requirement that does not relate the functionality, but to

attributes of such as:

Reliability

Efficiency

Usability

(47)

Test Levels-Acceptance Testing

“Its an activity of testing whether the software is

(48)

Other types of acceptance testing

Compliance Acceptance Testing OR Regulation Acceptance Testing

The capability of the software product to strictly firm to Governmental

standards, regulations in laws and safety.

Commercial-Off-The-Shelf (COTS) software acceptance testing

1-

Alpha Testing:

This takes place at the developer’s site. A cross-section of users and

member’s of the developer’s organization are invited to use the system.

2-

Beta Testing

Beta Testing is last stage of testing where a product is sent outside the

(49)

Test Oracle

“A source to determine expected results to

(50)
(51)
(52)

Compatibility testing

Compatibility testing is a non-functional testing

conducted on the application to evaluate the

application's compatibility within different

environments. It can be of two types - forward

compatibility testing and backward compatibility

testing.

Operating system Compatibility Testing - Linux ,

Mac OS, Windows

Database Compatibility Testing - Oracle SQL

Server

Browser Compatibility Testing - IE , Chrome,

Firefox

Other System Software - Web server, networking/

(53)

Usability testing

Usability testing, a non-functional testing

technique that is a measure of how easily the

system can be used by end users. It is difficult to

evaluate and measure but can be evaluated based

on the below parameters:

Level of Skill required to learn/use the software. It

should maintain the balance for both novice and

expert user.

Time required to get used to in using the software.

The measure of increase in user productivity if

any.

Assessment of a user's attitude towards using the

(54)

Stress testing

Stress testing

is the process of

determining the ability of a

computer, network, programor device to

maintain a certain level of effectiveness

under unfavorable conditions. The process

can involve quantitative tests done in a lab,

such as measuring the frequency of errors

or system crashes. The term also refers to

qualitative evaluation of factors such

References

Related documents

la inducción del parto y el manejo expectante en pacientes con ruptura prematura de membranas pretérmino; que asimismo cumplieran las siguientes condiciones: (I) La PPROM

This will be coordinated by the vendor in advance through the hospital Education Department and with the Supply Chain Director, after approval has been received to trial the

Binary classification ( benign vs ransomware) is efficient in this case. However, to take one step further than the de- coy folder detection, an analysis of ransomware families

Table 4.12: Top three used SM categories for PMBOK process groups Table 4.13: Least frequently used SM category by PMBOK knowledge area Table 5.1: Participants distribution

Equally you might find that the ownership issue of social customer service between Marketing, PR and Customer Services provokes a broader debate about collaboration using the rich

the operator as to the condition of subsea wells, and even control them.. Siemens SOL SUB May 2013 Are Dahl.

The bulk of the gains made by the upper classes in US society appear to have occurred because of increases in US economic surplus, which grew as a result of

Prior to attending graduate school at the University of Nebraska-Lincoln, neither one of us had taught mathematics in a formal setting, taken a pedagogy course, or experienced