Scalable techniques for analysing and testing asynchronous software systems

This thesis is about scalable analysis and testing techniques for asynchronous programs. Due to their highly-concurrent nature, the number of states that such programs can reach grows exponentially (in the worst case) with program size, leading to state-space explosion. For this reason, searching th...

Full description

Bibliographic Details
Main Author: Deligiannis, Pantazis
Other Authors: Donaldson, Alastair F. ; Cadar, Cristian
Published: Imperial College London 2016
Subjects:
Online Access:https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.718414
id ndltd-bl.uk-oai-ethos.bl.uk-718414
record_format oai_dc
spelling ndltd-bl.uk-oai-ethos.bl.uk-7184142018-10-09T03:25:03ZScalable techniques for analysing and testing asynchronous software systemsDeligiannis, PantazisDonaldson, Alastair F. ; Cadar, Cristian2016This thesis is about scalable analysis and testing techniques for asynchronous programs. Due to their highly-concurrent nature, the number of states that such programs can reach grows exponentially (in the worst case) with program size, leading to state-space explosion. For this reason, searching the state-space of real-world asynchronous programs to find bugs is computationally expensive, and thus it is important to develop analysis and testing techniques that can scale well. However, techniques typically scale by sacrificing precision. Detecting only true bugs - versus reporting a large number of false alarms - is crucial to increasing the productivity of developers. Alas, finding the fine balance between precision and scalability is a challenging problem. Motivated by this challenge, we focus on developing tools and techniques for analysing and testing two different kinds of real-world asynchronous programs: device drivers and distributed systems. In this thesis we make the following three original contributions: 1. A novel symbolic lockset analysis that can detect all potential data races in a device driver. Our analysis avoids reasoning about thread interleavings and thus scales well. Exploiting the race-freedom guarantees provided by our analysis, we achieve a sound partial-order reduction that significantly accelerates Corral, an industrial-strength bug-finder for concurrent programs. 2. The design and implementation of P#, a new programming language for building, analysing and testing asynchronous programs. The novelty of P# is that it is comes with a static data race analysis and controlled testing infrastructure, which makes a strong move towards building highly-reliable asynchronous programs. 3. A new approach for partially-modelling and testing production-scale asynchronous distributed systems using P#. We report our experience of applying P# on Azure Storage vNext, a cloud storage system developed inside Microsoft, and show how P# managed to detect a subtle liveness bug that had remained unresolved even after months of troubleshooting using conventional testing techniques.005.3Imperial College Londonhttps://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.718414http://hdl.handle.net/10044/1/48042Electronic Thesis or Dissertation
collection NDLTD
sources NDLTD
topic 005.3
spellingShingle 005.3
Deligiannis, Pantazis
Scalable techniques for analysing and testing asynchronous software systems
description This thesis is about scalable analysis and testing techniques for asynchronous programs. Due to their highly-concurrent nature, the number of states that such programs can reach grows exponentially (in the worst case) with program size, leading to state-space explosion. For this reason, searching the state-space of real-world asynchronous programs to find bugs is computationally expensive, and thus it is important to develop analysis and testing techniques that can scale well. However, techniques typically scale by sacrificing precision. Detecting only true bugs - versus reporting a large number of false alarms - is crucial to increasing the productivity of developers. Alas, finding the fine balance between precision and scalability is a challenging problem. Motivated by this challenge, we focus on developing tools and techniques for analysing and testing two different kinds of real-world asynchronous programs: device drivers and distributed systems. In this thesis we make the following three original contributions: 1. A novel symbolic lockset analysis that can detect all potential data races in a device driver. Our analysis avoids reasoning about thread interleavings and thus scales well. Exploiting the race-freedom guarantees provided by our analysis, we achieve a sound partial-order reduction that significantly accelerates Corral, an industrial-strength bug-finder for concurrent programs. 2. The design and implementation of P#, a new programming language for building, analysing and testing asynchronous programs. The novelty of P# is that it is comes with a static data race analysis and controlled testing infrastructure, which makes a strong move towards building highly-reliable asynchronous programs. 3. A new approach for partially-modelling and testing production-scale asynchronous distributed systems using P#. We report our experience of applying P# on Azure Storage vNext, a cloud storage system developed inside Microsoft, and show how P# managed to detect a subtle liveness bug that had remained unresolved even after months of troubleshooting using conventional testing techniques.
author2 Donaldson, Alastair F. ; Cadar, Cristian
author_facet Donaldson, Alastair F. ; Cadar, Cristian
Deligiannis, Pantazis
author Deligiannis, Pantazis
author_sort Deligiannis, Pantazis
title Scalable techniques for analysing and testing asynchronous software systems
title_short Scalable techniques for analysing and testing asynchronous software systems
title_full Scalable techniques for analysing and testing asynchronous software systems
title_fullStr Scalable techniques for analysing and testing asynchronous software systems
title_full_unstemmed Scalable techniques for analysing and testing asynchronous software systems
title_sort scalable techniques for analysing and testing asynchronous software systems
publisher Imperial College London
publishDate 2016
url https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.718414
work_keys_str_mv AT deligiannispantazis scalabletechniquesforanalysingandtestingasynchronoussoftwaresystems
_version_ 1718772309684125696