39
V3.1 | 2019-11-16 Software Testing TechDay – November 19, 2019 Software Factory: What it is and How it Helps Improve Software Quality

Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

V3.1 | 2019-11-16

Software Testing TechDay – November 19, 2019

Software Factory:What it is and How it Helps Improve Software Quality

Page 2: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

2

u Why a Software Factory

Life of a Software Project

Defining Principles

Ultimate Software Factory

Assembly Lines

Agenda

Page 3: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

3

Who was W. Edwards Deming?

u American engineer, statistician, and management consultant

u Deming's message: improving quality reduces cost while increasing productivity and market share

u Improved quality results in increased customer loyalty

u Japanese manufacturers applied Deming’s techniques in the 1950s

u Result: experienced unheard-of levels of quality and productivity, which created new international demand for Japanese products

Manufacturing before Deming

u Independent processes for Design, Manufacture, and Test

u Inspect finished products for defects

u Re-work defective products to resolve issues

Manufacturing after Deming

u Integrated processes that build in quality

u Measure quality at each step in the manufacturing process

u Determine the root cause of failures and improve processes

How Deming Changed Manufacturing

Why a Software Factory

Page 4: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

4

Software is Pervasive and Growing

Why a Software Factory

Page 5: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

5

u Requirements Definition

u Started in 1973; 2000+ requirements changes were made between 1975 and 1981

u Rigorous maintenance of requirements documents was a key factor in project success

u Collaboration

u Software contract awarded to IBM, who had an office next to Johnson Space Center

u Led to more synergy and free flow of ideas

u Verification

u Established independent testing organization to be the “conscience“ of the project

u 35% of budget; just under 50% of the software team members

u Verification started during the requirements definition phase> Test procedures included actual inputs to be used and expected outputs

u First flight software had 1,020 tests

u Change Management

u Average of 2 years for a new requirement to get implemented, tested and released

Despite the well-planned and well-manned verification effort, software bugs exist. Part of the reason is the complexity of the real-time system, and part is because “we didn’t do it up front enough” – “it” being thinking through the program logic and verification schemes.

(Interview with Stanley Mann, Johnson Space Center, June 8, 1983)

Software Development on the Space Shuttle

Why a Software Factory

Page 6: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

6

u Requirements Definition

u High level requirements created by the customer/OEM

u Project teams need to break those down into lower level requirements> This does not always happen

u Collaboration

u Software development teams are often global> Time zones and native language differences make communication more challenging

u Verification

u Projects are performing both high level/system tests as well as lower level software unit and integration testing> Number of tests executed is exploding; full test runs can take weeks or months to execute

u Change Management

u Regression errors are a large source of quality issues in released products

u Adoption of Agile means that new requirements can be implemented, tested and released in weeks or months – on some projects

Software and software development processes are much more complex than they were in the 1970s

Software Development on a Modern Car

Why a Software Factory

Page 7: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

7

Common Software Development Workflow

u Designers, Developers and Testers work in isolation

u Independent Processes

u Periodic Testing

u Inspect finished products for defects

u Bug Fixing

u Re-work defective products to resolve issues

The ‘Deming’ Development Workflow

u Integrated Testing Process

u Well defined process and goals that are shared

u Continuous Testing

u Measure quality at each step in the manufacturing process

u Bug Prevention

u Determine the root cause of failures, and improve processes

Applying Deming’s Principles to Software

Why a Software Factory

Page 8: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

8

Bugs found late in the release cycle

u When many tests are run for the first time

Bug fixing is costly

u Context switching by Developers

u Long feedback loops before they know about failures

New features get released slowly

u Features get stuck in QA

u Hard to solve regressions

The Cost of Periodic Testing

Why a Software Factory

Page 9: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

9

Catching Defects When Introduced

Why a Software Factory

Page 10: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

10

Cambridge University research estimates the global cost of debugging software to be $312 Billion annually

Source: Cambridge University, January 8, 2013

Short Term Maintenance costs are generally double the original development and testing costs

According to Gartner, after 5 years the original development cost is 8% of the total lifetime cost of ownership. 92% is maintenance.

Source: Gartner, Inc., "The Four Laws of Application Total Cost of Ownership," Andy Kyte, April 3, 2012

The Lifetime Cost of Finding and Fixing Bugs

Why a Software Factory

Page 11: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

11

ISO 26262Road vehicles - Functional safety -Part 6:Product development at the software level

Automotive SPICE®

Process Reference ModelProcess Assessment Model

Standards Drive Adoption of New Test Processes

Why a Software Factory

1 Part, 128 Pages 10 Parts, 486 Pages

Figure 1. Automotive SPICE v3.1 2017; Page 12 Figure 2. ISO 26262-6 2011; Page vii

Page 12: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

12

Why a Software Factory

u Life of a Software Project

Defining Principles

Ultimate Software Factory

Assembly Lines

Agenda

Page 13: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

13

Software Development Plan vs Reality

Life of a Software Project

time

Requirements and Design

Coding TestConcept and

Planning

Releasedate

Startdevelopment

Plan

Reality 1

Reality 2

Requirements and Design

Coding Test

Requirements and Design

Coding Test

Releasedate

Commercial and reputational risk: delay or bugs

Release and Maintenance

Page 14: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

14

System or Safe Requirements

System

Test Cases

Architecture Design

Integration Test Cases

Unit Design and Implementation

Unit

Test Cases

Coding

Requirements System Test Cases

Unit Design Unit Test Cases

V1

Life of a Software Project

Integration Test CasesArchitecture Design

Time Taken

Page 15: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

15

System or Safe Requirements

System

Test Cases

Architecture Design

Integration Test Cases

Unit Design and Implementation

Unit

Test Cases

Coding

Requirements System Test Cases

Unit Design Unit Test Cases

V2

Life of a Software Project

Integration Test CasesArchitecture Design

=New files/cases

Time Taken

Page 16: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

16

System or Safe Requirements

System

Test Cases

Architecture Design

Integration Test Cases

Unit Design and Implementation

Unit

Test Cases

Coding

Requirements System Test Cases

Architecture Design

Unit Design

Integration Test Cases

Unit Test Cases

V10

Life of a Software Project

=New files/cases

Time Taken

Page 17: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

17

The Cost of Independent Processes

Life of a Software Project

Page 18: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

18

Why a Software Factory

Life of a Software Project

u Defining Principles

Ultimate Software Factory

Assembly Lines

Agenda

Page 19: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

19

Principles for the Ultimate Software Factory

Defining Principles

Principle

1 Leverage tried and tested manufacturing standards

2 Understand and track the requirements

3 Work smarter not harder

4 Create a continuous testing environment

5 Build a scalable constant integration engine

Page 20: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

20

u Understand the System

u Just-In-Time delivery

u Find bottlenecks

u Boost communication and collaboration

u Stop the production if there is an issue

u Everyone helps if there is a major issue

#1 Leverage Tried and Tested Manufacturing Standards

Defining Principles

An example of a Kanban board applied to Software development process

Managing the ‘work in progress’

Page 21: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

21

#2 Understand and Track the Requirements

Defining Principles

Coding

System Testing

Requirements Analysis

High LevelDesign

DetailedDesign

Integration Testing

UnitTesting

System Requirements

High-Level Requirements

Low-Level Requirements

Run Test CasesLink

Run Test CasesLink

Run Test CasesLink

Customer

Request

▪ Basis for SW Development

▪ Basis for SW Tests (functional)

▪ Allows Traceability

• Requirement <-> Test Case

• Requirement <-> Source Code

▪ Allows Change Impact Analysis

• When source code changes:

• -> what requirement might be affected

• When a requirement changes:

• -> what source code might be affected

• -> what test case might be affected

Write Test

Cases

Write Test

Cases

Write Test

Cases

Page 22: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

22

u Know your end game?

u How do you create the minimal number of tests for your requirements?

u How do you know when you are done?

u If only we had a way to measure our ‘doneness’…

u We do! - Accelerate your test development by measuring and tracking coverage

#3 Work Smarter not Harder

Defining Principles

Page 23: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

23

#4 Create a Continuous Testing Environment

Defining Principles

Design and Requirements

Coding TestConcept and

PlanningRelease and Maintenance

Waterfall

vs.

SW factory

u Test as early as possible

u Each code change

u Use Simulation

u Define test cases with the requirements

u TDD, Scrum, Agile, Kanban

u Regression testing on each code change

u Change-based testing

u "Baseline test cases" for legacy code

Page 24: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

24

u Continuous integration in an assembly line process

u A fully tested source code base should always be available to produce a product

u Each stakeholder can run all tests

u Developer

u Tester

u CI Server

#5 Build a Scalable Constant Integration Engine

Defining Principles

Page 25: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

25

Why a Software Factory

Life of a Software Project

Defining Principles

u Ultimate Software Factory

Assembly Lines

Agenda

Page 26: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

26

Change Based Testing

Parallel Testing

Testing: Early, Plenty, Thoroughly and Continuously

Ultimate Software Factory

Regression Testing

Robustness Testing

Code Coverage Based Testing

Requirements Based Testing

Static Analysis

Unit TestingIntegration

TestingSystem Testing

Continuous Integration: "Clean base"Testing of each code change. Test Cases "in sync" with code

Page 27: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

27

What can change?

u Requirement

u Linked test cases automatically invalidated

u Source code traceability can give a clue what code needs to be changed

u Test Case

u Re-run the changed test case

u Source Code

u A real challenge

u Do we need to execute all test cases?

u Tools can help reducing the test execution times with an intelligent test case Selection

Change Impact Analysis

Ultimate Software Factory

Page 28: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

28

Deploying Change-Based Testing on Code Changes

Ultimate Software Factory

System Requirements

System

Test Cases

High-Level Requirements

Integration Test Cases

Low-Level Requirements

Unit

Test Cases

Test Cases

Source Code

Coding

Code Change

Page 29: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

29

Parallel Testing

Ultimate Software Factory

Independent Test Environments

Test Environment

Full Run

Test Environment Full Run

Test Environment Full Run

Test Environment Full Run

Test Environment

Full Run

Test Environment

Full Run

timeTest Environment

Full RunTest

Environment Full Run

Test Environment Full RunTest Environment

Full Run Test Environment Full

Run

Test Environment Full Run

Sequentialexecution

Parallelexecution

Page 30: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

30

Software Quality and Testing Process Dashboard

Ultimate Software Factory

Page 31: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

31

Complete Portfolio

Ultimate Software Factory

System Validation

System Integration

Test

SoftwareIntegration

Test

Software Unit Test

SoftwareImplementation

So

ftw

are

Syste

m

White-Box Testing on host / on target

Squore

Analy

tics

Lin

k t

o R

equirem

ents

VectorCAST/C++

CANoe, vTESTstudio,vVIRTUALtarget,VectorCAST/C++

CANoe, vTESTstudio, VT System,

vVIRTUALtarget,VectorCAST/QA

SW Integration / Black-Box Testing

System Testing

Change-Based Testing

Benefits

u Full support in the development process

u Uniform test management, test automation (CI), result analysis and traceability

Source Code Quality & Design

(Technical Debt Analysis)Squore Source Code Analyzer

Page 32: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

32

Why a Software Factory

Life of a Software Project

Defining Principles

Ultimate Software Factory

u Assembly Lines

Agenda

Page 33: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

33

CANoe, vTESTstudio,VT System,

vVIRTUALtarget,VectorCAST/QA

Virtual Testing of AUTOSAR Software Components

Assembly Lines

vVIRTUALtarget Pro generates the RTE and BSW Emulation for your AUTOSAR project enabling early

design phase testing with CANoe'ssimulation power and vTESTstudio's

test design environment.

Page 34: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

34

White-Box Testing on host / on target

VectorCAST/C++

Software Unit Testing

Assembly Lines

VectorCAST/C++ provides a natural way to define low-level software unit test cases, eliminates the need to write and maintain test driver code, and makes those tests

available to all the developers on the team as a reusable asset to validate their work for each code check-in.

Page 35: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

35

Software Integration Testing

Assembly Lines

Combine multiple software units into software components to perform integration testing that focuses on how the components interact with each other from a

control and data flow perspective using VectorCAST/C++.

CANoe, vTESTstudio,vVIRTUALtarget,

VectorCAST/C++

SW Integration / Black-Box Testing

Page 36: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

36

CANoe, vTESTstudio, VT System,

vVIRTUALtarget,VectorCAST/QA

System Testing

Change-Based Testing

Virtual System Testing

Assembly Lines

Develop automated system test cases on a virtual ECU without any hardware present, and continuously run your automated

system test cases. Use Change Base Testing to quickly run the impacted system tests on each code change.

Page 37: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

37

CANoe, vTESTstudio, VT System Hardware,

vVIRTUALtarget,VectorCAST/QA

System Testing

Change-Based Testing

ECU System Testing

Assembly Lines

Test ECUs thoroughly by connecting the communication networks and I/O interfaces to the test system using CANoe

and Vector’s VT System Hardware.

Page 38: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

38

Squore

Analy

tics

Source Code Quality & Design

(Technical Debt Analysis)Squore Source Code Analyzer

Updating the Software Analytics

Assembly Lines

Squore can assist in visualizing, aggregating, justifying, and delivering

high quality products to your customers. With different stakeholder

views, Squore can produce easily interpreted visualization of KPIs.

Page 39: Software Factory: What it is and How it Helps Improve ......Applying Deming’s Principles to Software Why a Software Factory. 8 ... u TDD, Scrum, Agile, Kanban u Regression testing

39 © 2019. Vector North America Inc. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V3.1 | 2019-11-16

Authors:Lynda GainesKurt Krueger

For more information about Vectorand our products please visit

www.vector.com