Figure 1 - uploaded by R. Di Bernardo
Content may be subject to copyright.
Layered information system architecture.  

Layered information system architecture.  

Source publication
Conference Paper
Full-text available
The lack of testing and a priori design of the exceptional behavior are causing many of the problems found in the use of exception handling. As a consequence, exceptions flow in unforeseen ways during the execution of a software system, having a negative impact on reliability. This paper presents an agile approach to test the exceptional behavior o...

Context in source publication

Context 1
... this section, we present, a simple illustrative, example to point out some limitations of pure JUnit Test Cases to detect exception handling bugs. Consider a layered informa- tion system composed by three layers: Data, Business, and GUI ( Figure 1). An exception handling policy that should be obeyed in this application is the following: the exceptions signaled by Data Access Objects (defined on the Data layer) represent problems in attempts to access a database. ...

Citations

... Prior research has studied EBTs in practice [2], [8], [14], [25], [26] and observed that most projects already have some EBTs, but that the number of EBTs is not as high as the number of non-EBTs. Simply put, developers focus on "happy paths" and have limited time to test exceptional behaviors. ...
... Exception handling [26], [61]- [63] is an important aspect of software development. There are several techniques [1], [2], [14], [51] to generate EBTs. However, they either generate EBTs from specifications or use random-based or search-based strategies to generate EBTs. ...
Preprint
Full-text available
Many popular programming languages, including C#, Java, and Python, support exceptions. Exceptions are thrown during program execution if an unwanted event happens, e.g., a method is invoked with an illegal argument value. Software developers write exceptional behavior tests (EBTs) to check that their code detects unwanted events and throws appropriate exceptions. Prior research studies have shown the importance of EBTs, but those studies also highlighted that developers put most of their efforts on "happy paths", e.g., paths without unwanted events. To help developers fill the gap, we present the first framework, dubbed EXLONG, that automatically generates EBTs. EXLONG is a large language model instruction-tuned from CodeLlama and embeds reasoning about traces that lead to throw statements, conditional expressions that guard throw statements, and non-exceptional behavior tests that execute similar traces. We compare EXLONG with the state-of-the-art models for test generation (CAT-LM) and one of the strongest foundation models (GPT3.5), as well as with analysis-based tools for test generation (Randoop and EvoSuite). Our results show that EXLONG outperforms existing models and tools. Furthermore, we contributed several pull requests to open-source projects and 23 EBTs generated by EXLONG were already accepted.
... The remote server that receives such data, stores the notifications and provides this information to other applications which can generate EH reports, and mine such data. 1 The language manual and the Eclipse plug-in is available at: ...
... Two approaches [1][7] extended the JUnit testing tool to support the definition of automated tests for the exception handling behavior. The limitations of both approaches are twofold: the developer needs to manually implement each test case, and each test case focuses on one single exception flow (i.e. ...
... Group 8 has been focusing on transferring testing technology to industry and testing of aerospace embedded systems (Silva et al., 2006. Finally, a young group driven by Bernardo et al. (2011) (Group 9) has been investigating aspectoriented testing since 2011. ...
... The subsequent editions of LA-WASP were also held in conjunction with SBES (2008SBES ( , 2009SBES ( and 2011. These workshops followed the same philosophy of the previous WASP and LA-WASP workshops in promoting the interaction and cooperation between senior and young researchers from different universities in South America. ...
... Furthermore, Brazilian researchers have recently devised testing and static analysis approaches targeting the EH code of AO systems (Bernardo et al., 2011;Coelho et al., 2011). Bernardo et al. (2011) proposed an extension of the JUnit framework to check whether the exception flows that take place in OO and AO systems are the intended ones. ...
... Furthermore, Brazilian researchers have recently devised testing and static analysis approaches targeting the EH code of AO systems (Bernardo et al., 2011;Coelho et al., 2011). Bernardo et al. (2011) proposed an extension of the JUnit framework to check whether the exception flows that take place in OO and AO systems are the intended ones. The proposed tool relies on aspects to monitor the exception flows of a system. ...
Article
Full-text available
Background: Aspect-Oriented Software Development (AOSD) is a paradigm that promotes advanced separation of concerns and modularity throughout the software development lifecycle, with a distinctive emphasis on modular structures that cut across traditional abstraction boundaries. In the last 15 years, research on AOSD has boosted around the world. The AOSD-BR research community (AOSD-BR stands for AOSD in Brazil) emerged in the last decade, and has provided different contributions in a variety of topics. However, despite some evidence in terms of the number and quality of its outcomes, there is no organized characterization of the AOSD-BR community that positions it against the international AOSD Research community and the Software Engineering Research community in Brazil. Aims: In this paper, our main goal is to characterize the AOSD-BR community with respect to the research developed in the last decade, confronting it with the AOSD international community and the Brazilian Software Engineering community. Method: Data collection, validation and analysis were performed in collaboration with several researchers of the AOSD-BR community. The characterization was presented from three different perspectives: (i) a historical timeline of events and main milestones achieved by the community; (ii) an overview of the research developed by the community, in terms of key challenges, open issues and related work; and (iii) an analysis on the impact of the AOSD-BR community outcomes in terms of well-known indicators, such as number of papers and number of citations. Results: Our analysis showed that the AOSD-BR community has impacted both the international AOSD Research community and the Software Engineering Research community in Brazil. (c) 2012 Elsevier Inc. All rights reserved.
... Last but not least, Brazilian researchers have recently devised a number of testing and static analysis approaches targeting the EH code of AO systems [14], [15]. Bernardo et al. [14] proposed an extension of the JUnit framework to check whether the paths that exceptions take in an OO or AO system are the intended ones. ...
... Last but not least, Brazilian researchers have recently devised a number of testing and static analysis approaches targeting the EH code of AO systems [14], [15]. Bernardo et al. [14] proposed an extension of the JUnit framework to check whether the paths that exceptions take in an OO or AO system are the intended ones. This tool relies on aspects to monitor the exception paths of a system. ...
Conference Paper
Full-text available
In this paper, we present the birth, growth, and maturation of Aspect-Oriented Software Development (AOSD) research over the last years, with emphasis on the Brazilian AOSD community and its research contributions. These research contributions are illustrated from different perspectives: (i) an overview of the research work developed by our community in several prominent software engineering areas; (ii) a historical chronology of the community; and (iii) the growth, impact and quality of research outcomes.
... Later, Cacho et al. [13] performed an exploratory study to evaluate this new model, and observed that it was useful to foster the development of readable and reliable software systems. Last but not least, Brazilian researchers have recently devised a number of testing and static analysis approaches targeting the EH code of AO systems [14], [15]. Bernardo et al. [14] proposed an extension of the JUnit framework to check whether the paths that exceptions take in an OO or AO system are the intended ones. ...
... Last but not least, Brazilian researchers have recently devised a number of testing and static analysis approaches targeting the EH code of AO systems [14], [15]. Bernardo et al. [14] proposed an extension of the JUnit framework to check whether the paths that exceptions take in an OO or AO system are the intended ones. This tool relies on aspects to monitor the exception paths of a system. ...
Article
Full-text available
Para garantir a confiabilidade dos sistemas de software, várias técnicas podem ser empregadas, cuja forma mais comum é a utilização de mecanismos de tolerância a falhas. Eles permitem que o sistema possa evitar falhas residuais graves que não podem ser toleradas durante a sua execução. Entretanto, essas técnicas geralmente são empregadas tardiamente durante a construção dos softwares e a necessidade de incluir tais mecanismos (e.g. tratamento de exceção) nas fases iniciais, tem sido defendida por muitos pesquisadores como uma das principais abordagens para se alcançar a confiabilidade. Neste estudo, são apresentadas diversas abordagens, que relacionadas com as práticas de Engenharia de Software, representam o atual estado da arte no tratamento de falhas residuais. Promovendo uma visão abrangente e aprofundada nesse âmbito, o trabalho visa: (i) a conhecer a direção e evolução das pesquisas, (ii) como estão sendo aplicadas e (iii) quais as suas limitações.