## 4 Data Representation: Runtime Events and Dataset
### Execution Trace (Level 1)  
This top level represents all monitored runtime events, which are grouped into one of four different categories. Equation (1) shows the four letters represented in \(\sum_{1}\). An execution trace will be a sequence of these four letters; each letter represents one of the four high-level major classes of runtime execution events. The execution trace can be used to present the runtime execution behavior of the test case. At this level, the details are hidden or encoded in one of four classes: \(C_{1}\), \(C_{2}\), \(C_{3}\), and \(C_{4}\), with one English letter (\(\{A,D,S,E\}\)) representing each of these classes. These classes are described as follows:  
1. **Resources and Allocations.** This major category encompasses most of the allocation activities that may occur during program execution, including the allocations of various data structures, objects, and other miscellaneous resources such as files, large integers, threads, etc. These resources are often needed during the execution of the program under test. Our experimentation shows that different programs and test cases require various execution resources, which may affect the testing time and quality. This category is encoded with one letter \(A\); see Equation (1).
2. **Data-Structure Operations.** This major category encompasses most heap activities and operations related to dynamic data structures, excluding the allocation aspects. Some test cases may utilize these data structures in distinct ways. In some instances, these data-structure operations are sub-optimal and require tuning. Different programs and test cases employ different types of data structures and different patterns of access for effective problem-solving. By monitoring, tracing, and evaluating the utilization of these data structures, we can identify algorithm-tuning approaches during software development, potentially impacting software performance optimization, testing time, and quality. This category is encoded with one letter \(D\); see Equation (1).
3. **String Processing and Operations.** This major category encompasses most of the specialized operations related to string processing, regular expressions, and pattern matching. Sometimes, these operations play a crucial role in problem-solving techniques, which individuals or groups of test cases can target. Identifying and optimizing these cases can be a challenging task whenever these test cases utilize any of these string-processing techniques as part of their applied solutions. Our experiments reveal that different programs and test cases may require various types of specialized string-related data processing. By identifying and evaluating these specific use cases, we can uncover algorithm-tuning approaches during software development, which may affect the testing time and quality. This category is encoded with the letter \(S\); see Equation (1).
4. **General Evaluation and Operations.** This major category encapsulates most of the remaining activities not covered in the previous three categories. Identifying the test cases that are mostly evaluation-focused can be challenging. Various test cases might employ and process the algorithmic solutions differently. Identifying and optimizing these test cases whenever the execution-trace string shows excessive use of these operations can be helpful during testing and development. Identifying and evaluating these test cases can help identify some algorithm-tuning approaches during the solution, which may affect the software quality as well as the testing time and quality. This category is encoded with the letter \(E\); see Equation (1).