Initial situation:
We are developing a software platform where products can be generated by configuring different components and adding additional ones. The platform is developed several years by a little developer team. Now the platform is more and more used, we get new developers as well as testers. We are currently developing a concept for developer. Cause is, that we do not have much developer tests for our components.
The tester team uses automated UI testing tools to test the products emitted by the platform.
Our goal:
We want to motivate our team members to write more tests to achive
- shorten feedback cycles
- reduce bug count for new features
- reduce regressions
The question:
We want to begin figuring out brittle components. After we have found them, we want to write integration tests for the component which describes expected features. Now we have the following problem: We can test the component for itself and mock all dependencies to other components. We can test the component with all directly depend components. We can test the component with the completely dependency structure of it - so its dependencies and their dependencies... We can test the component in the context of different product configurations.
Which one would be the best to achieve our goals and at the same time minimize the effort needed by our team members to configure the tests?