for simplification we are looping on the same test practicallyit could be about various unique test classes and their objects while ( )tc tc(tc settm(tmtm settc(tctc setup(tc execute(tc teardown(in the above python codethe user of the framework first creates instances of class reporterclass db and class testmanager and registers these classes with each other with the help of setreporter()setdb(and settm(methods when the test category starts executionthe testmanager class and the tc class register with each other tc class first calls the setup(method which in turn requests the testmanager class (the mediatorto be prepared for reporting of the test execution results using the preparereporting(method preparereporting(method of the testmanagerthe mediator classcommunicates with the other colleagues (class reporter and class dbin the system by calling the prepare(and insert(methods execute(method of class tc is responsible for running the tests when the test execution is getting finishedteardown(method of class tc is calledwhich in turn calls the publishreport(method of the mediator (class testmanagerwhich communicates with the colleagues (class reporter and class dbfor preparing the report and getting the execution status in the database (by calling the prepare(and update(methods respectivelyalsoduring insert()if communication between class tc (colleagueand class testmanager (mediatorfailsthe next step in test execution is conveyed of this failure by this exampleit can be understood that the communication between colleagues in the system (class tcclass reporter and class dbcan easily be achieved by the mediator (class testmanagerand the possibility of the complexity that could arise as result of communication between colleagues without the mediator is avoided this example also demonstrates the capability of two way interaction between the colleague and the mediator with the help of communication failure case between class tc and class testmanager www testingperspective com