software testing 101 - vector · software testing 101. 2 1. software quality 2. software testing...
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