The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
In order to get students interested in STEM (Science, Technology, Engineering, and Math) areas and to increase preparedness in STEM subjects for successful college education, we developed a STEM curriculum connecting music based on Lego® NXT robots and Java MIDI programming. Through this, we are able to teach the STEM subjects in-depth and create interactive musical robots by emphasizing the computer...
In Java, type resolution is a function that takes a reference to a type occurring in a given context as input, and returns the canonical form of that type. This information is fundamental to static analysis - a "must have" function underlying virtually all forms of semantic-based analysis. In the case of Java, this function is also complex and it is quite common to encounter tools where...
Software systems use several third party libraries via their available interfaces popularly known as the application programming interface (API). The runtime usage of the API in an object-oriented software system can be defined by several characteristics including the type and number of API objects created, the methods invoked on those objects, and the source code locations from where the objects...
Knowledge, skill and attitude are three necessary ingredients for the success of fresh graduates both in terms of learning and employability. It is important to identify suitable teaching methodology to impart transferable skills to the participants. Outcome based curricula and experiential learning pedagogies create positive influence among participants towards learning. In this paper, Java web development...
Mutation testing is a fault based testing technique that helps generating effective test cases for software under test. Mutation testing is computationally expensive by nature, which is the biggest hindrance in getting acceptability in Software industry. Evolutionary testing provides foundation to automate the test case generation process. Using evolutionary testing in conjunction with mutation testing...
This paper presents an approach for model specification in the context of Model Checking, using graph grammars. The choice for this formal method is justified by the visual language provided by Graph Grammar and the possibility of using it to check properties of a system. Our approach is based on the analysis of a graph grammar obtained from trace information generated by Java applications. The process...
To improve tamper resistance of programs against illegal modification, this paper proposes instruction folding applicable to Java platform. In the proposed method, at first, similar methods are selected in a Java program. Next, these methods are merged into one method and diffs among these methods are stored in the program. Then, at runtime, when one of the merged methods is executed, diffs are restored...
In this paper, the work addresses the notion of generating test cases by applying Q-learning algorithm in source code to obtain the optimal solution. The test cases are generated manually using the state diagram and automatically using obtained optimal solution from Q-learning algorithm. Here, the shortest path algorithm is chosen and the optimal solution is obtained for each and every initial states...
Dynamic program analysis tools serve many important software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. Many dynamic analysis tools rely on program instrumentation and are implemented using low-level instrumentation libraries, resulting in tedious and error-prone tool development. The recently released Domain-Specific Language for Instrumentation...
The behavior of a software system often depends on how that system is configured. Small configuration errors can lead to hard-to-diagnose undesired behaviors. We present a technique (and its tool implementation, called ConfDiagnoser) to identify the root cause of a configuration error — a single configuration option that can be changed to produce desired behavior. Our technique uses static analysis,...
This paper presents ConfDiagnoser, an automated configuration error diagnosis tool for Java software. Conf-Diagnoser identifies the root cause of a configuration error — a single configuration option that can be changed to produce desired behavior. It uses static analysis, dynamic profiling, and statistical analysis to link the undesired behavior to specific configuration options. ConfDiagnoser differs...
When programs fail in the field, developers are often left with limited information to diagnose the failure. Automated error reporting tools can assist in bug report generation but without precise steps from the end user it is often difficult for developers to recreate the failure. Advanced remote debugging tools aim to capture sufficient information from field executions to recreate failures in the...
We introduce a family of coverage criteria, called Multi-Point Stride Coverage (MPSC). MPSC generalizes branch coverage to coverage of tuples of branches taken from the execution sequence of a program. We investigate its potential as a replacement for dataflow coverage, such as def-use coverage. We find that programs can be instrumented for MPSC easily, that the instrumentation usually incurs less...
Performance bugs are programming errors that create significant performance degradation. While developers often use automated oracles for detecting functional bugs, detecting performance bugs usually requires time-consuming, manual analysis of execution profiles. The human effort for performance analysis limits the number of performance tests analyzed and enables performance bugs to easily escape...
Although many programming languages and test coverage criteria currently exist, most coverage measurement tools only support select programming languages and coverage criteria. Consequently, multiple measurement tools must be combined to measure coverage for software which uses multiple programming languages such as web applications. However, such combination leads to inconsistent and inaccurate measurement...
We present a novel and general technique for automated test generation that combines tight bounds with incremental SAT solving. The proposed technique uses incremental SAT to build test suites targeting a specific testing criterion, amongst various black-box and white-box criteria. As our experimental results show, the combination of tight bounds with incremental SAT, and the testing criterion driven...
Test case generation is an important but tedious task, such that researchers have devised many different prototypes that aim to automate it. As these are research prototypes, they are usually only evaluated on a few hand-selected case studies, such that despite great results there remains the question of usability in the "real world". EVOSUITE is such a research prototype, which automatically...
EvoSuite is a mature research prototype that automatically generates unit tests for Java code. This paper summarizes the results and experiences in participating at the unit testing competition held at SBST 2013, where EvoSuite ranked first with a score of 156.95.
SAT-based bounded verification of annotated code consists of translating the code together with the annotations to a propositional formula, and analyzing the formula for specification violations using a SAT-solver. If a violation is found, an execution trace exposing the failure is exhibited. Code involving linked data structures with intricate invariants is particularly hard to analyze using these...
Garbage collectors automatically manage memory in an elegant way. However, finalization performs poorly in reclaiming finite system resources such as file descriptors and database connections, especially in Java. Resource leaks degrade application performance and can even result in system crashes. Unfortunately, it is hard to test resource leaks because they have no immediate symptoms. In this paper,...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.