QA мог бы тестировать несколько сборок в любой момент. Например, 1.0.1 (обновление bugfix), и 1.1 (обновление основной функции). Это значительно упрощает вещи иметь отдельное оборудование для каждого "канала".
Чтобы дать Вам больше примера реального мира, Chrome имеет три "канала": стабильный, бета и разработчик. Разумно, что каждый из них имел бы их собственные отдельные серверы тестирования (если бы это была программа, которая потребовала сервера).
Подсчитайте совпадающие строки и установите код выхода на его основе в блоке END {...}
:
perl -ne '/AAA/ && /BBB/ && print && $MATCH++; END{exit 1 unless $MATCH>0}' file