# New Model for Defining and Implementing Performance Tests
## 3 Problem Formulation and Proposed Solution
### Dependency Matrix of Objectives and Test Types  
The names of the above tests are often used interchangeably, which is a mistake, since each has a specific purpose, even though they share some common aspects. Unlike functional tests, which have clearly defined objectives (pass/fail criteria), load test objectives (e.g., performance requirements) are not formally defined. The problem lies in the lack of an official, formal standard for load testing. Developers, when creating systems or applications, can use the ISO/IEC 25010 standard [32], which defines quality characteristics for software evaluation. However, testers must rely on their own experience when it comes to performance/load/stress tests. In order to organize this process, the authors proposed a m matrix of dependencies of objectives and a given type of testing. This approach makes it possible to precisely define the scope of test work carried out depending on the objectives of a given test scenario and the customer's requirements. It should be noted that the matrix shown in Figure 1 can take different forms depending on the entities or teams in which it is implemented. The example test objectives presented in Figure 1 are taken from the publication [29]. The proposed matrix consists of two main elements. The first is a set \(T=\{t_{0},t_{1},\ldots t_{m}\}\), \(m\in\mathbb{N}\) whose elements denote specific types of performance tests that check specific performance parameters of the system or its components. In the example given, we used a set of predefined tests (seven different tests). It should be noted that the set of tests can grow and depend on the particular organization or project team. The second set \(A=\{a_{0},a_{1},\ldots a_{n}\}\), \(n\in\mathbb{N}\) is the set of test objectives defined by the organization--also, this set can change over time and evolve. Figure 1 shows a matrix that juxtaposes the sets \(T\) and \(A\). The matrix consists of rows corresponding to objectives and columns corresponding to test types. Each row of the matrix contains a colored marker that indicates whether a test type needs to be included to achieve a given test objective. For instance, as you can see in Figure 1, stress tests check elements related to the resilience of the system to operate under extreme conditions including network problems. In the case of performance testing, the tester will rather focus on determining the response time of the entire system or individual components in the case of handling packets depending on their size. In the case of load testing, the tester also examines the response time and resilience of the system, taking into account the load close to that predicted during real system operation. The use of such a matrix very precisely defines the objectives of the tests, the components, and the ways of carrying out the given scenarios. At this point, it should be emphasized that the dependency matrix with objectives and test suites must be created independently by the project team in order to meet the specific requirements of the application under development. These requirements can, for example, be defined internally by the development team or by the customer. A single requirement can directly translate into a single test objective or multiple test objectives. The matrix presented in Figure 1 is an example of a matrix built for the objectives defined in the publication [29] with a test set developed based on the experience of the authors of this article. Once prepared, the matrix can be used repeatedly during the project and operation of the system. In addition, it essentially facilitates the analysis of test results by the development team. During the test implementation of the developed matrix in the web-based system that improves the quality and effectiveness of educational services for primary school students in the field of robotics and programming [33] the need to modify the form of the set \(T\) to the matrix was identified:  
\[T=\left\{