Yu Lei, R. Carver, D. Kung, Vidur Gupta, Monica Hernandez
{"title":"A State Exploration-Based Approach to Testing Java Monitors","authors":"Yu Lei, R. Carver, D. Kung, Vidur Gupta, Monica Hernandez","doi":"10.1109/ISSRE.2006.9","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.9","url":null,"abstract":"A Java monitor is a Java class that defines one or more synchronized methods. Unlike a regular object, a Java monitor object is intended to be accessed by multiple threads simultaneously. Thus, testing a Java monitor can be significantly different from testing a regular class. In this paper, we propose a state exploration-based approach to testing a Java monitor. A novel aspect of our approach is that during exploration, threads are introduced on-the-fly, and as needed, to simulate race conditions that can occur when multiple threads try to access a monitor object at the same time. Furthermore, each transition is defined in a way such that the behavior of the threads along each path can be precisely characterized and controlled. We describe a prototype tool called MonitorExplorer and report three case studies that are designed to provide an initial evaluation of our approach","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129544184","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Using Historical In-Process and Product Metrics for Early Estimation of Software Failures","authors":"Nachiappan Nagappan, T. Ball, Brendan Murphy","doi":"10.1109/ISSRE.2006.50","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.50","url":null,"abstract":"The benefits that a software organization obtains from estimates of product quality are dependent upon how early in the product cycle that these estimates are available. Early estimation of software quality can help organizations make informed decisions about corrective actions. To provide such early estimates we present an empirical case study of two large scale commercial operating systems, Windows XP and Windows Server 2003. In particular, we leverage various historical in-process and product metrics from Windows XP binaries to create statistical predictors to estimate the post-release failures/failure-proneness of Windows Server 2003 binaries. These models estimate the failures and failure-proneness of Windows Server 2003 binaries at statistically significant levels. Our study is unique in showing that historical predictors for a software product line can be useful, even at the very large scale of the Windows operating system","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"131 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131976831","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Alfredo Capozucca, N. Guelfi, Patrizio Pelliccione, A. Romanovsky, A. Zorzo
{"title":"CAA-DRIP: a framework for implementing Coordinated Atomic Actions","authors":"Alfredo Capozucca, N. Guelfi, Patrizio Pelliccione, A. Romanovsky, A. Zorzo","doi":"10.1109/ISSRE.2006.18","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.18","url":null,"abstract":"This paper presents an implementation framework, called CAA-DRIP, that has been defined to allow a straightforward implementation of dependable distributed applications designed using the coordinated atomic action (CAA) paradigm. CAAs provide a coherent set of concepts adapted to the design of fault tolerant distributed systems that includes: structured transactions, distribution, cooperation, competition, and forward and backward error recovery mechanisms triggered by exceptions. DRIP (dependable remote interacting processes) is an efficient Java implementation framework, which provides support for implementing \"dependable multiparty interactions (DMI)\" which includes a general exception handling mechanism. As DMI has a softer exception handling semantics with respect to CAA semantics, a CAA design can be implemented by DRIP. The aim of the CAA-DRIP framework is to provide a set of Java classes that allows programmers to implement only the semantics of CAAs with the same terminology and concepts at the design and implementation levels. The new framework simplifies the implementation phase and at the same time reduces the size of the final system since it requires fewer number of instances for creating a CAA at runtime. Details of these improvements as well as a precise description of the CAAs behaviour in terms of state charts, which is used as a reference model to define the CAA-DRIP framework, are presented in this paper","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132837051","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"An Attack Simulator for Systematically Testing Program-based Security Mechanisms","authors":"B. Breech, Mike Tegtmeyer, L. Pollock","doi":"10.1109/ISSRE.2006.12","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.12","url":null,"abstract":"The use of insecure programming practices has led to a large number of vulnerable programs that can be exploited for malicious purposes. These vulnerabilities are often difficult to find during traditional software testing. In response to these difficulties, various program-based security mechanisms have been proposed to help protect potentially vulnerable programs. Testing these security mechanisms, however, also can be difficult and is currently rather ad hoc. In this paper, we describe the design, implementation, and evaluation of an attack simulator that enables the systematic and semi-automatic testing and evaluation of the effectiveness of current and future security mechanisms by automatically providing numerous contexts for testing the reliability of the mechanisms. Capable of automatically creating attacks on running programs by dynamically adding code (but not modifying existing code), the attack simulator can run in different modes and simulate attacks at various program points systematically. Through a case study, we demonstrate how our tool can be used to test two well-known security mechanisms for stack smashing attacks in several different testing modes","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124046471","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Monitoring the Security Health of Software Systems","authors":"A. Aggarwal, P. Jalote","doi":"10.1109/ISSRE.2006.32","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.32","url":null,"abstract":"Detecting security bugs during the development cycle of a software is extremely difficult as effective testing approaches for such bugs do not exist. Applications are often deployed without being tested for security vulnerabilities even though the application domain demands highly secure software. Hence there is a need to develop systems which can monitor such applications for security violations and take immediate actions if any violation occurs. In this paper we describe an approach for monitoring the security health of a software system. Our methodology involves an agent based approach which communicates with the health monitoring system running as an independent process. We make this agent a part of the application (binary) and modify the binary at appropriate locations to transfer the control to the agent attached. The agent sends critical information regarding the execution to the monitoring system. The monitoring system analyzes the data and takes suitable actions. Currently our system monitors the following security bugs uffer overflow, race conditions (time of check to time to use vulnerability), random number vulnerability and can be extended for other vulnerabilities also","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127972268","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
E. Brottier, Franck Fleurey, Jim Steel, B. Baudry, Yves Le Traon
{"title":"Metamodel-based Test Generation for Model Transformations: an Algorithm and a Tool","authors":"E. Brottier, Franck Fleurey, Jim Steel, B. Baudry, Yves Le Traon","doi":"10.1109/ISSRE.2006.27","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.27","url":null,"abstract":"In a model-driven development context (MDE), model transformations allow memorizing and reusing design know-how, and thus automate parts of the design and refinement steps of a software development process. A model transformation program is a specific program, in the sense it manipulates models as main parameters. Each model must be an instance of a \"metamodel\", a metamodel being the specification of a set of models. Programming a model transformation is a difficult and error-prone task, since the manipulated data are clearly complex. In this paper, we focus on generating input test data (called test models) for model transformations. We present an algorithm to automatically build test models from a metamodel","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126322960","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Web Application Testing with Customized Test Requirements - An Experimental Comparison Study","authors":"S. Sampath, Sara Sprenkle, Emily Hill, L. Pollock","doi":"10.1109/ISSRE.2006.51","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.51","url":null,"abstract":"Test suite reduction uses test requirement coverage to determine if the reduced test suite maintains the original suite's requirement coverage. Based on observations from our previous experimental studies on test suite reduction, we believe there is a need for customized test requirements for Web applications. In this paper, we examine usage-based customized test requirements for the test suite reduction problem in Web application testing. We conduct an extensive experimental study to evaluate the tradeoffs between five classes of customized requirements with respect to reduced test suite size, program coverage and fault detection effectiveness. Our results show that the reduced suites' program coverage and fault detection effectiveness increases with the context or data associated with the reduction requirement. Based on our experimental results, we provide guidance to testers on the most useful test requirement for Web applications in general and provide intuition on factors testers need to consider when selecting test requirements","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126019775","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Systematic Approach to Generate Inputs to Test UML Design Models","authors":"T. Dinh-Trong, Sudipto Ghosh, R. France","doi":"10.1109/ISSRE.2006.10","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.10","url":null,"abstract":"Practical model validation techniques are needed for model driven development (MDD) techniques to succeed. This paper presents an approach to generating inputs to test UML design models that are produced in the detailed design phase of an MDD project. A symbolic execution based approach is used to derive test input constraints from the paths of a variable assignment graph, which integrates information from UML class and sequence diagrams. The constraints are solved using Alloy, a configuration constraint solver, to obtain the test inputs. The results of a pilot study carried out to explore the fault detection capability of the test inputs are reported","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133874370","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Testing During Refactoring: Adding Aspects to Legacy Systems","authors":"M. Mortensen, Sudipto Ghosh, J. Bieman","doi":"10.1109/ISSRE.2006.46","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.46","url":null,"abstract":"Moving program code that implements cross-cutting concerns into aspects can improve the maintainability of legacy systems. This kind of refactoring, called aspectualization, can also introduce faults into a system. A test driven approach can identify these faults during the refactoring process so that they can be removed. We perform systematic testing as we aspectualize commercial VLSI CAD applications. The process of refactoring these applications revealed the kinds of faults that can arise during aspectualization, and helped us to develop techniques to reduce their occurrences","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"314 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122091305","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Using CLP to Automatically Generate Test Sequences for Synchronous Programs with Numeric Inputs and Outputs","authors":"Besnik Seljimi, I. Parissis","doi":"10.1109/ISSRE.2006.49","DOIUrl":"https://doi.org/10.1109/ISSRE.2006.49","url":null,"abstract":"Lutess is a testing environment designed for synchronous software specified with Lustre, a synchronous data-flow language. It makes possible to automatically generate test input sequences in conformance with a specification of the software external behavior and of guiding directives such as operational profiles and behavioral patterns. Lutess deals with software and specifications involving only Boolean inputs and outputs. In this paper we propose an extension of Lutess, using constraint logic programming (CLP), making possible to deal with numeric inputs and outputs. In particular, we define an appropriate execution model for test input generation and show how test data generation according to the main guiding facilities of Lutess can still be performed. Furthermore, operational profile based generation becomes more powerful thanks to the introduction of CLP solvers capabilities which make possible to associate occurrence probabilities to any Boolean expression","PeriodicalId":373353,"journal":{"name":"2006 17th International Symposium on Software Reliability Engineering","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134447292","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}