Detecção automática de falhas em software JavaScript: Uma revisão sistemática da literatura
Resumo
As aplicações desenvolvidas com a linguagem JavaScript, vêm aumentando a cada dia, não somente aquelas baseadas em Web (client-side), como também as aplicações para servidor (server-side) e dispositivos móveis (mobile). Neste contexto, a necessidade de ferramentas para identificação de falhas é fundamental, para auxiliar desenvolvedores durante a evolução destas aplicações. Diferentes ferramentas e abordagens têm sido propostas ao longo dos anos e este conhecimento encontra-se fragmentado na literatura, o que dificulta os desenvolvedores a escolherem as melhores ferramentas para identificação de falhas. Desta forma, o objetivo desta pesquisa é analisar sistematicamente os métodos e ferramentas que estão sendo utilizadas para detecção automática de falhas em software escrito em JavaScript. Além de catalogar as falhas mais procuradas pelos estudos em cada ambiente e identificar as lacunas existentes na área. Para tal, foi realizada uma revisão sistemática da literatura (RSL), que resultou em 19 estudos primários relevantes para o objetivo desta pesquisa. A maioria desses estudos estão voltados para ambiente Web (client-side), mostrando a falta de trabalhos para detecção de falhas em ambientes serverside e multiplataforma.
Referências
S. Brin, R. Motwani, J. D. Ullman, and S. Tsur. Dynamic itemset counting and implication rules for market basket data. SIGMOD Rec., 26(2):255–264, June 1997.
B. Cardoso and E. Figueiredo. Co-occurrence of design patterns and bad smells in software systems: An exploratory study. In Brazilian Symposium on Information Systems, pages 347–354, 2015.
K. A. M. Ferreira, M. A. Bigonha, R. S. Bigonha, L. F. O. Mendes, and H. C. Almeida. Identifying thresholds for object-oriented software metrics. The Journal of Systems and Software, 85:244–257, 2012.
T. G. S. Filó. Identifying reference values for object-oriented software metrics. Master’s thesis, UFMG, Computer Science, 2014.
T. G. S. Filó, M. A. S. Bigonha, and K. A. M. Ferreira. Raftool - filtering tools for methods, classes and packages with uncommon measurements of software metrics. In WAMPS, pages 1–6, 2014.
T. G. S. Filó, M. A. S. Bigonha, and K. A. M. Ferreira. A catalogue of thresholds for object-oriented software metrics. In SOFTENG, pages 48–55, 2015.
M. Fowler and K. Beck. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley, 1994.
F. Jaafar, Y. Guéhéneuc, S. Hamel, and F. Khomh. Analysing anti-patterns static relationships with design patterns. ECEASST, 59, 2013.
F. Jaafar, Y.-G. Gueheneuc, S. Hamel, F. Khomh, and M. Zulkernine. Evaluating the impact of design pattern and anti-pattern dependencies on changes and faults. Empirical Software Engineering, 21(3):896–931, 2016.
M. Lanza and R. Marinescu. Object-Oriented Metrics in Practice. Springer-Verlag, 2006.
R. Marinescu. Em Measurement and Quality in Object-Oriented Design. PhD thesis, University of Timisoara, 2002.
B. L. Sousa, M. A. S. Bigonha, and K. A. M. Ferreira. A tool for detection of co-occurrences between design patterns and bad smells. Technical report, Programming Language Lab (UFMG), llp 001-2017, 2017.
D. Speicher. Code quality cultivation. Communications in Computer and Information Science, 348:334–349, 2013.
R. Terra, L. F. Miranda, M. T. Valente, and R. S. Bigonha. Qualitas. class corpus: A compiled version of the qualitas corpus. ACM SIGSOFT Software Engineering Notes, 38(5):1–4, 2013.
N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. T. Halkidis. Design pattern detection using similarity scoring. Software Engineering, IEEE Transactions on, 32(11):896–909, 2006.
B. Walter and T. Alkhaeir. The relationship between design patterns and code smells: An exploratory study. Information and Software Technology, 74:127–142, 2016.