This scenario describes how the Test or QM component will interact with the Build component in order to coordinate proper lifecycle processing of build output. The scenario is made up of several interactions.
Test component queries Build component in order to discover available builds that it can register to receive notifications about. Part of this interaction involves answering the question about how the QM component is associated with the Build component. Must they share the same project? Can this query span across multiple projects? Can a Test component query multiple Build components in order to find builds of interest?
Test component calls Build component to register interest in events related to a specific build. Care must be taken in the format used to register interest in a build. It would be inefficient if the Test component was notified for every single build job completion. So the identifier used to register interest in a build must be sufficiently narrow to facilitate notification only when the specific build is completed.
Build component posts event to Test component once the build that Test has registered interest in has completed.
Test component receives event posting to tell it that the build it registered interest in has completed. The Test component probably needs to maintain some kind of mapping between builds that it has registered interest in receiving notifications for, and actions that it expects to take on the results of the build.
Test component queries Build component to retrieve additional information about the build that generated the completion event. Specific additional information is to be defined. Examples include location of build output, a list of work items included in the build, list of changed files in the build, and indication of build health.
After Test component processes the build, it posts back to the Build component additional information that is to be stored in the build record. Examples of this kind of information include summary results from tests executed against that build.