Testing is an iterative process of both validating functionality and even more important attempting to break the softwareTest case is used for testing which is a set of test data and test programs (test scripts) and t...
详细信息
The addition of new thread types and new memory areas by the Real-Time Specification for java (RTSJ) [1] introduces new failure modes for existing class libraries. Existing tests for these class libraries will not cov...
详细信息
ISBN:
(纸本)9781605583372
The addition of new thread types and new memory areas by the Real-Time Specification for java (RTSJ) [1] introduces new failure modes for existing class libraries. Existing tests for these class libraries will not cover execution with RTs, NHRTs and with the Immortal and Scoped memory areas. Writing new tests to cover these new cases can take significant time and effort. This paper introduces an approach we call AutoRTUnit that allows us to get test coverage for the new thread types and memory areas by reusing existing JUnit[2] based unit tests. In our case we applied it to expand our test coverage for a subset of the non-RTSJ APIs within our RTSJ-compliant java virtual machine (JVM). Copyright 2008 ACM.
Data race occurs when multiple threads simultaneously access shared data without appropriate synchronization, and at least one is write. System with a data race is nondeterministic and may generate different outputs e...
详细信息
java PathFinder (JPF) is an explicit-state model checker for java programs. JPF implements a backtrackable java Virtual Machine (JVM) that provides non-deterministic choices and control over thread scheduling. JPF is ...
详细信息
ISBN:
(纸本)9781605580791
java PathFinder (JPF) is an explicit-state model checker for java programs. JPF implements a backtrackable java Virtual Machine (JVM) that provides non-deterministic choices and control over thread scheduling. JPF is itself implemented in java and runs on top of a host JVM. JPF represents the JVM state of the program being checked and performs three main operations on this state representation: bytecode execution, state backtracking, and state comparison. This paper summarizes four extensions that we have developed to the JPF state representation and operations. One extension provides a new functionality to JPF, and three extensions improve performance of JPF in various scenarios. Some of our code has already been included in publicly available JPF.
In generalization refactoring, preconditions and allowable source code modifications depend on type constraints of the refactroed program. Type constraints of parameterized types should be considered when applying the...
详细信息
Operations on abstract data types can be classified as either queries or updates - those that either query the current state, or update it. Modern object-oriented programminglanguages require classes/interfaces to su...
详细信息
Runtime monitoring systems play an important role in system security, and verification efforts that ensure that these systems satisfy certain desirable security properties are growing in importance. One such security ...
详细信息
ISBN:
(纸本)9781595939791
Runtime monitoring systems play an important role in system security, and verification efforts that ensure that these systems satisfy certain desirable security properties are growing in importance. One such security property is complete mediation, which requires that sensitive operations are performed by a piece of code only after the monitoring system authorizes these actions. In this paper, we describe a verification technique that is designed to check for the satisfaction of this property directly on code from java standard libraries. We describe a tool CMV that implements this technique and automatically checks shrink-wrapped java bytecode for the complete mediation property. Experimental results on running our tool over several thousands of lines of bytecode from the java libraries suggest that our approach is scalable, and leads to a very significant reduction in human efforts required for system verification. Copyright 2008 ACM.
Software programs continue to evolve throughout their lifetime. Maintenance of such evolving programs, including regression testing, is one of the most expensive activities in software development. We present an appro...
详细信息
ISBN:
(纸本)9781424421886
Software programs continue to evolve throughout their lifetime. Maintenance of such evolving programs, including regression testing, is one of the most expensive activities in software development. We present an approach and its implementation called DiffGen for automated regression unit-test generation and checking for java programs. Given two versions of a java class, our approach instruments the code by adding new branches such that if these branches can be covered by a test generation tool, behavioral differences between the two class versions are exposed. DiffGen then uses a coverage-based test generation tool to generate test inputs for covering the added branches to expose behavioral differences. We have evaluated DiffGen on finding behavioral differences between 21 classes and their versions. Experimental results show that our approach can effectively expose many behavioral differences that cannot be exposed by state-of-the-art techniques.
java is widely used because its security and platform independence. Although java's security model is designed for protecting users from untrusted sources, java's security is not under fully control at the app...
详细信息
Distributed systems are now widely accepted as a solution to many computing needs. A common distributed system architecture style used today is the three-tiered client-server style;and, a popular technology that reali...
详细信息
ISBN:
(纸本)9781605582757
Distributed systems are now widely accepted as a solution to many computing needs. A common distributed system architecture style used today is the three-tiered client-server style;and, a popular technology that realizes this style is the java Platform, Enterprise Edition (java EE) Enterprise Jav-aBeans (EJB) technology. Basic EJB-based tiered architectures, however, do not address dependability requirements completely. This paper reports on experiences in expanding a basic EJB-based three-tiered client-server architecture to incorporate an active replication strategy to address reliability and performance concerns. The strategy was developed by formally modeling the component interactions in an actively-replicated server environment and refining that formal model into an extended EJB-based system architecture and implementation. Performance statistics are presented that show the success of the active replication approach for achieving improved reliability and performance with tradeoffs between these two important system qualities. Copyright 2008 ACM.
暂无评论