Testing using manually generated test cases is the primary technique used in industry to improve reliability of software---in fact, such ad hoc testing accounts for over half of the typical cost of software development. We propose new methods for systematically and automatically testing sequential and concurrent programs. The methods are based on three new techniques: concolic testing, race-detection and flipping, and predictive monitoring. Concolic testing combines concrete and symbolic testing to avoid redundant test cases as well as false warnings. Concolic testing can catch generic errors such as assertion violations, uncaught exceptions, and segmentation faults. Large real-world programs are almost always concurrent. Because of the ...
The current increased demand for distributed applications in domains such as web services and cloud ...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
We present an algorithm for automatic testing of distributed programs, such as Unix processes with i...
Testing using manually generated test cases is the primary technique used in industry to improve rel...
Testing using manually generated test cases is the primary technique used in industry to improve rel...
Testing using manually generated test cases is the primary technique used in industry to improve rel...
Testing concurrent programs that accept data inputs is no-toriously hard because, besides the large ...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
Testing concurrent programs that accept data inputs is notoriously hard because, beside the large nu...
With the increasing dependency on software systems, we require them to be reliable and correct. Sof...
[[abstract]]Verification and validation are two important technologies to assure the reliability and...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
Today's software systems often have poor reliability. In addition to losses of billions, software de...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...
The current increased demand for distributed applications in domains such as web services and cloud ...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
We present an algorithm for automatic testing of distributed programs, such as Unix processes with i...
Testing using manually generated test cases is the primary technique used in industry to improve rel...
Testing using manually generated test cases is the primary technique used in industry to improve rel...
Testing using manually generated test cases is the primary technique used in industry to improve rel...
Testing concurrent programs that accept data inputs is no-toriously hard because, besides the large ...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
Testing concurrent programs that accept data inputs is notoriously hard because, beside the large nu...
With the increasing dependency on software systems, we require them to be reliable and correct. Sof...
[[abstract]]Verification and validation are two important technologies to assure the reliability and...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
Today's software systems often have poor reliability. In addition to losses of billions, software de...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...
The current increased demand for distributed applications in domains such as web services and cloud ...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
We present an algorithm for automatic testing of distributed programs, such as Unix processes with i...