Software performance faults have severe consequences for users, developers, and companies. One way to unveil performance faults before they manifest in production is performance testing, which ought to be done on every new version of the software, ideally on every commit. However, performance testing faces multiple challenges that inhibit it from being applied early in the development process, on every new commit, and in an automated fashion. In this dissertation, we investigate three challenges of software microbenchmarks, a performance testing technique on unit granularity which is predominantly used for libraries and frameworks. The studied challenges affect the quality aspects (1) runtime, (2) result variability, and (3) performance ch...
Ensuring that software performance does not degrade after a code change is paramount. A potential so...
Broadly, agile software development is an approach where code is frequently built, tested and shippe...
The development cycle of large software is necessarily prone to introducing software errors that are...
Software performance faults have severe consequences for users, developers, and companies. One way t...
Software performance changes are costly and often hard to detect pre-release. Similar to software te...
Rigorous performance engineering traditionally assumes measur- ing on bare-metal environments to con...
Regression testing comprises techniques which are applied during software evolution to uncover fault...
Software performance is critical for how end-users perceive the quality of software products. Perfo...
Degradation of software performance can become costly for companies and developers, yet it is hardly...
Software on modern computer systems is ubiquitous in our daily lives, running on a wide range of dev...
Performance problems in applications should ideally be detected as soon as they occur, i.e., directl...
Performance is a crucial non-functional requirement of many software systems. Despite the widespread...
Continuous\ua0integration (CI) emphasizes quick feedback to developers. This is at odds with current...
Performance bugs are unnecessarily inefficient code chunks in software codebases that cause prolonge...
Executing software microbenchmarks, a form of small-scale performance tests predominantly used for l...
Ensuring that software performance does not degrade after a code change is paramount. A potential so...
Broadly, agile software development is an approach where code is frequently built, tested and shippe...
The development cycle of large software is necessarily prone to introducing software errors that are...
Software performance faults have severe consequences for users, developers, and companies. One way t...
Software performance changes are costly and often hard to detect pre-release. Similar to software te...
Rigorous performance engineering traditionally assumes measur- ing on bare-metal environments to con...
Regression testing comprises techniques which are applied during software evolution to uncover fault...
Software performance is critical for how end-users perceive the quality of software products. Perfo...
Degradation of software performance can become costly for companies and developers, yet it is hardly...
Software on modern computer systems is ubiquitous in our daily lives, running on a wide range of dev...
Performance problems in applications should ideally be detected as soon as they occur, i.e., directl...
Performance is a crucial non-functional requirement of many software systems. Despite the widespread...
Continuous\ua0integration (CI) emphasizes quick feedback to developers. This is at odds with current...
Performance bugs are unnecessarily inefficient code chunks in software codebases that cause prolonge...
Executing software microbenchmarks, a form of small-scale performance tests predominantly used for l...
Ensuring that software performance does not degrade after a code change is paramount. A potential so...
Broadly, agile software development is an approach where code is frequently built, tested and shippe...
The development cycle of large software is necessarily prone to introducing software errors that are...