# New Model for Defining and Implementing Performance Tests
## 3 Problem Formulation and Proposed Solution
### Topological Pattern of Performance Test Execution
During testing, data such as load on individual system parts, response times, traffic saturation, resource occupancy, switching times, etc. are collected, among other things. Protocols such as SNMP, RestAPI, SSH, for instance, can be used for this purpose. The DATA ANALYZER visualizes and collates the results obtained. Depending on the adopted architecture, it can also enable automation of the evaluation of the functioning of the system under test through the use of machine learning mechanisms. When designing the framework, it was intended to achieve the greatest possible versatility, i.e., the ability to adapt and apply in different environments and to test a wide range of IT system components, such as servers, network applications, and network devices. The entire test definition process is shown in Figure 5. In the first step, the team selects the objective of test execution \(a_{1}\), and then in step 2 a set of performance test types that will achieve the selected test objective \(\{t_{0},t_{2},t_{3},t_{4},t_{5},t_{6}\}\). In the next step, the topological pattern of test execution is determined for each element of the set \(T\) (in Figure 5, steps 3 and 4 are considered for the element \(t_{0}\)). In the example given in Figure 5, the test topology consists of all layers, i.e., \(\{L_{1},L_{2},L_{3}\}\). Of course, it is possible to develop a test that will contain only two layers, for instance: \(\{L_{1},L_{3}\}\). In step 4, the elements of the sets \(G,N,C\) that allow the test to be realized are determined. It is also possible to use an abbreviated form of description of the test vector realizing the goal:  
\[ \begin{array}{c}a_{1}=t_{0}\{L_{1}(g_{0},g_{2},\ldots),L_{2}(n_{0},n_{1}, \ldots),L_{3}(c_{2},c_{3}\ldots)\}+\\ t_{2}\{L_{1}(g_{0},g_{3},\ldots),L_{3}(c_{1},c_{3}\ldots)\}+\\ \vdots\\ t_{6}\{L_{1}(g_{4},g_{5},\ldots),L_{2}(n_{0},n_{7},\ldots),L_{3}(c_{2},c_{3} \ldots)\}.\end{array} \]  
After precisely defining the objectives and test sets, they can be executed for a given IT system. As a result of conducting these tests, outcomes will be obtained for the test sets \(t\) defined for the specific objectives \(a\). Based on the analysis of these results, the development team can determine the minimum acceptable threshold values that will indicate the system's readiness for production implementation. These values can be determined experimentally, based on client requirements or the experience of the project team developing the system. Figure 5: Steps in the test definition process. In summary, in order to achieve high-quality and reliable systems, it is necessary to precisely execute different types of performance, load, stress, and other relevant tests, with the right methodology and tools, tailored to the specific needs of the software under test. However, selecting the right methodology and tools can be challenging as it depends on the specific project requirements, system characteristics, and testing objectives. For example, in the case of an operational e-learning platform, we focused primarily on testing its resilience under high network traffic, as this is the most common type of load the platform experiences in practice. As a result of this approach, a kind of reference model of test execution was created in which each step can be treated as a separate layer. Thanks to this, analogous to the ISO/OSI reference model [36; 37], it is possible to apply specialization in knowledge and technology for individual layers, which results in the possibility of flexibility in managing human teams and outsourcing certain elements of the testing process.