Detecting Redundant Unit Tests for AspectJ Programs (original) (raw)

Automated Test Generation for AspectJ Programs

2000

Aspect-oriented software development (AOSD) is a new paradigm that improves separation of concerns in software development. AOSD has gained popularity with the adoption of languages such as As- pectJ. Automated test generation for AspectJ programs is important for reducing the manual effort in testing AspectJ programs. This position paper proposes Wrasp, a framework for automatic gener- ation of tests for

Automated Test Data Generation Using Aspect J

Aspect oriented programming is a new programming paradigm. AOP is based on object oriented programming. Most of the researchers target this new paradigm towards the programming not for testing. Testing of aspect oriented programs is an emerging field of research as a very few research work is going on currently on ASP. In this paper, we investigate a new way of testing aspect oriented programs. Here we propose a framework of automated test data generation for evolutionary testing on AOP. On the basis of generated data we will compare evolutionary testing with random testing in terms of effort reduction and improvement of test effectiveness. We will justify our comparison with the help of empirical study on AspectJ programs.

Perspectives on automated testing of aspect-oriented programs

Proceedings of the 3rd workshop on Testing aspect-oriented programs - WTAOP '07, 2007

Aspect-oriented software development is gaining popularity with the adoption of aspect-oriented languages in writing programs. To reduce the manual effort in assuring the quality of aspect-oriented programs, we have developed a set of techniques and tools for automated testing of aspect-oriented programs. This position paper presents our perspectives on automated testing techniques from three dimensions: testing aspectual behavior or aspectual composition, unit tests or integration tests, and test-input generation or test oracles. We illustrate automated testing techniques primarily through the last dimension in the perspectives. By classifying these automated testing techniques in the perspectives, we provide better understanding of these techniques and identify future directions for automated testing of aspect-oriented programs. This position paper also presents a couple of new techniques that we propose based on the perspectives.

AspectWrapper: specification-based automatic testing of aspect-oriented programs

Abstract Testing is an important technique to detect program faults. Automatic generation of test cases for procedural and object-oriented software has been proposed, because writing tests manually is a tedious and time-consuming task, and every modification to the original specification requires changes to the test programs. Aspect-oriented programming is a new technique that focuses on the modularization and encapsulation of crosscutting concerns. The domain of automatic testing of aspect-oriented programs is hardly developed.

Automated test data generation for aspect-oriented programs

2009

Abstract Despite the upsurge of interest in the Aspect-Oriented Programming (AOP) paradigm, there remain few results on test data generation techniques for AOP. Furthermore, there is no work on search-based optimization for test data generation, an approach that has been shown to be successful in other programming paradigms.

Towards regression test selection for AspectJ programs

Proceedings of the 2nd workshop on Testing aspect-oriented programs - WTAOP '06, 2006

Regression testing aims at showing that code has not been adversely affected by modification activities during maintenance. Regression test selection techniques reuse tests from an existing test suite to test a modified program. By reusing such a test suite to retest modified programs, maintainers or testers can reduce the required testing effort. This paper presents a regression test selection technique for AspectJ programs. The technique is based on various types of control flow graphs that can be used to select from the original test suite test cases that execute changed code for the new version of the AspectJ program. The code-base technique operates on the control flow graphs of AspectJ programs. The technique can be applied to modified individual aspects or classes as well as the whole program that uses modified aspects or classes.

RAMBUTANS: automatic AOP-specific test generation tool

International Journal on Software Tools for Technology Transfer, 2016

Aspect-oriented programming (AOP) is a programmatic methodology to handle better modularized code by separating crosscutting concerns from the traditional abstraction boundaries. Automated testing, as one of the most demanding needs of the software development to reduce both human effort and costs, is a delicate issue in testing aspect-oriented programs. Prior studies in the automated test generation for aspect-oriented programs have been very limited with respect to the need for both adequate tool support and capability concerning effectiveness and efficiency. This paper describes a new AOP-specific tool for testing aspectoriented programs, called RAMBUTANS. The RAMBUTANS tool uses a directed random testing technique that is especially well suited for generating tests for aspectual features in AspectJ. The directed random aspect of the tool is parameterized by associating weights to aspects, advice, methods, and classes by controlling object and joint point creations during the test generation process. We present a comprehensive empirical evaluation of our tool against the current AOP test generation approaches on three industrial aspect-oriented projects. The results of the experimental and statistical tests

A model-based approach to test generation for aspect-oriented programs

2005

This paper presents an approach to generating tests for adequately exercising interaction between aspects and classes based on aspect-oriented UML models. In this approach, an aspect-oriented model consists of class diagrams, aspect diagrams, and sequence diagrams. Since methods of classes and advices of aspects are both specified by sequence diagrams, the advices on a given method can be weaved into a new sequence diagram, which is essential to the weaving mechanism in AOSD. For a woven sequence diagram, the approach exploits goal-directed reasoning to construct a flow graph for a given coverage criteria (e.g. the combination of branch coverage and polymorphic coverage in this paper), and further expands the graph to a flow tree, where each path is a test. Then the approach derives objects with desired states for exercising each test in the flow tree.

Pairwise structural testing of object and aspect-oriented Java programs

2007

Em um trabalho recente, explorou-se o teste estrutural de unidadetanto de métodos quanto de adendos -de programas Java orientados a objetos (OO) e a aspectos (OA). Um problema não tratado pelo teste de unidadeé a interação entre as unidades, no que diz respeitoà corretude das interfaces. Neste artigoé apresentada uma abordagem de teste de integração que estende a abordagem de teste de unidade apresentada anteriormente. Para que a atividade de teste seja factível, em vez de considerar níveis arbitrários de chamadas de uma só vez, trata-se do teste de cada par de unidades. Um modelo para representar o fluxo de controle e de dados de pares de unidades de programas Java OO e OA chamado grafo PWDU (PairWise Def-Use)é proposto juntamente com três critérios de teste. Uma implementação da abordagem utilizando como base a família de ferramentas de teste JaBUTi (Java Bytecode Understanding and Testing) juntamente com um exemplo de uso também são apresentados.