Predictive and programmable testing of concurrent and cloud systems

作者: Pallavi Joshi , Koushik Sen

DOI:

关键词:

摘要: Today's software systems often have poor reliability. In addition to losses of billions, defects are responsible for a number serious injuries and deaths in transportation accidents, medical treatments, defense operations. The situation is getting worse with concurrency distributed computing becoming integral parts many real-world systems. non-determinism concurrent the unreliability hardware environment which they operate can result that hard find understand. In this thesis, we developed tools techniques augment testing enable it quickly reproduce important bugs Our based on following two key ideas: (i) use program analysis increase coverage by predicting could occurred "nearby" executions, (ii) provide programming abstractions testers easily express their insights guide towards those executions more likely exhibit or help achieve objectives without having any knowledge about underlying process. built found large (e.g. Jigsaw web server, JDK, JGroups, Hadoop File System). first part describe how predict confirm did not show up during but shown had under consideration executed different thread schedules. This improves testing, helps corner-case unlikely be discovered traditional testing. We predictive classes like deadlocks, hangs, typestate errors second investigate improve efficiency cloud letting interesting them. For example, tester might want test erroneous her objectives. frameworks intuition investigated programmable context large-scale

参考文章(99)
David Hovemeyer, Finding Concurrency Bugs in Java ,(2004)
Stephen P. Masticola, Static detection of deadlocks in polynomial time Rutgers University. ,(1993) , 10.7282/T3-95QX-2391
Naveen Sastry, Pete Broadwell, Jonathan Traupman, FIG: A Prototype Tool for Online Verification of Recovery Mechanisms ,(2002)
George Candea, Armando Fox, None, Crash-only software hot topics in operating systems. pp. 12- 12 ,(2003)
Anand Raman, Jon Patrick, Palmerston North, The sk-strings method for inferring PFSA ,(1997)
Mahadev Konar, Benjamin Reed, Flavio P. Junqueira, Patrick Hunt, ZooKeeper: wait-free coordination for internet-scale systems usenix annual technical conference. pp. 11- 11 ,(2010)
Raja Vallee-Rai, Patrick Lam, Vijay Sundaresan, Laurie Hendren, Phong Co, Etienne M. Gagnon, Soot---a java optimization framework conference of the centre for advanced studies on collaborative research. ,(1999)
Van-Anh Truong, Luiz Barroso, Murray Stokely, Sean Quinlan, Carrie Grimes, Daniel Ford, Florentina I. Popovici, François Labelle, Availability in globally distributed storage systems operating systems design and implementation. pp. 61- 74 ,(2010) , 10.5555/1924943.1924948
Robert DeLine, Manuel Fähndrich, Typestates for Objects european conference on object-oriented programming. ,vol. 3086, pp. 465- 490 ,(2004) , 10.1007/978-3-540-24851-4_21
Koushik Sen, Grigore Roşu, Gul Agha, Online Efficient Predictive Safety Analysis of Multithreaded Programs tools and algorithms for construction and analysis of systems. pp. 123- 138 ,(2004) , 10.1007/978-3-540-24730-2_9