In the lab, the most common scenario is to have a pseudo-random bit sequence (PRBS), and usually the sequence is 2^31-1 bits long. This makes both the generation (on the transmit side) and error-rate detection (on the receive side) reasonably straightforward, although it can be tricky to read out every one of the receive channels to check the bit-error rate (BER).
Here's typical PRBS BER equipment: https://www.anritsu.com/en-us/test-measurement/products/mp19...
Spoiler alert: The test equipment isn't cheap.
Edit: Probably should mention- PRBS from a linear-feedback shift register is used, because in a PRBS of 2^N-1 you are guaranteed every permutation of N bits long, except for N x zeroes in a row. This measures the wideband system, so if there are spurious resonances in the wide pass band, errors will result.
> instead you use a randomly generated symbol/bit sequence which fits into the memory of the DAC.
How do you guarantee coverage of the entire spectrum? As I mentioned above, PRBS(N) has every bit sequence possible for N bits, which would expose any drop outs or resonances.
> so one wants to measure down to error rates of 10e-9 unlike coherent systems.
Back in the day, for OC-768 (40 Gbps/43 Gbps with FEC) equipment was measured to 10e-12. Has that relaxed? [IIRC, to gain 95% confidence that BER is 10e-9, you had to measure 10e10 bits. Similarly, for 95% confidence of BER 10e-12 you had to measure 10e13 bits. It's been a while though.]
In other experiments people show FEC implementations running on banks of FPGAs to show that we actually get down to BER 10e-12, but these take weeks on large number of high end FPGAs.
Lab testing of this scale of transmission involves a bit of “educated simplification”. We had some hundreds of wavelength channels, 37 fiber cores and two polarizations to fill with data. That is not realistic to actually do within our budget, so instead e split the system into components where there is no interference. For example, if there is different data on all neighboring cores compared to the core-under-test, then we dare to assume that the interference is random, without considering neighbors’ neighbor etc.
This reduces our perspective to a single channel under test with known data and then at least one other channel which is just there as “noise” for the other channels. The goal is to make the channel-under-test have a realistic “background noise” from neighboring interference. This secondary signal is sometimes a time-delayed version, sometimes a completely independent (but real) data signal.
This left us with a single signal of 32 GBd (giga symbols / s). This is doable on high-performance signal generators and samplers.
(And yes, that took forever. A shout out to A. A. Jørgensen and D. Kong for their endurance in that.)
In a deployed system this would be done by specific Asics that take millions to develop and are comparatively inflexible. Thus if you want to test/research methods you use the above mentioned equipment which gives much more flexibility.