2020
Authors
Araujo, FS; Rizzo Vincenzi, AM;
Publication
SBQS
Abstract
Testing is a mandatory activity to guarantee software quality. Not only knowledge about the software under testing is required to generate high-quality test cases, but also knowledge about the business rules implemented in software product to cover more than 80% of its source code therefore, we investigate in this study the adequacy, effectiveness, and cost of smart and random automated generated test sets for Java programs. We observed that the smart generated test sets, in general, are more adequate and less expensive than random generated tests, but regarding effectiveness, random generated test are more efficient. Moreover, we observed that smart automated test sets are complementary between them, and we explored if random generated test sets could be complementary to smart automated test sets as well. When we combined smart generated test sets, we observed an increase of more than 8% in statement coverage and more than 15% in mutation score when compared to random generated test sets. However, when we added random generated test sets to previous combination of smart generated test sets, results show a lower increase of statement coverage and mutation score, while increasing considerably the test set generation cost therefore, we advocate that the use of random testing should be integrated with smart generated tests only with a minimization strategy to avoid redundant test sets, keeping the cost reasonable.
2019
Authors
Kudo, TN; Bulcão Neto, RdF; Vincenzi, AMR;
Publication
SBES
Abstract
Requirement patterns represent an abstraction of an application's behaviors and services that, in turn, may be replicated in similar applications. However, there has been a lack of efforts exploiting the benefits of requirement patterns in other phases of the software development life cycle, besides the requirements engineering itself. To address this gap, we propose the Software Pattern MetaModel (SoPaMM) that bridges requirement patterns to groups of scenarios with similar behaviors in the form of test patterns. SoPaMM allows the description of the behavior of a requirement pattern through a time executable and easy-to-use language aiming at the automatic generation of test patterns. Using SoPaMM, we model and implement a behavior-driven functional requirement pattern for a web-based user authentication application. Our preliminary results point out that a requirement pattern can be an executable specification capable of generating automated tests.
2017
Authors
Silva, VB; Araujo, CA; Spoto, ES; Vincenzi, AMR;
Publication
XXXI BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES 2017)
Abstract
To ensure software quality, we can use static and dynamic analysis techniques. Both have advantages and disadvantages and should be used together to improve their performance. In this paper, we present a strategy for applying a set of mutation operators for software testing, which represents a dynamic technique, based on the difficulty an automated static analyzer has on detecting their modeled faults. In other words, we investigated which sets of faults, represented by mutation operators, an automated static analyzer was able to recognize and prioritize the mutation testing considering only the set of mutation operators whose set of faults are difficult to be detected by such static analyzer. We compare our set of mutation operators with others, and the statical analysis shows no difference in the mutation score and costs regarding the number of generated and equivalent mutants among the different strategies. Nevertheless, we consider our proposal attractive once it uses operators with lower overlapping with faults detected by the automated static analyzer we have used.
2017
Authors
Crosara Faria, KA; Andrade Freitas, ENd; Rizzo Vincenzi, AM;
Publication
A-TEST@ESEC/SIGSOFT FSE
Abstract
Collaborative Economy (CE) promotes significant changes in several sectors around the world, e.g. the famous companies Uber, Airbnb, and Turo. The general idea behind CE is the establishment of a win-win partnership between two agents. One agent has a potential need for a resource of high cost for acquisition or location, and the other agent has the resource frequently idle. Software quality verification on Android ecosystem is a hard task due to the fragmentation among the devices, i.e. the large number of devices configurations. In this scenario, compatibility testing demands the acquisition or location of several different devices of high cost and volatility due to technology evolution. On the other hand, there are several devices around the world with a high rate of idle time and which could be used for testing, generating an extra budget for their owners. In this sense, this paper defends the principles of CE for supporting the testing activity of Android applications. We implemented a platform to use and evaluate the practical usefulness and applicability of CE principles in Android software testing context. The platform makes it possible to run system testing on several devices, geographically distributed, simultaneously. The general idea is to record system testing by using an extension of Expresso, a Google proposed framework for user interface (UI) testing, and execute the test cases on idle devices previous registered on the platform, according to the test requirements. We carried out some exploratory studies which evidentiate the potential of the proposed platform, its benefits, and its impact not only on the market but also on the way we can run efficiently testing on Android ecosystem.
2016
Authors
Vincenzi, AMR; Bachiega, T; de Oliveira, DG; de Souza, SdRS; Maldonado, JC;
Publication
A-TEST@SIGSOFT FSE
Abstract
The test is a mandatory activity for software quality assurance. The knowledge about the software under testing is necessary to generate high-quality test cases, but to execute more than 80% of its source code is not an easy task, and demands an in-depth knowledge of the business rules it implements. In this article, we investigate the adequacy, effectiveness, and cost of manually generated test sets versus automatically generated test sets for Java programs. We observed that, in general, manual test sets determine higher statement coverage and mutation score than automatically generated test sets. But one interesting aspect recognized is that the automatically generated test sets are complementary to the manual test set. When we combined manual with automated test sets, the resultant test sets overcame in more that 10%, on average, statement coverage and mutation score when compared to the rates of manual test set, keeping a reasonable cost. Therefore, we advocate that we should concentrate the use of manually generated test sets on testing essential and critical parts of the software ACM ISBN.
2016
Authors
Arantes, GF; de Freitas, DM; Leitao, PS; Vincenzi, AMR;
Publication
I BRAZILIAN SYMPOSIUM ON SYSTEMATIC AND AUTOMATED SOFTWARE TESTING (SAST 2016)
Abstract
Context. In view of the high impact that the test activity has to the cost of software development and the great popularity of Functional Testing Techniques, it is observed that it is necessary to seek strategies that reduce the cost associated with testing without significant loss of quality. Purpose. To introduce an evolution of the method Functional Systematic Test (TFS), the Functional Test Systematic table-Decision (TFS-TD), and to compare the efficiency and effectiveness of both by using programs that are simple and available on LINUX distributions. Methodology. It is a quantitative, descriptive and case studies research, for the evaluation of TFS and TFS-TD methods and its comparison. Results. Guidelines and an iterative process for the application of TFS-TD were defined. Also, through the case studies, the effectiveness and efficiency of the method was quantified and confronted to the TFS method. Conclusions. The case studies revealed that the TFS-TD presents considerable savings in test cases with minimal loss in quality.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.