Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
V3.1 | 2019-11-16
Software Testing TechDay – November 19, 2019
Software Factory:What it is and How it Helps Improve Software Quality
2
u Why a Software Factory
Life of a Software Project
Defining Principles
Ultimate Software Factory
Assembly Lines
Agenda
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
4
Software is Pervasive and Growing
Why a Software Factory
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
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
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
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
9
Catching Defects When Introduced
Why a Software Factory
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
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
12
Why a Software Factory
u Life of a Software Project
Defining Principles
Ultimate Software Factory
Assembly Lines
Agenda
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
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
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
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
17
The Cost of Independent Processes
Life of a Software Project
18
Why a Software Factory
Life of a Software Project
u Defining Principles
Ultimate Software Factory
Assembly Lines
Agenda
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
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’
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
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
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
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
25
Why a Software Factory
Life of a Software Project
Defining Principles
u Ultimate Software Factory
Assembly Lines
Agenda
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
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
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
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
30
Software Quality and Testing Process Dashboard
Ultimate Software Factory
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
32
Why a Software Factory
Life of a Software Project
Defining Principles
Ultimate Software Factory
u Assembly Lines
Agenda
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.
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.
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
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.
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.
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.
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