Skip to content

SOME/IP Stack Acceptance Test Plan

Based on Open SOME/IP Specification v2025


1. Executive Summary

This document defines the acceptance criteria and comprehensive test strategy for validating the SOME/IP stack implementation against the Open SOME/IP Specification. The test plan follows the V-Model development methodology, ensuring traceability from requirements to acceptance testing.

1.1 Document Purpose

  • Define acceptance criteria derived from the Open SOME/IP Specification
  • Establish a V-Model aligned test strategy
  • Provide complete test coverage mapping
  • Enable conformance verification against industry standards

V-Model Test Strategy

1.2 Scope

This test plan covers: - SOME/IP RPC Protocol (someip-rpc.rst) - SOME/IP Service Discovery (someip-sd.rst) - SOME/IP Transport Protocol (someip-tp.rst) - Reserved Identifiers (someip-ids.rst)


2. Acceptance Criteria Summary

2.1 Specification-Derived Requirements Categories

Category Requirement Count Priority Compliance Target
Message Format 78 CRITICAL 100%
Serialization 65 CRITICAL 100%
Transport Bindings (UDP/TCP) 42 CRITICAL 100%
RPC Protocol 48 CRITICAL 100%
Service Discovery (SD) 156 HIGH 95%
Transport Protocol (TP) 37 HIGH 100%
Error Handling 28 HIGH 100%
Session Management 15 HIGH 100%
Reserved IDs 12 MEDIUM 100%
E2E Protection 6 OPTIONAL 0% (future)

Total Requirements: ~487 (422 core + 65 informational)


3. V-Model Test Strategy

┌─────────────────────────────────────────────────────────────────────────────┐
│                              V-MODEL TEST STRATEGY                          │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  REQUIREMENTS                                         ACCEPTANCE TESTING    │
│  ANALYSIS        ────────────────────────────────►    (Level 5)            │
│  ▼                                                                          │
│  System          ────────────────────────────►       System Testing        │
│  Design                                               (Level 4)            │
│  ▼                                                                          │
│  Architecture    ────────────────────────►           Integration Testing   │
│  Design                                               (Level 3)            │
│  ▼                                                                          │
│  Module          ────────────────────►               Component Testing     │
│  Design                                               (Level 2)            │
│  ▼                                                                          │
│  Coding          ────────────────►                   Unit Testing          │
│                                                       (Level 1)            │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

4. Level 1: Unit Testing

4.1 Purpose

Verify individual functions, classes, and methods work correctly in isolation.

4.2 Test Categories

4.2.1 Message Format Unit Tests

Requirement References: feat_req_someip_44 - feat_req_someip_103

Test ID Test Case Specification Ref Acceptance Criteria
UT-MSG-001 Message ID Structure feat_req_someip_56 Message ID correctly encodes Service ID (16-bit) + Method ID (16-bit)
UT-MSG-002 Length Field feat_req_someip_77 Length field (32-bit) = 8 + payload_length
UT-MSG-003 Request ID Structure feat_req_someip_83 Request ID = Client ID (16-bit) + Session ID (16-bit)
UT-MSG-004 Protocol Version feat_req_someip_90 Protocol Version = 0x01
UT-MSG-005 Interface Version feat_req_someip_92 Interface Version = configured value (8-bit)
UT-MSG-006 Message Type Values feat_req_someip_95 All message types (0x00-0x02, 0x80-0x81, 0x20+) valid
UT-MSG-007 Return Code Values feat_req_someip_144 All return codes (0x00-0x0a) properly encoded
UT-MSG-008 TP Flag in Message Type feat_req_someip_761 TP flag (0x20) set correctly for segmented messages
UT-MSG-009 Minimum Length Validation feat_req_someip_798 Messages with length < 8 bytes rejected
UT-MSG-010 Header Byte Order feat_req_someip_42 All header fields in big-endian (network byte order)

4.2.2 Serialization Unit Tests

Requirement References: feat_req_someip_167 - feat_req_someip_299

Test ID Test Case Specification Ref Acceptance Criteria
UT-SER-001 Boolean Serialization feat_req_someip_172 Boolean: 8-bit, 0=FALSE, 1=TRUE
UT-SER-002 uint8 Serialization feat_req_someip_172 uint8 correctly serialized
UT-SER-003 uint16 Big-Endian feat_req_someip_172, feat_req_someip_42 uint16 in network byte order
UT-SER-004 uint32 Big-Endian feat_req_someip_172 uint32 in network byte order
UT-SER-005 uint64 Big-Endian feat_req_someip_623 uint64 in network byte order
UT-SER-006 sint8/16/32/64 Serialization feat_req_someip_172 Signed integers correctly serialized
UT-SER-007 float32 IEEE 754 feat_req_someip_172 IEEE 754 binary32 format
UT-SER-008 float64 IEEE 754 feat_req_someip_172 IEEE 754 binary64 format
UT-SER-009 Fixed-Length String feat_req_someip_233 Unicode + BOM + null termination
UT-SER-010 Dynamic-Length String feat_req_someip_237 Length field + BOM + null termination
UT-SER-011 Fixed-Length Array feat_req_someip_241 Exact n elements serialized
UT-SER-012 Dynamic-Length Array feat_req_someip_254 Length field + elements
UT-SER-013 Struct Serialization feat_req_someip_230 Sequential serialization, no auto-padding
UT-SER-014 Struct with Length Field feat_req_someip_600 Optional 8/16/32-bit length prefix
UT-SER-015 Enumeration Types feat_req_someip_651 Based on uint8/16/32/64
UT-SER-016 Bitfield Types feat_req_someip_689 As uint8/16/32
UT-SER-017 Union/Variant feat_req_someip_263 Length + Type + Element serialization
UT-SER-018 Alignment Calculation feat_req_someip_711 Alignment from message start
UT-SER-019 UTF-8 String BOM feat_req_someip_662 BOM required, counts toward length
UT-SER-020 UTF-16 LE/BE Support feat_req_someip_234 UTF-16 BE/LE with proper termination

4.2.3 Session Manager Unit Tests

Requirement References: feat_req_someip_79 - feat_req_someip_88

Test ID Test Case Specification Ref Acceptance Criteria
UT-SES-001 Session ID Generation feat_req_someip_88 Unique per client call
UT-SES-002 Session ID Starting Value feat_req_someip_649 Starts at 0x0001 when used
UT-SES-003 Session ID Wrap-Around feat_req_someip_677 Wraps from 0xFFFF to 0x0001
UT-SES-004 Session ID Disabled feat_req_someip_700 Set to 0x0000 when not used
UT-SES-005 Request/Response Correlation feat_req_someip_79 Server copies Request ID to response
UT-SES-006 Client ID Uniqueness feat_req_someip_699 Unique per client within ECU
UT-SES-007 Concurrent Session Support feat_req_someip_79 Multiple outstanding requests

4.2.4 Transport Protocol (TP) Unit Tests

Requirement References: feat_req_someiptp_759 - feat_req_someiptp_820

Test ID Test Case Specification Ref Acceptance Criteria
UT-TP-001 TP Header Structure feat_req_someiptp_766 Offset[28] + Reserved[3] + MoreSegments[1]
UT-TP-002 Offset Field Encoding feat_req_someiptp_768 Upper 28 bits, 16-byte aligned
UT-TP-003 More Segments Flag feat_req_someiptp_770 1 for non-last, 0 for last segment
UT-TP-004 Session ID per Original feat_req_someiptp_763 Same Session ID across all segments
UT-TP-005 Segment Size Limit feat_req_someiptp_773 Max 1392 bytes (87*16) for alignment
UT-TP-006 Segment Length Multiple feat_req_someiptp_772 All but last segment: length % 16 == 0
UT-TP-007 TP Flag Setting feat_req_someiptp_765 Message Type has TP flag (0x20) set
UT-TP-008 Header Preservation feat_req_someiptp_774 Message ID, Request ID preserved
UT-TP-009 Ascending Order Send feat_req_someiptp_777 Sender sends in ascending order
UT-TP-010 No Overlapping Segments feat_req_someiptp_780 No overlaps or duplicates from sender
UT-TP-011 Reassembly Buffer Match feat_req_someiptp_781 Match by configured values + Request ID
UT-TP-012 Session ID Change Detection feat_req_someiptp_793 New Session ID starts new reassembly
UT-TP-013 Error Detection feat_req_someiptp_792 Handle obvious errors gracefully

4.2.5 Service Discovery Unit Tests

Requirement References: feat_req_someipsd_1 - feat_req_someipsd_900

Test ID Test Case Specification Ref Acceptance Criteria
UT-SD-001 SD Service ID feat_req_someipsd_26 Service ID = 0xFFFF
UT-SD-002 SD Method ID feat_req_someipsd_26 Method ID = 0x8100
UT-SD-003 SD Message Type feat_req_someipsd_26 Message Type = NOTIFICATION (0x02)
UT-SD-004 SD Session ID Increment feat_req_someipsd_26 Incremented per message
UT-SD-005 SD Session ID Starting feat_req_someipsd_26 Starts at 1, wraps to 1
UT-SD-006 Reboot Flag Logic feat_req_someipsd_41 Set until Session ID wraps
UT-SD-007 Unicast Flag feat_req_someipsd_100 Always set to 1
UT-SD-008 Entry Types Encoding feat_req_someipsd_46 Service (16B) and Eventgroup (16B)
UT-SD-009 FindService Entry feat_req_someipsd_238 Type=0x00, fields correct
UT-SD-010 OfferService Entry feat_req_someipsd_252 Type=0x01, with Endpoint Options
UT-SD-011 StopOfferService Entry feat_req_someipsd_261 TTL=0
UT-SD-012 SubscribeEventgroup feat_req_someipsd_321 Type=0x06, with Endpoint Options
UT-SD-013 StopSubscribeEventgroup feat_req_someipsd_332 TTL=0
UT-SD-014 SubscribeEventgroupAck feat_req_someipsd_613 Type=0x07, mirrors subscribe
UT-SD-015 SubscribeEventgroupNack feat_req_someipsd_618 Type=0x07, TTL=0
UT-SD-016 IPv4 Endpoint Option feat_req_someipsd_127 Type=0x04, 12 bytes
UT-SD-017 IPv4 Multicast Option feat_req_someipsd_723 Type=0x14, 12 bytes
UT-SD-018 Configuration Option feat_req_someipsd_149 DNS-SD format strings
UT-SD-019 Option Referencing feat_req_someipsd_336 Correct index and count
UT-SD-020 Entries Processing Order feat_req_someipsd_862 Exact arrival order

4.3 Unit Test Implementation

Location: tests/test_*.cpp Framework: Google Test (gtest) Coverage Target: ≥95% line coverage


5. Level 2: Component Testing

5.1 Purpose

Verify integrated behavior of related modules (e.g., Serializer + Message).

5.2 Test Categories

5.2.1 Message Serialization/Deserialization Component Tests

Test ID Test Case Components Acceptance Criteria
CT-MSG-001 Full Message Round-Trip Message + Serializer Serialize → Deserialize preserves all fields
CT-MSG-002 Request Message Creation Message + Serializer Valid REQUEST with correct header
CT-MSG-003 Response Message Creation Message + Serializer Matching Response to Request
CT-MSG-004 Error Response Creation Message + Serializer ERROR type with return code
CT-MSG-005 Notification Message Message + Serializer NOTIFICATION with Event ID
CT-MSG-006 Fire&Forget Message Message + Serializer REQUEST_NO_RETURN type
CT-MSG-007 Complex Payload Serialization Serializer + All Types Nested structs, arrays, unions

5.2.2 Transport Component Tests

Test ID Test Case Components Acceptance Criteria
CT-UDP-001 UDP Socket Creation UdpTransport Bind to configured port
CT-UDP-002 UDP Message Send UdpTransport + Message Single message transmission
CT-UDP-003 UDP Message Receive UdpTransport + Deserializer Proper message parsing
CT-UDP-004 UDP Multicast Join UdpTransport Join multicast group
CT-UDP-005 UDP Multicast Receive UdpTransport Receive multicast messages
CT-TCP-001 TCP Connection Establish TcpTransport Client connects to server
CT-TCP-002 TCP Message Streaming TcpTransport + Message Multiple messages on stream
CT-TCP-003 TCP Magic Cookie TcpTransport Resync markers per segment
CT-TCP-004 TCP Nagle Disabled TcpTransport TCP_NODELAY set (feat_req_someip_325)
CT-TCP-005 TCP Connection Recovery TcpTransport Client reconnects on failure

5.2.3 TP Component Tests

Test ID Test Case Components Acceptance Criteria
CT-TP-001 Large Message Segmentation TpSegmenter Correct segment boundaries
CT-TP-002 Full Message Reassembly TpReassembler Original message restored
CT-TP-003 Out-of-Order Handling TpReassembler Reorder distance ≤ 3
CT-TP-004 Missing Segment Detection TpReassembler Timeout/cancellation
CT-TP-005 Duplicate Segment Handling TpReassembler Overwrite with first received
CT-TP-006 Session ID Change TpReassembler Start new reassembly

5.2.4 RPC Component Tests

Test ID Test Case Components Acceptance Criteria
CT-RPC-001 Method Registration RpcServer + RpcClient Method dispatched correctly
CT-RPC-002 Request/Response Flow RpcServer + RpcClient Matching Request ID
CT-RPC-003 Fire&Forget Method RpcClient No response expected
CT-RPC-004 Getter Call RpcClient Empty request, value response
CT-RPC-005 Setter Call RpcClient Value request, ack response
CT-RPC-006 Error Response RpcServer Correct return code handling
CT-RPC-007 Timeout Handling RpcClient E_TIMEOUT on no response

5.2.5 SD Component Tests

Test ID Test Case Components Acceptance Criteria
CT-SD-001 FindService Processing SdClient + SdServer OfferService response
CT-SD-002 OfferService Broadcast SdServer Multicast + options
CT-SD-003 Service Discovery Flow SdClient + SdServer Find → Offer complete
CT-SD-004 Eventgroup Subscribe SdClient + SdServer Subscribe → Ack flow
CT-SD-005 Subscription Refresh SdClient Before TTL expiry
CT-SD-006 StopOfferService SdServer Service goes down
CT-SD-007 Reboot Detection SdClient Reboot flag + Session ID logic

5.3 Component Test Implementation

Location: tests/integration/ and enhanced unit tests Framework: Google Test + Python pytest Coverage Target: All module interfaces tested


6. Level 3: Integration Testing

6.1 Purpose

Verify complete subsystems work together correctly.

6.2 Test Categories

6.2.1 End-to-End RPC Integration Tests

Test ID Test Case Subsystems Acceptance Criteria
IT-RPC-001 Echo Service E2E Client + Server + Transport Request echoed back correctly
IT-RPC-002 Calculator Service Client + Server + Serialization Correct arithmetic results
IT-RPC-003 Multiple Clients Multiple Clients + Server Concurrent handling
IT-RPC-004 Large Payload via TCP Client + Server + TCP >1400 byte payload
IT-RPC-005 Large Payload via TP Client + Server + TP + UDP Segmentation/reassembly
IT-RPC-006 Mixed UDP/TCP Client + Server Protocol selection
IT-RPC-007 Service Instance Routing Multiple Instances Port-based dispatch

6.2.2 Service Discovery Integration Tests

Test ID Test Case Subsystems Acceptance Criteria
IT-SD-001 Full Discovery Cycle SdClient + SdServer + Network Find → Offer → Use
IT-SD-002 Multiple Services Discovery Multiple SdServers All discovered
IT-SD-003 Service Timeout SdClient + SdServer TTL expiry detected
IT-SD-004 Dynamic Service Start SdServer + SdClient Late service discovered
IT-SD-005 Eventgroup Subscription SdClient + EventPublisher Events received after subscribe
IT-SD-006 Multicast Events Multiple SdClients All subscribers receive
IT-SD-007 Initial Events on Subscribe SdServer + Fields Field value on subscribe

6.2.3 Event System Integration Tests

Test ID Test Case Subsystems Acceptance Criteria
IT-EVT-001 Event Publish/Subscribe Publisher + Subscriber + SD Events received
IT-EVT-002 Multiple Eventgroups Publisher + Multiple Subscribers Correct dispatch
IT-EVT-003 Event Filtering Publisher + Selective Clients Only subscribed receive
IT-EVT-004 Field Notifier Field + Notifier + Subscribers On-change notifications
IT-EVT-005 Cyclic Events Publisher + Timer Regular event sending
IT-EVT-006 Multicast Threshold Publisher + Many Subscribers Switch to multicast

6.2.4 Transport Protocol Integration Tests

Test ID Test Case Subsystems Acceptance Criteria
IT-TP-001 128KB Message via TP TP + UDP + App Complete transfer
IT-TP-002 TP with Packet Loss TP + Lossy Network Timeout/retry behavior
IT-TP-003 TP Session Interleaving TP + Multiple Clients Correct reassembly
IT-TP-004 TP Traffic Shaping TP + Rate Limiter Burst control

6.3 Integration Test Implementation

Location: tests/integration/, tests/system/ Framework: Python pytest + C++ integration Coverage Target: All inter-module interfaces tested


7. Level 4: System Testing

7.1 Purpose

Validate complete system behavior against requirements.

7.2 Test Categories

7.2.1 Protocol Conformance Tests

Specification References: Complete someip-rpc.rst, someip-sd.rst, someip-tp.rst

Test ID Test Case Specification Section Acceptance Criteria
ST-CONF-001 Header Format Compliance feat_req_someip_45 All header fields per spec
ST-CONF-002 Big-Endian Verification feat_req_someip_42 Network byte order
ST-CONF-003 Message Type Compliance feat_req_someip_95 All types per table
ST-CONF-004 Return Code Compliance feat_req_someip_371 All codes per table
ST-CONF-005 SD Format Compliance feat_req_someipsd_205 SD header + entries + options
ST-CONF-006 TP Format Compliance feat_req_someiptp_832 TP header format
ST-CONF-007 Reserved ID Handling feat_req_someipids_* Reserved values respected

7.2.2 Behavior Conformance Tests

Test ID Test Case Specification Section Acceptance Criteria
ST-BEH-001 Request/Response Pattern feat_req_someip_329 Header construction per spec
ST-BEH-002 Fire&Forget Pattern feat_req_someip_345 No response, correct type
ST-BEH-003 Event Pattern feat_req_someip_354 Replication handling
ST-BEH-004 Field Getter/Setter feat_req_someip_631-635 Correct payloads
ST-BEH-005 Error Processing Flow feat_req_someip_718 Error check order
ST-BEH-006 SD Startup Phases feat_req_someipsd_68 Initial/Repetition/Main
ST-BEH-007 SD Timing Parameters feat_req_someipsd_62-65 INITIAL_DELAY randomization

7.2.3 Robustness Tests

Test ID Test Case Requirement Acceptance Criteria
ST-ROB-001 Malformed Message Handling feat_req_someip_721 E_MALFORMED_MESSAGE
ST-ROB-002 Unknown Service Response feat_req_someip_816 E_UNKNOWN_SERVICE (optional)
ST-ROB-003 Unknown Method Response feat_req_someip_816 E_UNKNOWN_METHOD (optional)
ST-ROB-004 Protocol Version Mismatch feat_req_someip_703 Correct version in response
ST-ROB-005 Interface Version Mismatch feat_req_someip_92 E_WRONG_INTERFACE_VERSION
ST-ROB-006 Invalid Length Handling feat_req_someip_798 Ignore if length < 8
ST-ROB-007 TP Error Recovery feat_req_someiptp_792 Buffer overflow prevented
ST-ROB-008 SD Invalid Option feat_req_someipsd_1142 Unknown option ignored
ST-ROB-009 SD Conflicting Options feat_req_someipsd_1144 Entry rejected/ignored

7.2.4 Performance Tests

Test ID Test Case Metric Acceptance Criteria
ST-PERF-001 Message Throughput Messages/sec ≥10,000 msg/s
ST-PERF-002 Serialization Latency μs/message ≤100 μs
ST-PERF-003 Request/Response Latency Round-trip time ≤5 ms (localhost)
ST-PERF-004 SD Discovery Time Time to discover ≤INITIAL_DELAY + margin
ST-PERF-005 TP Reassembly Rate MB/s ≥10 MB/s
ST-PERF-006 Concurrent Connections Connection count ≥100 simultaneous
ST-PERF-007 Memory Usage Bytes/connection ≤1 MB
ST-PERF-008 CPU Utilization % under load ≤50% single core

7.3 System Test Implementation

Location: tests/system/, tests/specification_test.py Framework: Python pytest + custom harness Coverage Target: All specification requirements covered


8. Level 5: Acceptance Testing

8.1 Purpose

Final validation that the implementation meets all stakeholder requirements.

8.2 Acceptance Criteria Categories

8.2.1 Protocol Interoperability

Objective: Implementation can communicate with other SOME/IP stacks

Criteria ID Acceptance Criteria Validation Method
AC-INT-001 Messages parseable by third-party tools (Wireshark) Manual verification
AC-INT-002 Interoperable with reference implementation Cross-stack testing
AC-INT-003 SD messages understood by other SD implementations Cross-vendor testing
AC-INT-004 TP segmented messages correctly reassembled by others Cross-vendor testing

8.2.2 Specification Compliance

Objective: 100% compliance with mandatory requirements

Criteria ID Acceptance Criteria Validation Method
AC-SPEC-001 All CRITICAL requirements implemented Traceability matrix
AC-SPEC-002 All HIGH requirements implemented Traceability matrix
AC-SPEC-003 Message format byte-exact to specification Bit-level comparison
AC-SPEC-004 SD behavior matches specification state machines Behavioral testing
AC-SPEC-005 TP handling matches specification algorithms Algorithmic testing

8.2.3 Functional Completeness

Objective: All specified features work correctly

Criteria ID Acceptance Criteria Validation Method
AC-FUNC-001 Request/Response RPC operational Integration test
AC-FUNC-002 Fire&Forget RPC operational Integration test
AC-FUNC-003 Events/Notifications operational Integration test
AC-FUNC-004 Fields (getter/setter/notifier) operational Integration test
AC-FUNC-005 Service Discovery operational Integration test
AC-FUNC-006 TP segmentation/reassembly operational Integration test
AC-FUNC-007 UDP transport operational Integration test
AC-FUNC-008 TCP transport operational Integration test

8.2.4 Quality Attributes

Objective: Non-functional requirements met

Criteria ID Acceptance Criteria Validation Method
AC-QUAL-001 No memory leaks under sustained operation Valgrind/ASAN
AC-QUAL-002 No crashes under malformed input Fuzz testing
AC-QUAL-003 Thread-safe operation Concurrent testing
AC-QUAL-004 Deterministic behavior Repeated testing
AC-QUAL-005 Graceful degradation under overload Stress testing

8.2.5 Documentation and Traceability

Objective: Complete documentation and requirement coverage

Criteria ID Acceptance Criteria Validation Method
AC-DOC-001 All APIs documented Documentation review
AC-DOC-002 All requirements traced to tests Traceability matrix
AC-DOC-003 Test results documented Test reports
AC-DOC-004 Known limitations documented Release notes

8.3 Acceptance Test Execution

8.3.1 Pre-Acceptance Checklist

  • All Level 1-4 tests pass
  • Code coverage ≥90%
  • No critical or high severity defects open
  • All documentation complete
  • Traceability matrix updated

8.3.2 Acceptance Test Procedure

  1. Protocol Conformance Verification
  2. Run conformance test suite
  3. Verify Wireshark dissection
  4. Generate compliance report

  5. Functional Acceptance

  6. Execute all integration tests
  7. Verify all use cases
  8. Document results

  9. Performance Acceptance

  10. Run performance benchmarks
  11. Verify against thresholds
  12. Document metrics

  13. Quality Acceptance

  14. Run static analysis
  15. Execute memory checks
  16. Complete fuzz testing

  17. Final Sign-Off

  18. Review all results
  19. Document deviations
  20. Obtain stakeholder approval

9. Test Environment Requirements

9.1 Hardware Requirements

  • Multi-core CPU (≥4 cores) for concurrent testing
  • ≥8 GB RAM for large message testing
  • Network interface with multicast support
  • Optional: Multiple network interfaces for multi-ECU simulation

9.2 Software Requirements

  • C++17 compatible compiler
  • CMake ≥3.14
  • Python ≥3.8
  • Google Test framework
  • pytest + pytest-cov
  • Wireshark (for protocol verification)
  • Valgrind/AddressSanitizer (for memory testing)

9.3 Network Configuration

  • Loopback interface for local testing
  • Multicast routing enabled
  • Configurable firewall for port access
  • Network simulation tools (optional)

10. Test Execution and Reporting

10.1 Continuous Integration

# Example CI Pipeline
stages:
  - build
  - unit-test
  - component-test
  - integration-test
  - system-test
  - acceptance-check

10.2 Test Commands

# Level 1: Unit Tests
cd build && ctest --output-on-failure

# Level 2: Component Tests
python tests/run_tests.py --component-only

# Level 3: Integration Tests
python tests/run_tests.py --integration-only

# Level 4: System Tests
python tests/run_tests.py --specification-only --conformance-only

# Level 5: Acceptance Tests
python tests/run_tests.py --all --generate-coverage-report

10.3 Reporting

  • Test Results: JUnit XML format
  • Coverage Reports: HTML + LCOV format
  • Traceability Reports: Markdown + CSV
  • Compliance Reports: Per-requirement status

11. Requirement Traceability

11.1 Specification to Test Mapping

Specification Section Requirement Range Test Suites
Message Format feat_req_someip_29-164 UT-MSG-, CT-MSG-, ST-CONF-*
Serialization feat_req_someip_167-299 UT-SER-, CT-MSG-
Transport Bindings feat_req_someip_315-449 CT-UDP-, CT-TCP-, IT-RPC-*
RPC Protocol feat_req_someip_313-443 CT-RPC-, IT-RPC-
Service Discovery feat_req_someipsd_1-900 UT-SD-, CT-SD-, IT-SD-*
Transport Protocol feat_req_someiptp_759-820 UT-TP-, CT-TP-, IT-TP-*
Error Handling feat_req_someip_364-443 ST-ROB-*
Reserved IDs feat_req_someipids_504-875 ST-CONF-007

11.2 Gap Analysis

Current implementation gaps requiring future work: - E2E Protection: Not implemented (feat_req_someip_102-103) - IPv6 Support: Limited (feat_req_someipsd_140-164) - Load Balancing Option: Informational only (feat_req_someipsd_145-175)


12. Appendices

Appendix A: Complete Requirement IDs Reference

See TRACEABILITY_MATRIX.md for full requirement mapping.

Appendix B: Test Data Specifications

  • Valid message examples
  • Boundary condition data
  • Malformed message examples
  • Large payload test data

Appendix C: Glossary

  • ECU: Electronic Control Unit
  • SD: Service Discovery
  • TP: Transport Protocol
  • RPC: Remote Procedure Call
  • TTL: Time To Live
  • BOM: Byte Order Mark

Document Control

Version Date Author Description
1.0 2025-12-13 Test Team Initial version based on Open SOME/IP Specification

This test plan ensures comprehensive validation of the SOME/IP stack implementation against the Open SOME/IP Specification, following industry-standard V-Model methodology.