I've recently encountered this scenario in my exam preparation for a certification and I'm trying to understand how to coordinate testing of shared components across multiple software teams.
Team A is developing System A, which includes two components, X and Y. X depends on Y. Team A developed component X.
Team B is developing System B, which also includes the same two components, X and Y. X depends on Y. Team B developed component Y.
How should the testing of all this be coordinated?
Some of the possible ways were:
- Team A tests component Y and Team B tests component X concurrently. Another words, each team is testing the other team's component at the same time. This is a type of asynchronous process.
- Team B tests component Y first, then after that passes, Team A tests component X because X depends on Y. This is a type of synchronous process.
- Both teams collaborately work together testing the two components regardless of who developed it.
I am not a tester. I'm a developer. I don't coordinate testing activities. I've read that the old school method was to test synchronously and in isolation. So Y would be tested before X because X depends on Y. But it was shown this wasn't a good use of resources. A more modern approach has been to collaborate between teams.
Which one of these three scenarios seems best and is there a better approach than what I've listed?
I'm now referencing this article, Enabling Collaborative Testing across Shared Components
Distribute test effort and share results for common components to improve test quality. More specifically, when two or more component-based systems use at least one common component, developers ofthe systems can collaborate in the testing of the common component. i) Improve the quality of compatibility testing of component-based systems; and ii) boost the efficiency of testing software system configurations. The goal of this research is to develop automated collaborative testing theories and tools for individual developers of shared software components, so that their testing practice can be more efficient