Show simple item record

dc.contributor.advisorSussman, Alanen_US
dc.contributor.authorYOON, ILCHULen_US
dc.date.accessioned2011-02-19T07:19:35Z
dc.date.available2011-02-19T07:19:35Z
dc.date.issued2010en_US
dc.identifier.urihttp://hdl.handle.net/1903/11294
dc.description.abstractMany component-based systems are deployed in diverse environments, each with different components and with different component versions. To ensure the system builds correctly for all deployable combinations (or, configurations), developers often perform compatibility testing by building their systems on various configurations. However, due to the large number of possible configurations, testing all configurations is often infeasible, and in practice, only a handful of popular configurations are tested; as a result, errors can escape to the field. This problem is compounded when components evolve over time and when test resources are limited. To address these problems, in this dissertation I introduce a process, algorithms and a tool called Rachet. First, I describe a formal modeling scheme for capturing the system configuration space, and a sampling criterion that determines the portion of the space to test. I describe an algorithm to sample configurations satisfying the sampling criterion and methods to test the sampled configurations. Second, I present an approach that incrementally tests compatibility between components, so as to accommodate component evolution. I describe methods to compute test obligations, and algorithms to produce configurations that test the obligations, attempting to reuse test artifacts. Third, I present an approach that prioritizes and tests configurations based on developers' preferences. Configurations are tested, by default starting from the most preferred one as requested by a developer, but cost-related factors are also considered to reduce overall testing time. The testing approaches presented are applied to two large-scale systems in the high-performance computing domain, and experimental results show that the approaches can (1) identify compatibility between components effectively and efficiently, (2) make the process of compatibility testing more practical under constant component evolution, and also (3) help developers achieve preferred compatibility results early in the overall testing process when time and resources are limited.en_US
dc.titleCOMPATIBILITY TESTING FOR COMPONENT-BASED SYSTEMSen_US
dc.typeDissertationen_US
dc.contributor.publisherDigital Repository at the University of Marylanden_US
dc.contributor.publisherUniversity of Maryland (College Park, Md.)en_US
dc.contributor.departmentComputer Scienceen_US
dc.subject.pqcontrolledComputer Scienceen_US
dc.subject.pquncontrolledcompatibility testingen_US
dc.subject.pquncontrolledcomponent-based systemsen_US
dc.subject.pquncontrolledsoftware engineeringen_US
dc.subject.pquncontrolledsoftware testingen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record