Embedded SW Testing
Swift Act LLC …
I am …
 14+ years experience in Embedded Systems and SW Engineering
 SECC, Valeo, Toshiba
 Co-founder of Swift Act Services
 ISTQB Advanced Full certified
 https://eg.linkedin.com/in/amrali
 Track records in 4 continents and 12 countries
 Reviewed 3 books
Skill vs. Knowledge
Skill
Know
ledge
Is applying
Is acquiring
Testing is a skill and applying it to embedded
systems requires additional skills!
TestingMicrocontrollersProgramming
Embedded Tester Skill Set
Test Levels
 A point in the development
model where testing is done.
 A development model can have
more than a test level depending
on the model and the project.
Component Testing
 AKA unit, program, or module testing
Integration Testing Levels
Component integration testingSystem integration
testing
Structural Strategies Examples
Top-down approach Bottom-up approach
Functional Strategies Examples
Minimum capability Thread capability
Big-Bang Strategy Example
System Testing
 Testing the system as a whole
 End-to-end behavior is the focus.
 Usually carried by independent test team
Acceptance Testing
 Goal is to establish confidence in the system; not to find bugs.
 Usually done by customers or system users or any other stakeholders
 Asses the readiness of the system for deployment or use
 Test forms:
 UAT
 OAT
 Contract/Regulation AT
 Alpha or Beta
Verification
Customer
Involvement
or Intended
Operational
Environment
Validatio
n
Validation and Verification
Test Type
Functional
Non-
Functional
Structural
Related-
to-change
Test Types
 Tests can be grouped based on specific targets, reasons, or objectives.
 SW models can be developed and used in:
 Functional testing
 Non-functional testing
 Structural testing
Test Techniques
Important Testing Techniques
 Black-box
 EP, BVA, S/M, PW, DT ...
 White-box
 MC/DC, decision-testing …
 Static analysis
 Control-flow, call-graph ...
 Dynamic analysis
 Memory-leaks, wild pointers, profiling ...
Problem Space
 Myth: Structure techniques are used
for low test levels.
 Myth: Non-functional test is done @
higher levels.
 Fact: Every test technique and test
type is applicable @ every test level.
 You need to find your position in the
testing grid.
Selecting and Combining Techniques
 Techniques must be combined.
 Combined techniques are more powerful than trying to find a single “best” technique.
 When techniques are combined, test cases should cover all applicable coverage criteria.
 To select techniques, consider:
 Applicability
 Limitations and difficulties
 Coverage goals
 Defects typically detected
Different Embedded SW Testing Jobs
Embedded
SW Testing
Embedded
SW
Validation
Embedded
Systems
Validation
Programming C is a must Yes, any Yes, any
Microcontrollers Yes Yes Yes
Testing Techniques Yes Yes Yes
Unit Testing Yes No No
Integration Testing Yes No No
System Testing May be Yes Yes
Acceptance Testing May be May be Yes
Demo: Sebha Testing
8/27/18Embedded SW Testing 101 © 21
Demo: Static Architecture
Sebha
+
R
H
U
TSW
DISP
Counter
OS
SSD
SW States Sebha Count
Scheduling
Demo: Dynamic Architecture
time
SSD Task @ 5 ms
SW Task @ 20 ms DISP Task @ 20 ms
Sebha Task @ 20 ms
Demo: Seven Segment Display
 SSD_Init
 SSD_SetSymbol
 SSD_SetState
 SSD_GetSymbol
 SSD_GetState
 SSD_Update
Demo: Functional Integration
time
time
time
time
Demo: SW Validation Testing
Swift Act LLC offers
 Mini Embedded SW Testing 101 x 2 days
 Embedded SW Testing 101 x 4 days
 Contacts:
 www.swift-act.com
 training@swift-act.com
 https://www.facebook.com/groups/EmbeddedSystemsTraining/
References
 Advanced SW Testing Volume 1, 2 and 3 2nd edition
Embedded SW Testing

Embedded SW Testing

Editor's Notes

  • #8 Testing a component in isolation. Driver + Component + Stubs <number>
  • #9 Integration Testing = Testing interfaces and interactions between different components <number>
  • #10 Top-down  To verify new architectures Bottom-up  To verify new building blocks <number>
  • #11 Minimum capability  AR stacks bring up Thread capability  In Parallel features <number>
  • #12 When to use? Reuse + No stubs and drivers <number>
  • #13 Last integration testing step <number>
  • #14 UAT = User Acceptance Test (End User) OAT = Operational Acceptance Test (System Administrators) Alpha = AT @ the company Beta = AT @ the field <number>