Let's suppose a developer begins working on a new feature. They create a new branch. The team also has a CI server where they build and test new features.
While the developer is writing code, QA-engineers need to write automated acceptance tests for this feature (we work by Scrum). Do these tests need to be added to the branch in which the developer implements the feature? If yes, then how is it technically done - does the developer merge tests into his branch (from a QA-engineer's branch for the feature) or what? If no, then how CI knows which tests for which branch to run? (For example, how does CI knows that these new tests should only be run for that branch where the feature is being implemented, and should not be run for all other branches?)