PAST - Profile-based Algorithm for Scheduling Tests, Intelligent Test Scheduling in the Cloud
Abstract
Computer technology is an essential part of today's society with more and more critical infrastructure and important services being moved to the Internet every day. This widespread use of the Internet has increased the need for scalable hardware and software that can process a lot of traffic at the same time while not using excessive energy. This has contributed to the meteoric rise of cloud computing, and many companies are moving their applications and services to data centers. With computers and the Internet being such important parts of all areas of society, it is crucial that new software is tested before being shipped to the Internet. This is where software testing comes in, with most modern IT solutions having automated tests that often run in the cloud. These tests are triggered when changes to the code are uploaded to its repository, and are often running on the same cloud environment as the company's other applications and services. This project seeks to combine efficient power-saving strategies for cloud environments with software testing by developing an algorithm that schedules tests according to how resource demands change during their run-time. It does this by using workload profiles that are defined by how the resource usage of a given test changes over time, which differs from traditional workload profiles that often represent the resource demand as a static number. The goal is to use these profiles to make a schedule that allows compatible tests to be executed simultaneously on one server without exceeding limits on resource use.