For a long time, most applications were developed as large monoliths or systems of large modules, in which the processing of user requests could be represented as a procedure. And for testing, it was enough to check the application response for the user and the changes in the database. Based on this model, you can write test cases or checklists.
Today we see in use microservice architecture or the actor model with asynchronic messages, that can be lost during transmission or double operated and produce various complex effects. In this case, the classic application model is no longer sufficient for developing application testing - it does not provide an idea of the problems that arise. Other models are needed that are adequate to the applied programming paradigms, based on which it is possible to develop scripts for checking complex cases that ensure the stable operation of the application in complex situations. Such models will be discussed in my talk.