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.
Detecting lock-related defects has long been a hot research topic in software engineering. Many efforts have been spent on detecting such deadlocks in concurrent software systems. However, latent locks may be hidden in application programming interface (API) methods whose source code may not be accessible to developers. Many APIs have latent locks. For example, our study has shown that J2SE alone...
This paper presents a novel reverse engineering technique for obtaining real-life event logs from distributed systems. This allows us to analyze the operational processes of software systems under real-life conditions, and use process mining techniques to obtain precise and formal models. Hence, the work can be positioned in-between reverse engineering and process mining. We present a formal definition,...
D is a new programming language. This is an object-oriented, imperative, multi-paradigm system programming language. Regression testing on D programming language still untouched by researchers. Our research attempts to bridge this gap by introducing a techniques to revalidate D programs. A framework is proposed which automates both the regression test selection and regression testing processes for...
Assessing the quality of a test suite is an important step of the testing process. Indeed, it is necessary to ensure that the different test cases target all the critical parts of the system. Model-based testing is a famous technique to perform testing. It uses a model of the system under test. Most of these models include logic formulas. Such formulas encompasses constraints to be satisfied within...
This paper provides a retrospective examination of GUI Ripping — reverse engineering a workflow model of the graphical user interface of a software application — born a decade ago out of recognition of the severe need for improving the then largely manual state-of-the-practice of functional GUI testing. In these last 10 years, GUI ripping has turned out to be an enabler for much research, both within...
Several software development techniques involve the generation of graph-based representations of a program created via static analysis. Some tasks, such as integration testing, require the creation of models that represent several parts of the system, and not just a single component or unit (e.g., unit testing). Besides being a basis for testing and other analysis techniques, an interesting feature...
We report here on our on-going work that addresses the automated analysis and test case generation for software systems modeled using multiple State chart formalisms.
Designing safety-critical automation with robust human interaction is a difficult task that is susceptible to a number of known Human-Automation Interaction (HAI) vulnerabilities. It is therefore essential to develop automated tools that provide support both in the design and rapid evaluation of such automation. The Automation Design and Evaluation Prototyping Toolset (ADEPT) enables the rapid development...
Objects in Object-Oriented languages such as Java are required to implement an equality predicate using the equals(Object) method in order to be compared with each other. This is particularly important when these objects interact with lists, sets, and maps from the Java Collection Framework. There are several considerations that must be taken in the implementation of this method, which, if ignored,...
Each refactoring implementation must check a number of conditions to guarantee behavior preservation. However, specifying and checking them are difficult. Sometimes refactoring tool developers may define overly strong conditions that prevent useful behavior-preserving transformations to be performed. We propose an approach for identifying overly strong conditions in refactoring implementations. We...
In object-oriented programs, a unit test often consists of a sequence of method calls that create and mutate objects. It is challenging to automatically generate sequences that are legal and behaviorally-diverse, that is, reaching as many different program states as possible. This paper proposes a combined static and dynamic test generation approach to address these problems, for code without a formal...
Using static analysis tools can detect software vulnerabilities, which is important for improving the security of software. Static analysis technology has developed rapidly, but the comparison and evaluation of static analysis techniques and tools are not much. This paper focuses on software vulnerability static analysis techniques and tools. First we discuss the commonly-used static analysis techniques...
Regression testing is an important but expensive stage of software maintenance. Regression test selection addresses the problem of reducing testing cost through selecting a subset of the existing test cases or rerun. Cost-effectiveness is an indispensable factor to consider when developing a regression testing technique. Cost models are created for the purpose of assessing cost-effectiveness of these...
The software life-cycle of applications supporting space missions follows a rigorous process in order to ensure the application compliance with all the specified requirements. Ensuring the correct behavior of the application is critical since an error can lead, ultimately, to the loss of a complete space mission. However, it is not only important to ensure the correct behavior of the application but...
This paper proposes a method of detecting troublesome defects in the Java source codes for enterprise systems using a model checking technique. A supporting tool also provides a function to automatically translate source code into a model which is simulated by UPPAAL model checker.
JLearn is an instructional integrated development environment to support learning in Java programming, software development and project management. JLearn is based on Eclipse and JXPro platform, thus providing a software suite that integrates source editors, compilers, error analyzer, unit-testing and life-cycle management tools to afford advanced software development and project management within...
Testability is a software characteristic that aims at producing systems easy to test. A testability antipattern is a factor that could affect negatively the testability of software. In this paper we compare the antipatterns at source code level and at different abstraction levels, in order to understand at which point they are introduced during the development.
We address the problem of rapid development of complex real-time task-sets through a Model Driven Development (MDD) approach. The task-set is specified according to the graphic formalism of timeline schemas and it is translated into C-code that implements the dynamic architecture of the task-set on top of Linux-RTAI operating system. The transformation is performed through an engine obtained as an...
In ICSE'08 we demonstrated the Java UML Lightweight Enumerator (JULE) tool, which supports compliance test generation from modeling standards specifications. When employed in our framework for software tool certification, JULE provides a powerful technology to enumerate a set of test cases that exhaustively test a modeling tool. JULE avoids combinatorial explosion by generating test cases only up...
Ajax is an emerging Web engineering technology that supports advanced interaction features that go beyond Webpage navigation. The Ajax technology is based on asynchronous communication with the Web server and direct manipulation of the GUI, taking advantage of reflection.Correspondingly, new classes of Web faults are associated with Ajax applications.In previous work, we investigated a state-based...
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.