Control and data flow structural testing criteria for aspect-oriented programs

  • Authors:
  • Otávio Augusto Lazzarini Lemos;Auri Marcelo Rizzo Vincenzi;José Carlos Maldonado;Paulo Cesar Masiero

  • Affiliations:
  • Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação, Av. do Trabalhador São-Carlense, 400 - São Carlos, SP, Brazil;Instituto de Informática, Universidade Federal de Goiás, Bloco IMF I, sala 239, Campus II, Samambaia, Caixa Postal 131, CEP 74001-970, Goiínia, GO, Brazil;Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação, Av. do Trabalhador São-Carlense, 400 - São Carlos, SP, Brazil;Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação, Av. do Trabalhador São-Carlense, 400 - São Carlos, SP, Brazil

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2007

Quantified Score

Hi-index 0.01

Visualization

Abstract

Although it is claimed that, among other features, aspect-oriented programming (AOP) increases understandability and eases the maintenance burden, this technology cannot provide correctness by itself, and thus it also requires the use of systematic verification, validation and testing (VV&T) approaches. With the purpose of producing high quality software, many approaches to apply structural testing criteria for the unit testing of procedural and object-oriented (OO) programs have been proposed. Nevertheless, until now, few works have addressed the application of such criteria to test aspect-oriented programs. In this paper we define a family of control flow and data flow based testing criteria for aspect-oriented programs inspired by the implementation strategy adopted by AspectJ - an aspect-oriented extension of the Java language - and extending a previous work proposed for Java programs. We propose the derivation of a control and data flow model for aspect-oriented programs based upon the static analysis of the object code (the Java bytecode) resulted from the compilation/weaving process. Using this model, called aspect-oriented def-use graph (AODU), traditional and also aspect-oriented testing criteria are defined (called Control and Data Flow Structural Testing Criteria for Aspect-Oriented Programs - CDSTC-AOP). The main idea is that composition of aspect-oriented programs leads to new crosscutting interfaces in several modules of the system, which must be considered for coverage during structural testing. The implementation of a prototype tool - the JaBUTi/AJ tool - to support the proposed criteria and model is presented along with an example. Also, theoretical and practical questions regarding the CDSTC-AOP criteria are discussed.