software testing 101 - vector · software testing 101. 2 1. software quality 2. software testing...

Post on 24-Jun-2020

30 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

V0.1 | 2018-10-30

Jeffrey Fortin – Product Manager VectorCAST

Software Testing 101

2

1. Software Quality

2. Software Testing Levels

3. Questions and Answers

Agenda

3

Definition of Software Quality

Software Quality

1. ISO-24765:2010

Capability of a software product to satisfy stated and implied

needs when used under specified conditions (1)

4

Impact of Poor Software Quality

Software Quality

1. https://www.nist.gov/sites/default/files/documents/director/planning/report02-3.pdf

5

Balancing Risks and Rewards

Software Quality

Costs to Improve Quality

Benefits of Higher Quality

6

Improving Process Efficiency

Software Quality

Action over Intent

Continuous Improvement

Establish a Culture of Quality

7

1. Software Quality

2. Software Testing Levels

3. Questions and Answers

Agenda

8

Current Testing Level Practices

Software Testing Levels

https://barrgroup.com/embedded-systems/survey/2018

9

Software Testing Levels

Software Testing Levels

Unit Testing

Integration Testing

System Testing

10

Unit Testing

Software Testing Levels

Call the function

Check the return value

Unit Testing

Integration Testing

System Testing

11

Unit Test Case

Software Testing Levels

Unit Testing

Integration Testing

System Testing

12

Unit Testing Features

Software Testing Levels

Stubs or Mock Functions

• Test the code in isolation

• Create test conditions that may be hard to do otherwise

Global Data

• Initialized before the call

• Checked after the call

Many Test Types

• Boundary conditions

• “magic” numbers

Unit Testing

Integration Testing

System Testing

13

Unit Testing Benefits

Software Testing Levels

Small and Quick to Run

•Should be easy to re-run for each code change

Positive Side Effects

•Code is more modular

•Easier to reuse

Reduces Global Data

•You will tend to use global data less

•You are more likely to create access methods rather than directly access global data

Reduces overall effort

•Defects diagnosed at a fine grain level

•Debugging is limited to scope of the code changes

Unit Testing

Integration Testing

System Testing

14

Integration Testing at the Unit Level

Software Testing Levels

Replace some or all stubs with real code

• Dependent units are linked into harness

Used to validate the stubs

• If tests fail, go back and update

• Some tests might only be possible in this configuration

Unit Testing

Integration Testing

System Testing

15

System Testing

Software Testing Levels

Testing at the application level

Fully linked application

Testing interface is the application interface

May need to create test drivers

Unit Testing

Integration Testing

System Testing

16

Integration Testing at the System Level

Software Testing Levels

Subsystem Testing

•Test Part of the application

•May be helpful to test a subsystem in isolation

•Can help with future reuse

•Validate design constraints (coupling)

Unit Testing

Integration Testing

System Testing

17

Software Testing Strategy

Software Testing Levels

Software Testing

Lifecycle Plan

Identify Metrics

Generate Quality Reports

Take Action

Improve the

Process

18

VectorCAST Testing Automation Platform

Software Testing Levels

19

1. Software Quality

2. Software Testing Levels

3. Questions and Answers

Agenda

20

Software Testing 101

Questions and Answers

!?

21 © 2018. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.1 | 2018-10-30

Author:Jeffrey FortinVector

More Information!Visit our Website for:> News> Products> Demo Software> Support> Workshops> Contact Addresses

www.vector.com

top related