Testing

Style Guides

Style automation
Style guide examples

Portability

Advantages and Drawbacks
Portability targets
Techniques to improve portability

Testing

Goals of testing
Test coverage
Identify test cases to cover the following snippet of code
1
2
3
if (a>b && c!=25) { 
    d++; 
}
Solution
  • Required cases for condition/decision coverage:
    • a<=b
    • a>b && c==25
    • a>b && c!=25
Coverage targets
Discussion: difficult testing scenarios
Beyoncé rule
SQLite
Kinds of testing
Aerospace testing
Flaky vs. brittle tests
Aside: random numbers
Test scope
Exploratory testing
Unit tests
Behavior-driven development
Integration tests
Integration environments
Chaos engineering
Continuous integration (“CI”)
CI decisions
Automation, speed, & infrastructure
Multi-system CI

Dynamic analysis

Common dynamic analysis tools
Fuzz testing
What is a performance bug?
Performance testing challenges
Latency vs. throughput
Discussion