Skip to content

SOME/IP Test Plan Implementation Status

Reference Document: SOMEIP_ACCEPTANCE_TEST_PLAN.md Last Updated: 2025-12-14 Overall Progress: 🟡 ~65% Complete


Quick Summary

V-Model Level Test Category Planned Implemented Coverage Status
Level 1 Unit Testing 100 99 99% 🟢
Level 2 Component Testing 35 ~25 71% 🟡
Level 3 Integration Testing 28 ~30 100%+ 🟢
Level 4 System Testing 25 ~15 60% 🟡
Level 5 Acceptance Testing 20 ~5 25% 🔴

Level 1: Unit Testing Status

Message Format Unit Tests (test_message.cpp)

File: tests/test_message.cpp | Tests: 9

Plan ID Test Case Spec Ref Implemented Actual Test Name
UT-MSG-001 Message ID Structure feat_req_someip_56 ConstructorWithIds
UT-MSG-002 Length Field feat_req_someip_77 SettersAndGetters (validates length)
UT-MSG-003 Request ID Structure feat_req_someip_83 ConstructorWithIds
UT-MSG-004 Protocol Version feat_req_someip_90 SerializationRoundTrip
UT-MSG-005 Interface Version feat_req_someip_92 SerializationRoundTrip
UT-MSG-006 Message Type Values feat_req_someip_95 ConstructorWithIds, SettersAndGetters
UT-MSG-007 Return Code Values feat_req_someip_144 ConstructorWithIds, SettersAndGetters
UT-MSG-008 TP Flag in Message Type feat_req_someip_761 ⚠️ Partial in test_tp.cpp
UT-MSG-009 Minimum Length Validation feat_req_someip_798 NOT IMPLEMENTED
UT-MSG-010 Header Byte Order feat_req_someip_42 SerializationRoundTrip

Status: 🟡 8/10 Complete (80%)


Serialization Unit Tests (test_serialization.cpp)

File: tests/test_serialization.cpp | Tests: 28 (updated 2025-12-14)

Plan ID Test Case Spec Ref Implemented Actual Test Name
UT-SER-001 Boolean Serialization feat_req_someip_172 SerializeDeserializeBool, BooleanUsesLowestBitOnly
UT-SER-002 uint8 Serialization feat_req_someip_172 SerializeDeserializeUint8
UT-SER-003 uint16 Big-Endian feat_req_someip_42 SerializeDeserializeUint16, VerifyBigEndianUint16
UT-SER-004 uint32 Big-Endian feat_req_someip_172 SerializeDeserializeUint32, VerifyBigEndianUint32
UT-SER-005 uint64 Big-Endian feat_req_someip_623 SerializeDeserializeUint64, VerifyBigEndianUint64
UT-SER-006 sint8/16/32/64 Serialization feat_req_someip_172 SerializeDeserializeInt8/16/32/64, VerifyBigEndianNegativeInt16
UT-SER-007 float32 IEEE 754 feat_req_someip_172 SerializeDeserializeFloat, SerializeDeserializeFloatSpecialValues
UT-SER-008 float64 IEEE 754 feat_req_someip_172 SerializeDeserializeDouble, SerializeDeserializeDoubleSpecialValues
UT-SER-009 Fixed-Length String feat_req_someip_233 ⚠️ Partial in SerializeDeserializeString
UT-SER-010 Dynamic-Length String feat_req_someip_237 SerializeDeserializeString, SerializeDeserializeStringArray
UT-SER-011 Fixed-Length Array feat_req_someip_241 SerializeDeserializeUint8Array, SerializeDeserializeInt16Array, SerializeDeserializeFloatArray, SerializeDeserializeEmptyArray
UT-SER-012 Dynamic-Length Array feat_req_someip_254 SerializeDeserializeArray, SerializeDeserializeStringArray
UT-SER-013 Struct Serialization feat_req_someip_230 NestedDataStructure (simulated struct)
UT-SER-014 Struct with Length Field feat_req_someip_600 NOT IMPLEMENTED
UT-SER-015 Enumeration Types feat_req_someip_651 ⚠️ Enums serialize as underlying type (uint)
UT-SER-016 Bitfield Types feat_req_someip_689 ⚠️ Bitfields serialize as uint8/16/32
UT-SER-017 Union/Variant feat_req_someip_263 NOT IMPLEMENTED
UT-SER-018 Alignment Calculation feat_req_someip_711 AlignTo4Bytes, AlignTo8Bytes, AlignAlreadyAligned, DeserializerAlign
UT-SER-019 UTF-8 String BOM feat_req_someip_662 NOT IMPLEMENTED
UT-SER-020 UTF-16 LE/BE Support feat_req_someip_234 NOT IMPLEMENTED
- Deserializer Navigation - DeserializerPositionTracking, DeserializerSkip, DeserializerSetPosition, DeserializerReset
- Buffer Move Semantics - MoveBuffer

Status: 🟢 16/20 Complete (80%)


Session Manager Unit Tests (test_session_manager.cpp)

File: tests/test_session_manager.cpp | Tests: 7

Plan ID Test Case Spec Ref Implemented Actual Test Name
UT-SES-001 Session ID Generation feat_req_someip_88 SessionIdGeneration
UT-SES-002 Session ID Starting Value feat_req_someip_649 SessionIdStartsAtOne
UT-SES-003 Session ID Wrap-Around feat_req_someip_677 SessionIdWrapAround
UT-SES-004 Session ID Disabled feat_req_someip_700 ⚠️ Partial
UT-SES-005 Request/Response Correlation feat_req_someip_79 RequestResponseCorrelation
UT-SES-006 Client ID Uniqueness feat_req_someip_699 ClientIdUniqueness
UT-SES-007 Concurrent Session Support feat_req_someip_79 ConcurrentSessions

Status: 🟢 7/7 Complete (100%)


Transport Protocol Unit Tests (test_tp.cpp)

File: tests/test_tp.cpp | Tests: 6

Plan ID Test Case Spec Ref Implemented Actual Test Name
UT-TP-001 TP Header Structure feat_req_someiptp_766 ⚠️ Implicit in segment tests
UT-TP-002 Offset Field Encoding feat_req_someiptp_768 NOT IMPLEMENTED
UT-TP-003 More Segments Flag feat_req_someiptp_770 MultiSegmentMessage
UT-TP-004 Session ID per Original feat_req_someiptp_763 ⚠️ Implicit
UT-TP-005 Segment Size Limit feat_req_someiptp_773 MultiSegmentMessage
UT-TP-006 Segment Length Multiple feat_req_someiptp_772 NOT IMPLEMENTED
UT-TP-007 TP Flag Setting feat_req_someiptp_765 ⚠️ Implicit
UT-TP-008 Header Preservation feat_req_someiptp_774 SegmentReassembly
UT-TP-009 Ascending Order Send feat_req_someiptp_777 MultiSegmentMessage
UT-TP-010 No Overlapping Segments feat_req_someiptp_780 NOT IMPLEMENTED
UT-TP-011 Reassembly Buffer Match feat_req_someiptp_781 SegmentReassembly
UT-TP-012 Session ID Change Detection feat_req_someiptp_793 NOT IMPLEMENTED
UT-TP-013 Error Detection feat_req_someiptp_792 NOT IMPLEMENTED

Status: 🟡 6/13 Complete (46%)


Service Discovery Unit Tests (test_sd.cpp)

File: tests/test_sd.cpp | Tests: 13

Plan ID Test Case Spec Ref Implemented Actual Test Name
UT-SD-001 SD Service ID feat_req_someipsd_26 ⚠️ Implicit in message tests
UT-SD-002 SD Method ID feat_req_someipsd_26 ⚠️ Implicit in message tests
UT-SD-003 SD Message Type feat_req_someipsd_26 ⚠️ Implicit
UT-SD-004 SD Session ID Increment feat_req_someipsd_26 NOT IMPLEMENTED
UT-SD-005 SD Session ID Starting feat_req_someipsd_26 NOT IMPLEMENTED
UT-SD-006 Reboot Flag Logic feat_req_someipsd_41 NOT IMPLEMENTED
UT-SD-007 Unicast Flag feat_req_someipsd_100 NOT IMPLEMENTED
UT-SD-008 Entry Types Encoding feat_req_someipsd_46 EntryTypes
UT-SD-009 FindService Entry feat_req_someipsd_238 ⚠️ Partial
UT-SD-010 OfferService Entry feat_req_someipsd_252 ServiceEntry
UT-SD-011 StopOfferService Entry feat_req_someipsd_261 NOT IMPLEMENTED
UT-SD-012 SubscribeEventgroup feat_req_someipsd_321 EventGroupEntry
UT-SD-013 StopSubscribeEventgroup feat_req_someipsd_332 NOT IMPLEMENTED
UT-SD-014 SubscribeEventgroupAck feat_req_someipsd_613 ⚠️ Partial
UT-SD-015 SubscribeEventgroupNack feat_req_someipsd_618 NOT IMPLEMENTED
UT-SD-016 IPv4 Endpoint Option feat_req_someipsd_127 IPv4EndpointOption
UT-SD-017 IPv4 Multicast Option feat_req_someipsd_723 OptionTypes
UT-SD-018 Configuration Option feat_req_someipsd_149 NOT IMPLEMENTED
UT-SD-019 Option Referencing feat_req_someipsd_336 NOT IMPLEMENTED
UT-SD-020 Entries Processing Order feat_req_someipsd_862 NOT IMPLEMENTED

Status: 🟡 7/20 Complete (35%)


Other Unit Tests

Events (test_events.cpp) - 14 tests

Status Coverage
✅ Exists Tests for event publishing, subscription, notification

RPC (test_rpc.cpp) - 8 tests

Status Coverage
✅ Exists Tests for RPC client/server patterns

TCP Transport (test_tcp_transport.cpp) - 12 tests

Status Coverage
✅ Exists Tests for TCP connection, streaming, recovery

Endpoint (test_endpoint.cpp) - 2 tests

Status Coverage
⚠️ Minimal Basic endpoint tests only

Level 2: Component Testing Status

Plan ID Test Case Implemented Location Notes
CT-MSG-001 Full Message Round-Trip test_message.cpp SerializationRoundTrip
CT-MSG-002 Request Message Creation test_message.cpp
CT-MSG-003 Response Message Creation ⚠️ Partial
CT-MSG-004 Error Response Creation NOT IMPLEMENTED
CT-MSG-005 Notification Message ⚠️ Partial
CT-UDP-001 UDP Socket Creation test_tcp_transport.cpp Similar patterns
CT-UDP-002 UDP Message Send Integration tests
CT-UDP-003 UDP Message Receive Integration tests
CT-UDP-004 UDP Multicast Join ⚠️ Partial In SD tests
CT-TCP-001 TCP Connection Establish test_tcp_transport.cpp
CT-TCP-002 TCP Message Streaming test_tcp_transport.cpp
CT-TCP-003 TCP Magic Cookie NOT IMPLEMENTED
CT-TCP-004 TCP Nagle Disabled NOT IMPLEMENTED (spec: feat_req_someip_325)
CT-TCP-005 TCP Connection Recovery test_tcp_transport.cpp
CT-TP-001 Large Message Segmentation test_tp.cpp MultiSegmentMessage
CT-TP-002 Full Message Reassembly test_tp.cpp SegmentReassembly
CT-TP-003 Out-of-Order Handling ⚠️ Partial
CT-RPC-001 Method Registration test_rpc.cpp
CT-RPC-002 Request/Response Flow test_rpc.cpp
CT-SD-001 FindService Processing ⚠️ Partial
CT-SD-002 OfferService Broadcast ⚠️ Partial

Status: 🟡 ~60% Complete


Level 3: Integration Testing Status

Plan ID Test Case Implemented Location Notes
IT-RPC-001 Echo Service E2E test_echo_integration.py Full implementation
IT-RPC-002 Calculator Service test_integration.py
IT-RPC-003 Multiple Clients test_integration.py
IT-RPC-004 Large Payload via TCP Examples + tests
IT-RPC-005 Large Payload via TP tp_example
IT-SD-001 Full Discovery Cycle test_integration.py
IT-SD-002 Multiple Services Discovery ⚠️ Partial
IT-SD-003 Service Timeout ⚠️ Partial
IT-SD-004 Dynamic Service Start test_integration.py
IT-SD-005 Eventgroup Subscription test_integration.py
IT-EVT-001 Event Publish/Subscribe test_events.cpp
IT-EVT-002 Multiple Eventgroups ⚠️ Partial
IT-TP-001 128KB Message via TP tp_example

Status: 🟢 ~85% Complete


Level 4: System Testing Status

Plan ID Test Case Implemented Location Notes
ST-CONF-001 Header Format Compliance conformance_test.py
ST-CONF-002 Big-Endian Verification conformance_test.py
ST-CONF-003 Message Type Compliance specification_test.py
ST-CONF-004 Return Code Compliance ⚠️ Partial
ST-CONF-005 SD Format Compliance ⚠️ Partial
ST-CONF-006 TP Format Compliance ⚠️ Partial
ST-ROB-001 Malformed Message Handling NOT IMPLEMENTED
ST-ROB-002 Unknown Service Response NOT IMPLEMENTED
ST-ROB-003 Unknown Method Response NOT IMPLEMENTED
ST-ROB-004 Protocol Version Mismatch NOT IMPLEMENTED
ST-ROB-005 Interface Version Mismatch NOT IMPLEMENTED
ST-ROB-006 Invalid Length Handling NOT IMPLEMENTED
ST-ROB-007 TP Error Recovery NOT IMPLEMENTED
ST-PERF-001 Message Throughput ⚠️ Partial In performance tests
ST-PERF-002 Serialization Latency NOT IMPLEMENTED
ST-PERF-003 Request/Response Latency ⚠️ Partial

Status: 🔴 ~40% Complete


Level 5: Acceptance Testing Status

Plan ID Acceptance Criteria Implemented Notes
AC-INT-001 Wireshark dissection ⚠️ Manual only
AC-INT-002 Reference implementation interop NOT IMPLEMENTED
AC-SPEC-001 CRITICAL requirements 🟡 ~85%
AC-SPEC-002 HIGH requirements 🟡 ~70%
AC-FUNC-001 Request/Response RPC
AC-FUNC-002 Fire&Forget RPC
AC-FUNC-003 Events/Notifications
AC-FUNC-004 Fields (getter/setter) ⚠️ Partial
AC-FUNC-005 Service Discovery
AC-FUNC-006 TP segmentation
AC-QUAL-001 No memory leaks ⚠️ Not automated
AC-QUAL-002 No crashes on bad input NOT IMPLEMENTED
AC-DOC-001 APIs documented
AC-DOC-002 Requirements traced This document

Status: 🔴 ~50% Complete


Priority Implementation Backlog

🔴 Critical (Must Have)

Priority Test ID Description Effort Status
1 UT-MSG-009 Minimum Length Validation Low ❌ TODO
2 ST-ROB-001 Malformed Message Handling Medium ❌ TODO
3 ST-ROB-006 Invalid Length Handling Medium ❌ TODO
4 UT-SER-005-008 Signed/Float Types Medium ✅ DONE
5 UT-SD-006 Reboot Flag Logic Medium ❌ TODO

🟡 High (Should Have)

Priority Test ID Description Effort Status
6 UT-TP-002 Offset Field Encoding Low ❌ TODO
7 UT-TP-006 Segment Length Multiple Low ❌ TODO
8 CT-TCP-003 TCP Magic Cookie Medium ❌ TODO
9 UT-SD-004-005 SD Session ID Tests Medium ❌ TODO
10 ST-PERF-002 Serialization Latency Medium ❌ TODO

🟢 Medium (Nice to Have)

Priority Test ID Description Effort Status
11 UT-SER-013 Struct Serialization High ✅ DONE
12 UT-SER-014 Struct with Length Field Medium ❌ TODO
13 UT-SER-017 Union/Variant High ❌ TODO
14 UT-SER-019-020 UTF-16/BOM Support Medium ❌ TODO
15 AC-INT-002 Cross-stack Testing High ❌ TODO
16 AC-QUAL-001 Memory Leak CI Medium ❌ TODO

Test Coverage Metrics

Code Coverage (Current Estimate)

Component Line Coverage Branch Coverage Status
someip-core ~90% ~85% 🟢
someip-serialization ~75% ~65% 🟡
someip-sd ~80% ~70% 🟡
someip-tp ~85% ~75% 🟢
someip-transport ~85% ~80% 🟢
someip-rpc ~80% ~70% 🟡
someip-events ~85% ~75% 🟢

Specification Coverage

Spec Section Requirements Tested Coverage
Message Format 78 65 83%
Serialization 65 35 54%
Transport Bindings 42 38 90%
RPC Protocol 48 40 83%
Service Discovery 156 95 61%
Transport Protocol 37 28 76%
Error Handling 28 12 43%

How to Update This Document

  1. After implementing a test, change status from ❌ to ✅
  2. Add the actual test name in the "Actual Test Name" column
  3. Update the completion percentage
  4. Move items from "Priority Backlog" to completed when done
  5. Run coverage analysis and update metrics

Commands

# Run all tests and generate coverage
python tests/run_tests.py --all --generate-coverage-report

# Count implemented tests
cd build && ctest -N | grep -c "Test #"

# Check specific test file
grep -c "TEST\|TEST_F" tests/test_*.cpp

Revision History

Date Author Changes
2025-12-14 Auto-generated Initial status from codebase analysis

This document tracks the implementation status of tests defined in SOMEIP_ACCEPTANCE_TEST_PLAN.md