Loading...
13 results
Search Results
Now showing 1 - 10 of 13
- Error propagation monitoring on Windows mobile-based devicesPublication . Ribeiro, José Carlos Bregieiro; Luís, Bruno Miguel; Zenha-Rela, Mário AlbertoMobile devices, such as Smartphones, are being used virtually by every modern individual. Such devices are expected to work continuously and flawlessly for years, despite having been designed without criticality requirements. However, the requirements of mobility, digital identification and authentication lead to an increasing dependence of societies on the correct behaviour of these ’proxies for the individual’. The Windows Mobile 5.0 release has delivered a new set of internal state monitoring services, centralized into the State and Notifications Broker. This API was designed to be used by context-aware applications, providing a comprehensive monitoring of the internal state and resources of mobile devices. In this paper we propose using this service to increase the dependability of mobile applications by showing, through a series of fault-injection campaigns, that this novel API is very effective for error propagation profiling and monitoring.
- An evolutionary approach for performing structural unit-testing on third-party object-oriented Java softwarePublication . Ribeiro, José Carlos Bregieiro; Zenha-Rela, Mário Alberto; Fernandéz de Vega, FranciscoEvolutionary Testing is an emerging methodology for automatically generating high quality test data. The focus of this paper is on presenting an approach for generating test cases for the unit-testing of object-oriented programs, with basis on the information provided by the structural analysis and interpretation of Java bytecode and on the dynamic execution of the instrumented test object. The rationale for working at the bytecode level is that even when the source code is unavailable, insight can still be obtained and used to guide the search-based test case generation process. Test cases are represented using the Strongly Typed Genetic Programming paradigm, which effectively mimics the polymorphic relationships, inheritance dependences and method argument constraints of object-oriented programs.
- Strongly-typed genetic programming and purity analysis: input domain reduction for evolutionary testing problemsPublication . Ribeiro, José Carlos Bregieiro; Zenha-Rela, Mário Alberto; Fernandéz de Vega, FranciscoSearch-based test case generation for object-oriented software is hindered by the size of the search space, which encompasses the arguments to the implicit and explicit parameters of the test object's public methods. The performance of this type of search problems can be enhanced by the definition of adequate Input Domain Reduction strategies. The focus of our on-going work is on employing evolutionary algorithms for generating test data for the structural unit-testing of Java programs. Test cases are represented and evolved using the Strongly-Typed Genetic Programming paradigm; Purity Analysis is particularly useful in this situation because it provides a means to automatically identify and remove Function Set entries that do not contribute to the definition of interesting test scenarios.
- A strategy for evaluating feasible and unfeasible test cases for the evolutionary testing of object-oriented softwarePublication . Ribeiro, José Carlos Bregieiro; Zenha-Rela, Mário Alberto; Fernandéz de Vega, FranciscoEvolutionary Testing is an emerging methodology for automatically producing high quality test data. The focus of our on-going work is precisely on generating test data for the structural unit-testing of object-oriented Java programs. The primary objective is that of efficiently guiding the search process towards the definition of a test set that achieves full structural coverage of the test object. However, the state problem of object-oriented programs requires specifying carefully fine-tuned methodologies that promote the traversal of problematic structures and difficult control-flow paths - which often involves the generation of complex and intricate test cases, that define elaborate state scenarios. This paper proposes a methodology for evaluating the quality of both feasible and unfeasible test cases - i.e., those that are effectively completed and terminate with a call to the method under test, and those that abort prematurely because a runtime exception is thrown during test case execution. With our approach, unfeasible test cases are considered at certain stages of the evolutionary search, promoting diversity and enhancing the possibility of achieving full coverage.
- Test Case Evaluation and Input Domain Reduction strategies for the Evolutionary Testing of Object-Oriented softwarePublication . Ribeiro, José Carlos Bregieiro; Mário Alberto Zenha-Rela; Francisco Fernández de VegaIn Evolutionary Testing, meta-heuristic search techniques are used for generating test data. The focus of our research is on employing evolutionary algorithms for the structural unit-testing of Object-Oriented programs. Relevant contributions include the introduction of novel methodologies for automation, search guidance and Input Domain Reduction; the strategies proposed were empirically evaluated with encouraging results. Test cases are evolved using the Strongly-Typed Genetic Programming technique. Test data quality evaluation includes instrumenting the test object, executing it with the generated test cases, and tracing the structures traversed in order to derive coverage metrics. The methodology for efficiently guiding the search process towards achieving full structural coverage involves favouring test cases that exercise problematic structures. Purity Analysis is employed as a systematic strategy for reducing the search space.
- Evolutionary unit-testing of third party object-oriented Java softwarePublication . Ribeiro, José Carlos BregieiroEvolutionary Testing is an emerging methodology for automatically generating high quality test data. The focus of this work is on presenting a searchbased approach for the the unit-testing of third-party object-oriented Java software. Test cases are represented and evolved using the Strongly Typed Genetic Programming paradigm, which effectively mimics the inheritance and polymorphic properties of object-oriented programs and enables the maintenance of call dependences when applying tree construction, mutation or crossover. Our strategy for evaluating the quality of test cases includes instrumenting the test object for basic block analysis and structural event dispatch, and executing the instrumented test object using the generated test cases as “inputs” – in order to collect trace information and derive coverage metrics. Static analysis, instrumentation and execution tracing is performed solely with basis on the high-level information extracted from the Java Bytecode of the test object. Given that the test object’s source code is often unavailable, working at the Bytecode level allows broadening the scope of applicability of our approach; it can be used, for instance, to perform structural testing on third-party Java components. Test objects are represented internally by weighted control-flow graphs; strategies are introduced for favouring test cases that exercise problematic structures and difficult control-flow paths, which involve dynamic weight reevaluation. The aim is that of efficiently guiding the search process towards achieving full structural coverage – which often involves promoting the definition of complex and intricate test cases that define elaborate state scenarios. The work performed so far allowed us to develop the prototype of a test case generation tool, called eCrash. Experiments have been carried and quality solutions have been found, proving the pertinence of our methodology and encouraging further studies.
- Search-based test case generation for object-oriented Java software using strongly-typed genetic programmingPublication . Ribeiro, José Carlos BregieiroIn evolutionary testing, meta-heuristic search techniques are used to generate high-quality test data. The focus of our on-going work is on employing evolutionary algorithms for the structural unit-testing of object-oriented Java programs. Test cases are evolved using the Strongly-Typed Genetic Programming technique. Test data quality evaluation includes instrumenting the test object, executing it with the generated test cases, and tracing the structures traversed in order to derive coverage metrics. The strategy for efficiently guiding the search process towards achieving full structural coverage involves favouring test cases that exercise problematic structures and control-flow paths. Static analysis and instrumentation is performed solely with basis on the information extracted from the test objects' Java Bytecode. Relevant contributions include the introduction of novel methodologies for automation, search guidance and input domain reduction, and the presentation of the eCrash automated test case generation tool.
- Using dynamic analysis of Java bytecode for evolutionary object-oriented unit testingPublication . Ribeiro, José Carlos Bregieiro; Zenha-Rela, Mário Alberto; Fernandéz de Vega, FranciscoThe focus of this paper is on presenting a methodology for generating and optimizing test data by employing evolutionary search techniques, with basis on the information provided by the analysis and interpretation of Java bytecode and on the dynamic execution of the instrumented test object. The main reason to work at the bytecode level is that even when the source code is unavailable, structural testing requirements can still be derived and used to assess the quality of a given test set and to guide the evolutionary search towards reaching specific test goals. Java bytecode retains enough high-level information about the original source code for an underlying model for program representation to be built. The observations required to select or generate test data are obtained by employing dynamic analysis techniques – i.e. by instrumenting, tracing and analysing Java bytecode.
- mCrash: a framework for the evaluation of mobile devices' trustworthiness propertiesPublication . Ribeiro, José Carlos BregieiroMobile devices, such as Smartphones, are being used virtually by every modern individual. Such devices are expected to work continuously and awlessly for years, despite having been designed without criticality requirements. However, the requirements of mobility, digital identi cation and authentication lead to an increasing dependence of societies on the correct behaviour of these \proxies for the individual". The Windows Mobile 5.0 release has delivered a new set of internal state monitoring services, centralized into the State and Noti cations Broker. This API was designed to be used by context-aware applications, providing a comprehensive monitoring of the internal state and resources of mobile devices. We propose using this service to increase the dependability of mobile applications by showing, through a series of fault-injection campaigns, that this novel API is very e ective for error propagation pro ling and monitoring.
- mCrash: a framework for the evaluation of mobile devices trustworthiness propertiesPublication . Ribeiro, José Carlos Bregieiro; Zenha-Rela, Mário AlbertoA rationale and framework for the evaluation of mobile devices’ robustness and trustworthiness properties using a Windows Mobile 5.0 testbed is presented. The methodology followed includes employing software faultinjection techniques at the operating system’s interface level and customising tests to the behaviour of the software.