Lazzarini Lemos

University of São Paulo, San Paulo, São Paulo, Brazil

Are you Lazzarini Lemos?

Claim your profile

Publications (7)0 Total impact

  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Empirical studies have shown that Aspect Oriented Programming (AOP) promotes the modularity and design stability of systems in the presence of crosscutting concerns. However, as important as measuring the impact of AOP on the design stability is to measure its impact on system robustness. The effective adoption of a new technology might be impaired if it makes programs less resilient to internal and external unexpected behavior. In this paper we propose an approach that explores the synergy between static and dynamic analysis to assess the impact of AOP on system robustness with regard to exception handling (EH). This impact is quantified in terms of a set of exception mechanism related metrics which are collected (i) during static checks of EH contracts, and (ii) during the structural testing of EH code.
  • Source
    Otávio Augusto · Lazzarini Lemos · Paulo Cesar Masiero
    [Show abstract] [Hide abstract]
    ABSTRACT: Resumo. Várias abordagens de teste focam o descobrimento de falhas em implementa oes de unidades de software. Um problema não tratado pelo teste de unidadé e a intera ao entre unidades, no que diz respeitò a corretude das interfaces. Em Programa ao Orientada a Aspectos, esse problemá e dificul-tado por mecanismos de conjuntos de jun ao, que definem interfaces implícitas no programa base. Neste trabalhó e apresentada uma abordagem de teste de integra ao estrutural baseada no mecanismo de conjuntos de jun ao para pro-gramas AspectJ. Um modelo chamado PCCF G (Pointcut-based Control Flow Graph e definido para representar regiões de execu ao afetadas por conjuntos de jun ao. Baseado nesse modelo, dois critérios de fluxo de controle para uma medida de cobertura transversal são propostos: todos-nós-de-adendo e todas-arestas-de-adendo. Como avalia ao preliminar da aplicabilidade e efetividade da abordagem proposta, os critérios são implementados em uma ferramenta de teste chamada JaBUTi/PC-AJ é e apresentado um exemplo de aplica ao. O exemplo mostra evidências da efetividade dos critérios quando comparados com critérios de teste de unidade. Abstract. Several testing approaches focus on finding faults in software units of implementation (i.e., unit testing). A problem not addressed by unit testing is the interaction among units, with respect to the correctness of their interfaces. With the use of Aspect-Oriented Programming this problem is further compli-cated by pointcut mechanisms that cut new interfaces in the base program. In this paper a structural integration testing approach for AspectJ programs is presented. A model called PCCF G (Pointcut-based Control Flow Graph) to represent the flow of control between base units and pieces of advice is defined. Based on the PCCF G, two control-flow criteria for a crosscutting coverage measure are defined: all-pointcut-based-advice-nodes and all-pointcut-based-advice-edges. As a preliminary evaluation of the feasibility and effectiveness of the proposed approach, an implementation of the criteria in an AspectJ testing tool (JaBUTi/PC-AJ) is presented along with an application example. The ex-ample shows evidence of the effectiveness of the pointcut-based criteria to find AO related faults compared to unit testing criteria.
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Resumo. Em um trabalho recente, explorou-se o teste estrutural de unidade – tanto de métodos quanto de adendos – de programas Java orientados a obje-tos (OO) e a aspectos (OA). Um problema não tratado pelo teste de unidadé e a intera ao entre as unidades, no que diz respeitò a corretude das interfaces. Neste artigó e apresentada uma abordagem de teste de integra ao que estende a abordagem de teste de unidade apresentada anteriormente. Para que a ativi-dade 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 rep-resentar o fluxo de controle e de dados de pares de unidades de programas Java OO e OA chamado grafo PWDU (PairWise Def-Use e proposto juntamente com três critérios de teste. Uma implementa ao 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. Abstract. Most structural testing approaches are targeted at units of implemen-tation (i.e., unit testing). A problem that is not addressed by unit testing is the interaction among units, with respect to the correctness of their interfaces. We present a structural integration testing approach for object-oriented (OO) and aspect-oriented (AO) Java programs as an extension of a unit testing approach we have developed before. To make the activity feasible, instead of consider-ing arbitrary call depths, we address the testing of pairs of units. We propose a model called PWDU (PairWise Def-Use) graph to represent the control and data-flow of pairs of units. Based on the PWDU, three testing criteria are defined: all-pairwise-integrated-nodes, all-pairwise-integrated-edges (control-flow based criteria), and all-pairwise-integrated-uses (a data-flow based crite-rion). We also present the implementation of our approach as an extension to the Java Bytecode Understanding and Testing (JaBUTi) family of testing tools along with an example of usage.
  • [Show abstract] [Hide abstract]
    ABSTRACT: Resumo—Este artigo apresenta uma abordagem para o teste estrutural de integração nível 1 para programas OO e OA escritos em Java e AspectJ. Por meio dessa abordagem é possível revelar defeitos que podem ocorrer nas interfaces entre uma determinada unidade (método ou adendo) e todas as outras que interagem diretamente com ela, bem como revelar defeitos que podem ocorrer na sequência de chamadas dessas unidades. Abstract—This paper presents an approach for integration testing of object­oriented and aspect­oriented programs. The first level of integration is considered and the target languages are Java and AspectJ. The proposed model and criteria support revealing faults that occur at the interfaces between a specific unit of implementation (method or advice) and each unit that interacts with it. Moreover, the presented criteria can also help revealing faults related to call sequences at the target unit.
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Resumo Neste artigó e apresentada uma abordagem de teste estrutural de unidade para programas orientados a aspectos. Um modelo de fluxo de controle orientado a aspecto e definido a partir do bytecode (código objeto de Java) resultante do processo de compila ao/combina ao de programas escritos na linguagem AspectJ – uma extensão da linguagem Java para a programa ao orientada a aspectos – e critérios de teste são derivados desse modelo. Além dos dois critérios de teste estruturais tradicionais todos-nós e todas-arestas, dois outros critérios de teste específicos para programas orientados a aspectos, todos-nós-de-intercepta ao e todas-arestas-de-intercepta ao, são definidos. Um exemplo de aplica ao dos critério e apresentado.
  • Source
    Otávio Augusto · Lazzarini Lemos
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Software testing has been shown to be important for reducing the number of product faults, attracting interest from both academy and industry. As novel development approaches and support technologies are proposed, new challenges arise in the testing of software developed in these new contexts. For instance, object-oriented (OO) programming, already adopted by the developer community, and, more recently, aspect-oriented (AO) programming, have motivated various efforts for the establishment of novel testing approaches and criteria. The goal of this chapter is to present theoretical and practical aspects of the software testing activity in the OO and AO software development context. In particular, we emphasize structural and fault-based techniques with the support of JaBUTi and JaBUTi/AJ testing tools, developed by the software engineering research group at ICMC/USP. Resumo O teste de software tem se mostrado importante para reduzir a quantidade de defeitos presentes nos produtos, atraindo o interesse tanto da academia quanto da indústria. À medida que surgem novas abordagens de desenvolvimento e tecnologias de apoio, surgem também novos desafios re-lacionados ao teste de software aplicado nesses contextos. Por exemplo, o paradigma orientado a objetos (OO) já consolidado entre a comunidade desenvolvedora e, mais recentemente, a programa-ção orientada a aspectos (POA) têm motivado diversos esforços dedicados ao estabelecimento de abordagens e critérios de teste nesses contextos. O objetivo deste texto é apresentar os aspectos teóricos e práticos relacionados à atividade de teste de software, tanto no contexto de software OO quanto orientado a aspectos (OA). Em particular, são enfatizadas as técnicas estrutural e baseada em defeitos com o apoio das ferramentas de teste JaBUTi e JaBUTi/AJ, desenvolvidas pelo grupo de pesquisas em Engenharia de Software do ICMC/USP.