Skip to content

BSL v1.0 Test Readiness Review

ckrup edited this page Jan 16, 2025 · 17 revisions

1. Agenda

  • Agenda
  • Review Board
  • Software Overview
  • Documents
  • Requirements
  • Improvements
  • Defect Corrections
  • Sustaining Activities
  • Other
  • Test Objectives
  • Test Environment
  • Key/New Test Cases
  • Test Personnel
  • Test Effort Rationale
  • Test Constraint And Risks
  • Action Item Status
  • Deviations

2. Review Board

Review Board Chair Jamie Seung Shin
(Optional) MGSS Chief Engineer Michele Vogt
MGSS Deputy Chief Engineer Kyran Owen-Mankovich
MGSS Assurance Engineer Eva Bokor
MGSS Cybersecurity Engineer Mike Pajevski
ASEC/ASIS SE Ken Gieselman
Task Manager Chris Krupiarz
Task Lead Brian Sipos

3. Software Overview

The BPSec Library (BSL) is a software library (v1.0) and an implementation of Bundle Protocol Security (BPSec), which is the standardized mechanism for BPv7 bundle-layer security as specified in the IETF RFC 9172. The BPv7 transport protocol was developed as part of an overall Delay-Tolerant Networking (DTN) architecture for data exchange in challenging communications environments. BPv7 has been baselined for use in a variety of NASA and other space agency missions such as NASA’s LunaNet and ESA’s Moonlight projects, and has been recommended for a variety of other IOAG and CCSDS space-networked architectures and functions.

The BPv7 protocol data unit is the Bundle, and bundles are comprised of multiple Blocks of information. An application that produces, processes, and/or delivers bundles in compliance with the BPv7 specification is called a Bundle Protocol Agent (BPA). BPSec defines special extension blocks that carry cryptographic information related to other blocks in the same bundle. All standards-compliant BPAs must be able to process BPSec blocks in a received bundle if required by the security policy of the BPA. This project will create a BPSec Library (BSL) that implements a general-purpose BPSec security block processor.

Release information for the software can be found in the BSL docs repository.

4. Documents

Title Document Number
BSL TIP DOC-005726
BSL CONOPS DOC-005727
BSL SRD DOC-005735
BSL SIS DOC-005835
BSL Test Plan DOC-TBD
BSL Test Specification Document DOC-TBD

5. Requirements

This section has no updates because this is the initial release, and there have been no changes from the baseline as of yet.

The following table is the sections of requirements and how many requirements per section.

Area Number of Requirements
General (GEN) 20
Security Service (SSF) 9
Error and Safety (ERR) 10
BPA Interface (BIN) 13
Crypto Interface (CIN) 5
Policy Interface (PIN) 6
Telemetry Interface (TIN) 1
Logging Interface (LIN) 4
Service (SVC) 4
Configuration (CFG) 7
Performance (PFR) 2
Security (SEC) 2
Adaptability (ADP) 4

All requirements are mapped to a specific test case via the BSL Test Matrix. This matrix shows the requirement, the description, the verification procedure, the verification type, and the test type. The test types are described in further detail below.

6. Improvements

This section has no updates because this is the initial release, and there have been no changes from the baseline as of yet.

7. Defect Corrections

This section has no updates because this is the initial release, and there have been no changes from the baseline as of yet.

8. Sustaining Activities

This section has no updates because this is the initial release and there have been no changes from the baseline as of yet.

9. Other

ID Title Status Test Case ID(s)
N/A N/A

10. Test Objectives

The BSL is a library and the objective of testing is to ensure the library performs its expected behaviors in accordance with the requirements.

11. Test Environment

The overall purpose is to make test results reproducible for the users. All testing happens as a single library instance on a single "mock BPA" node. There are no requirements or expectations about integrating with any particular real BPA or any multiple node test cases. Certain requirements for the overall environment are as follows:

  • Must be RedHat Enterprise 9
  • Must have FIPS 140 enabled at OS install
  • Must have SE Linux enabled
  • Since the BSL software will be configuration managed as rpm packages, the test executor must interact with tests via command prompt/terminal

Note that we describe in more detail the Test Environment in the Acceptance Test Plan.

The source code for testing is currently in the BSL private repository. This repository will become public at a TBD date.

12. Key/New Test Cases

BSL requirements are verified via two Key Test Cases/Types:

  • Mock BPA
  • Unit Test

Mock BPA

The test team performs black box testing through a simulated Bundle Protocol Agent called the Mock BPA. Testers input a predefined bundle hex string into the Mock BPA and observe the resultant bundle modified by the BSL and outputted by the BPA. An example case for such usage is when a block needs to be removed from a bundle.

Unit Tests

Since BSL is a library it contains some functionality that is not visible using the Mock BPA only. For those tests, the test teams reuses unit tests created by the software developers. These unit tests are independently reviewed by the test team to ensure that the tests operate as defined

There are no requirements or expectations about integrating with any particular real BPA or any multiple node test cases.

13. Test Personnel

Person Role Expected Testing Time
Chris Krupiarz Task Manager 60 hours
Brian Sipos Task Cognizant Engineer and Test Lead 50 hours
Bill Van Besien BSL Developer 30 hours

This adds up to more than the 72.5 staff hours below as that is test execution time. Additional staff time is allocated here to identify the bundles that are needed for the Mock BPA input, dry runs, bug fixes, and review of unit tests. Sufficient budget remains for conducting the testing. All three testers are allocated in the current BSL staff plan for working on this project.

14. Test Effort Rationale

Milestone Estimated Date
TRR 1/16/2025
BSL SW delivered 1/30/2025
Begin test execution 3/3/2025
End test execution 5/8/2025
Test Closure Report 5/21/2025
DDR 5/29/2024

For test effort amount, the estimate is that each test will likely take a minimal amount of time per test execution, e.g. 5 minutes, and there are 87 tests to complete for a total effort of 435 minutes or 72.5 staff hours.

There are no external organization dependencies.

15. Test Constraint And Risks

Because the BSL is a library and its Mock BPA can operate in isolation, testing doesn't require external systems or resources. The lack of constraints means there are no risks to being able to execute the tests.

16. Action Item Status

This is the initial release so there are no action items from previous release.

17. Deviations

This is the initial release so there are no deviations from previous release. We are treating the need for an architecture description as being fulfilled by PDR presentation. Design specifications will be fulfilled by CDR.

Clone this wiki locally