# Definitions This topic describes and compares Test Harness-specific terminology. ## Sender tests vs receiver tests The terms **sender** and **receiver** refer to the institutions participating in a payment. * **Sender tests**: Payment sending institutions run "sender tests" by sending RippleNet payments with their real RippleNet Server (and integration software) to a Test Harness that simulates a payment receiver. * **Receiver tests**: Payment receiving institutions run "receiver tests" by receiving RippleNet payments with their real RippleNet Server (and integration software) from a Test Harness that simulates a payment originator. ## Inbound vs outbound The terms **inbound** and **outbound** refer to the flow of tests in relation to the Test Harness. * **Inbound**: Payment senders run “sender tests” that flow *inbound* to a Test Harness (simulating a payment receiver). * **Outbound**: Payment receivers run “receiver tests” that flow *outbound* from a Test Harness (simulating a payment sender). ## Testing terms * **Payment template set**: A file in `.csv` format with records of payment data, each represented by a Test case ID. A default payment record is used for payments that don't map to a Test case ID. * **[Project workbook](/products/payments-odl/api-docs/ripplenet/test-automation/receiver-testing#project-workbooks)**: A spreadsheet used to define RPO fields and payment data in order to generate the files needed to run receiver tests. * **Test ID**: String that represents a set of tests run with either a test profile or project workbook. * **Test case**: Payment execution test represented by a test case ID, for example, `1.01`. * **Test case ID**: Any string that matches the following (configurable) regular expression: `[\\w\\.-]*`, for example, `TC1`. A test case ID should only include letters, numbers, and the `.` and `-` characters. * **Test mode**: Active or passive. Active mode allows users to design a suite of tests to verify multiple business workflows. For more information, see [Testing basics](/products/payments-odl/api-docs/ripplenet/test-automation/test-harness-overview/testing-basics). * **Test profile**: Document that defines a set of related test cases. * **Test record**: Dynamic record (with a test ID) of the test results for both passive and active tests. * **Test type**: Sender tests or receiver tests. See [Sender tests vs receiver tests](#sender-tests-vs-receiver-tests). Define your Test case ID To run tests in active mode, the **Test case ID** must be defined within the payment's `user_info` and it must be prepended by `TCID-`. For example, if a Test Profile defines `"test_case_id": "1.01"` then `user_info` in the payment must include `{"TxId":"TCID-1.01"}`.
Sample Test Record Demonstrating Some Terms ![Test Record Demonstrating Terms](/assets/th-test-record-demonstrating-terms.aa58dc3a57f267a7b4c93dc4d630f39819da4aadb84426472cc52da03d4ab86c.e34d2f9c.png) ## RippleNet Payment Object ### Payment instructions The Test Harness refers to a "RippleNet Payment Object" or "RPO" as a *sender's payment instructions*, which is typically a subset of the [Standard RippleNet Payment Object](/products/payments-odl/api-docs/ripplenet/resources/standard-ripplenet-payment-object). These payment instructions are the **additional_info** and **user_info** (in JSON format) added by the sender during Accept quote. ### RPO schema An RPO schema is a [JSON schema](https://json-schema.org/) that defines the RPO data requirements of a particular RippleNet payment receiver. A payment receiver may use several RPO Schemas to describe the requirements for different currencies, corridors, or payment types. You can upload and select RPO schemas through the Test Harness UI.