In the previous post, we explained what is model testing. One of the oracles based on model testing is the Interaction Model Oracle. The post is aligned with the Black Box Software Testing Foundations course (BBST) designed by Rebecca Fiedler, Cem Kaner, and James Bach.
In the interaction model, we look system under test as the sum of subsystems, or we look at how the system under test interacts with other external systems.
The system under test has a video search feature. That feature contacts external system Youtube using Youtube API. The user search term is redirected to Youtube using API, and Youtube results are fetched back also using Youtube API.
Internal interaction is when the user requests a password reset, email to the user should be sent with password reset one time URL.
Using automation, we can test for interactions much more thoroughly than simple manual tests. Knowing the API parameters, we can do better test coverage than just using the UI interface because on the UI interface we do not know about those API parameters. An example is the Youtube API restriction parameter that returns different results depending on what we use for search: video URL, video code or just search term.
In complicated interactions between systems or subsystems, we could get false alarms or missed bugs. Creating a complicated interaction model (for example, low-level protocol in the embedded device), could take a lot of time, so prioritization is essential.