Study and definition of project attributes for selection of testing techniques for concurrent software
Resumo
[Context:] The choice of testing technique to be adopted in a software testing project persists based on the tester’s knowledge and often does not consider all of the testing techniques available in the industry or academia. In a previous project of the research group, a framework was defined to support the systematic selection of concurrent software testing techniques. Therefore, a characterization scheme was proposed and implemented in the SeleCTT tool, which is composed of a set of attributes that considers characteristics of concurrent programs and they are used to calculate which of these attributes are suitable to guide the selection of testing techniques for a particular software project. [Objective:] The selection of the testing technique at each stage of a software’s life cycle depends on many factors, such as resources, schedule, cost of the project, among other attributes. This work will extend the previously defined attributes, taking into account other characteristics that may be considered, for example, information from previous similar projects. Considering that the testing techniques are complementary, another goal is to allow a set of testing techniques to be selected and not just one. [Methodology:] To achieve this goal, a systematic mapping study was conducted to identify and analyze papers that represent the current state of the literature about testing techniques selection. Moreover, we surveyed software testing practices carried in Brazil software companies. The survey identified the testing practices in Brazilian industries, for the purpose of knowing and having an overview on the latest testing techniques, tools and metrics used, the challenges faced by testers and the selection testing technique process. [Results and Conclusions:] With this study, it is expected to specify project attributes that can be used to improve the existing recommendation system in the SeleCTT tool and propose ways of combining testing techniques, contributing to industry and academia, and bring insights on the context of testing techniques selection.
Referências
Delamaro, M., Jino, M., and Maldonado, J. (2017). Introduction to Software Testing. Elsevier Brazil.
Dias-Neto, A. C. and Travassos, G. H. (2009). Evaluation of {model-based} testing techniques selection approaches: An external replication. In Empirical Software Engineering and Measurement, 2009. ESEM 2009. 3rd International Symposium on, pages 269–278. IEEE.
Melo, S. M. (2018). A Framework for systematic testing techniques evaluation applied to concurrent programming. PhD thesis, Universidade de São Paulo.
Moura, F. M., Melo, S. M., and Souza, S. R. S. (2018). Selectt: tool for automating the selection process of concurrent software testing techniques. Universidade de São Paulo. Relatório técnico No 423.
Myers, G. J., Sandler, C., and Badgett, T. (2011). The art of software testing. John Wiley & Sons.
Rothermel, G. and Harrold, M. J. (1996). Analyzing regression test selection techniques. IEEE Transactions on software engineering, 22(8):529–551.
Souza, S. R. S., Souza, P. S. L., Melo, S. M., Silva, R. A., and Vergilio, S. R. (2017). Testing of Concurrent Programs, pages 261–296. In: Delamaro, Marcio and Jino, Mario and Maldonado, José. (Org.). Introduction to Software Testing. Elsevier, Rio de Janeiro, RJ.
Tanenbaum, A. S. and Van Steen, M. (2007). Distributed systems: principles and paradigms. Prentice-Hall.
Vegas, S. and Basili, V. (2005). A characterisation schema for software testing techniques. Empirical Software Engineering, 10(4):437–466.
Victor, M. and Upadhyay, N. (2011). Selection of software testing technique: A multi criteria decision making approach. In Trends in Computer Science, Engineering and Information Technology, pages 453–462. Springer.
Wohlin, C., Runeson, P., Ho ̈st, M., Ohlsson, M. C., Regnell, B., and Wesslén, A. (2012). Experimentation in software engineering. Springer Science & Business Media.
Wojcicki, M. A. and Strooper, P. (2007). An iterative empirical strategy for the systematic selection of a combination of verification and validation technologies. In 5th International Workshop on Software Quality, page 9. IEEE Computer Society.