A vacuum fixture uses a bed of nails and sucks the unit under test down onto the pogo pins.
In the old days, a functional tester would isolate the processor (tristate the buses), and exercise all the peripherals and memory with emulated processor I/O cycles.
Much harder to do today, with higher levels of integration, so JTAG is used much more.