Desarrollo guiado por comportamiento: buenas prácticas para la calidad de software
DOI:
https://doi.org/10.14482/inde.39.1.005.3Palabras clave:
Calidad de software, Comportamiento, Desarrollo, PruebasResumen
Asegurar la calidad y funcionalidad de un producto de software es garantizar su correcta estructura, composición, ejecución e integridad, pero en algunos casos estas características se ven afectadas debido a la ineficiente gestión y desarrollo del software. El objetivo de la revisión fue identificar buenas prácticas al usar el desarrollo guiado por comportamientos. Para su desarrollo, se indagó en artículos de investigación categorizados en revistas indexadas en bases de datos como IEEE, ScienceDirect, Scielo, Scopus y Redalyc entre 2016 y 2020. El análisis y la revisión permitieron identificar buenas prácticas como el uso de los escenarios solo para pruebas de funcionalidad, organizar las características en carpetas de acuerdo con los escenarios del sistema, contextualizar el funcionamiento al mismo idioma de los clientes para facilitar la comunicación, el uso de etiquetas para agrupar escenarios, organizar características según necesidades y generar escenarios sin dependencia. Se concluyó que estas buenas prácticas permiten una correcta comunicación, diseño estructurado del software, calidad funcional de cada componente de código y, sobre todo, un producto eficiente con riesgo mínimo de pérdida de recursos y alto margen de éxito.
Citas
M. Kuhrmann, P. Diebold, J. Mu?nch, P. Tell, K. Trektere and F. McCaffery, V. Garousi, M. Felderer, O. Linssen, E. Hanser y C. R. Prause, “Hybrid software development approaches in practice: a European perspective”, IEEE Software, vol. 36, no. 4, pp. 20-31, en. 2018. Doi: 10.1109/MS.2018.110161245
H. Bünder y H. Kuchen, “A model-driven approach for behavior-driven GUI testing”, en Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, 2019, pp. 1742-1751. https://doi.org/10.1145/3297280.3297450
M. Callejas-Cuervo, A. C. Alarcón-Aldana y A. M. Álvarez-Carreño, “Modelos de calidad del software, un estado del arte”, Entramado, vol. 13, no. 1, pp. 236-250, en.-jun. 2017. https://doi.org/10.18041/entramado.2017v13n1.25125
A. S. Dookhun y L. Nagowah, “Assessing the effectiveness of test-driven development and behavior-driven development in an industry setting”, en 2019 International Conference on Computational Intelligence and Knowledge Economy (ICCIKE), 2019, pp. 365-370. Doi: 10.1109/ICCIKE47802.2019.9004328
H. Schulz, D. Okanovi?, A. Van Hoorn, V. Ferme y K. S. P. A. Switzerland, “Behavior-driven load testing using contextual knowledge: approach and experiences”, en ICPE’19: Tenth ACM/SPEC International Conference on Performance Engineering, 2019, pp. 265-272. https://doi.org/10.1145/3297663.3309674
A. C. Barus, “The implementation of ATDD and BDD from Testing Perspectives”, J. Phys.: Conf. Ser., vol. 1175, no. 012112, pp. 1-7, 2019. Doi: 10.1088/1742-6596/1175/1/012112
T. R. Benala y R. Mall, “DABE: differential evolution in analogy-based software development effort estimation”, Swarm Evol. Comput., vol. 38, pp. 158-172, febr. 2018. https://doi.org/10.1016/j.swevo.2017.07.009
A. Dávila, C. García y S. Cóndor, “Análisis exploratorio en la adopción de prácticas de pruebas de software de la ISO/IEC 29119-2 en organizaciones de Lima, Perú”, RISTI - Rev. Iber. Sist. e Tecnol. Inf., no. 21, pp. 1-17, mzo. 2017. Doi: 10.17013/risti.21.1-17
El Peruano, “Impulso a exportación de servicios”, sept. 2019 [En línea]. Disponible en: https://www.datasur.com/impulso-a-exportacion-de-servicios/
Gestión, “Perú tiene potencial para desarrollo de software dedicado al sector empresarial”, abr. 2016 [En línea]. Disponible en: https://gestion.pe/tecnologia/peru-potencial-desarrollo-software-dedicado-sector-empresarial-117244-noticia/
Gestión, “Mercado de la informática en Perú crecerá 9.7 % este año”, mzo. 2019 [En línea]. Disponible en: https://gestion.pe/economia/empresas/mercado-informatica-peru-crecera-9-7-ano-260535-noticia/
D. E. Muñoz (2019), Programa Crea Software Perú [En línea]. Disponible en: https://www.academia.edu/8312872/PROGRAMA_CREA_SOFTWARE_PERU
M. Ángel Valenzuela, “¿Qué hay de nuevo en la metacognición? Revisión del concepto, sus componentes y términos afines”, Educ. e Pesqui., vol. 45, e187571, 2019. https://doi.org/10.1590/S1678-4634201945187571
F. Arias, “Efectividad y eficiencia de la investigación tecnológica en la universidad”, Rev. Electrónica Cienc. y Tecnol. del Inst. Univ. Tecnol. Maracaibo, vol. 3, no. 1, pp. 64-84, 2017 [En línea]. Disponible en: http://www.recitiutm.iutm.edu.ve/index.php/recitiutm
M. Schwarz-Díaz (febr. 2017), Guía de referencia para la elaboración de una investigación aplicada [En línea]. Disponible en: https://core.ac.uk/download/pdf/162614981.pdf
E. M., Sánchez, H. T. Bózzola, A. Soler y S. I. Mariño, “Metodología para el relevamiento y análisis de la información”, Cienc. Lat. Rev. Científica Multidiscip., vol. 4, no. 1, pp. 99-115, 2020. https://doi.org/10.37811/cl_rcm.v4i1.44
A. Rodrigues da Silva, C. R. Paiva y V. E. R. da Silva, “Towards a test specification language for information systems: focus on data entity and state machine tests”, en Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development - MODELSWARD, 2018, pp. 213-224. Doi: 10.5220/0006608002130224
J. Mera Paz, “Análisis del proceso de pruebas de calidad de software”, Ing. Solidar., vol. 12, no. 20, pp. 163-176, oct. 2016. http://dx.doi.org/10.16925/in.v12i20.1482
D. Carrizo y A. Alfaro, “Método de aseguramiento de la calidad en una metodología de desarrollo de software: un enfoque práctico”, Ingeniare. Rev. chil. ing., vol. 26, no. 1, pp. 114-129, mzo. 2018. http://dx.doi.org/10.4067/S0718-33052018000100114
F. Sambinelli, E. L. Ursini, M. A. F. Borges y P. S. Martins, “Modeling and performance analysis of scrumban with test-driven development using discrete event and fuzzy logic”, en 2018 6th International Conference in Software Engineering Research and Innovation (CONISOFT), 2018, pp. 152-159. Doi: 10.1109/CONISOFT.2018.8645924
R. K. Lenka, S. Kumar y S. Mamgain, “Behavior driven development: tools and challenges”, en 2018 International Conference on Advances in Computing, Communication Control and Networking (ICACCCN), 2018, pp. 1032-1037. Doi: 10.1109/ICACCCN.2018.8748595
S. Ibarra y M. Muñoz, “Support tool for software quality assurance in software development”, en 2018 7th International Conference On Software Process Improvement (CIMPS), 2018, pp. 13-19. Doi: 10.1109/CIMPS.2018.8625617
T. Rocha, P. Borba y J. P. Santos, “Using acceptance tests to predict files changed by programming tasks”, J. Syst. Softw., vol. 154, pp. 176-195, ag. 2019. https://doi.org/10.1016/j.jss.2019.04.060
R. Kumar, N. Hasteer y J.-P. Van Belle, “Evaluating factors influencing contestant behavior in competitive software development”, en 2018 8th International Conference on Cloud Computing, Data Science & Engineering (Confluence), 2018, pp. 20-25. Doi: 10.1109/CONFLUENCE.2018.8442860
D. Lubke y T. van Lessen, “Modeling test cases in BPMN for behavior-driven development”, IEEE Softw., vol. 33, no. 5, pp. 15-21, 2016. Doi: 10.1109/MS.2016.117
M. G. Cavalcante y J. I. Sales, “The behavior driven development applied to the software quality test: a case study applied to the promotion of sports financing in Brazil”, en 2019 14th Iberian Conference on Information Systems and Technologies (CISTI), 2019, pp. 1-4. Doi: 10.23919/CISTI.2019.8760965
V. T. Sarinho, “‘BDD Assemble!’: A paper-based game proposal for behavior driven development design learning”, en Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 11863 LNCS, pp. 431-435, 2019. https://doi.org/10.1007/978-3-030-34644-7_41
M. M. Moe, “Comparative Study of test-driven development (TDD), behavior-driven development (BDD) and acceptance test-driven development (ATDD)”, Int. J. Trend Sci. Res. Dev., vol. 3, no. 4, pp. 231-234, 2019 [En línea]. Disponible en: http://www.ipindexing.com/article/14720
M. O’Brien, “Toward leveraging gherkin controlled natural language and machine translation for global product information development”, en Proceedings of the 21st Annual Conference of the European Association for Machine Translation: 28-30 May 2018, J. A. Pérez-Ortiz, et al., Eds. Alacant: Universitat d’Alacant, 2018, pp. 293-296 [En línea].
Disponible en: http://hdl.handle.net/10045/76107
S. Staroletov, “Building a process of trustworthy software developing based on BDD and ontology approaches with further formal verification”, en 9th Workshop “Program Semantics, Specification and Verification: Theory and Applications” dedicated to the memory of B. A. Trakhtenbrot, M. I. Dekhtyar, and M. K. Valiev (Yaroslavl, Russia, June 21-22, 2018),
N. Shilov y V. Zakharov, Eds. Yaroslavl: Yaroslavl State University, 2018, pp. 92-97 [En línea]. Disponible en: http://www.lib.uniyar.ac.ru/edocs/iuni/20180406.pdf#page=92
C. Maldonado, I. Gastañaga, C. I. Inchaurrondo, P. A. Vaca, M. Bueno, M. S. Romero y J. P. Peretti, “Estudio de adopción de técnicas de desarrollo de software guiado por las pruebas”, en XVIII Work. Investig. en Ciencias la Comput., Red de Universidades con Carreras en Informática, Entre Ríos, Argentina, 2016 [En línea]. Disponible en: http:// sedici.unlp.edu.ar/handle/10915/53454
I. Herman y M. Plechawska-Wójcik, “Study on applying the Cucumber tool in testing applications”, J. Comput. Sci. Inst., vol. 11, pp. 91-95, 2019. https://doi.org/10.35784/jcsi.146
C. Wiecher, S. Japs, L. Kaiser, J. Greenyer, R. Dumitrescu y C. Wolff, “Scenarios in the loop: integrated requirements analysis and automotive system validation”, en MODELS ‘20: Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, 2020, pp. 1-10. https://doi.
org/10.1145/3417990.3421264
A. Sheshasaayee y P. Banumathi, “Impacts of behavioral driven development in the improvement of quality software deliverables”, en 2018 3rd International Conference on Inventive Computation Technologies (ICICT), 2018, pp. 228-230. Doi: 10.1109/ICICT43934.2018.9034287
R. R. Dania Mailen, Z. Pérez Morales y M. D. Delgado Dapena, “Generador de valores interesantes para casos de pruebas unitarias”, Ing. Ind., vol. XL, no. 2, pp. 183-193, my.-ag. 2019 [En línea]. Disponible en: http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S1815-59362019000200183
G. Lucassen, F. Dalpiaz, J. M. E. M. van der Werf, S. Brinkkemper y Di. Zowghi, “Behavior-driven requirements traceability via automated acceptance tests”, en 2017 IEEE 25th International Requirements Engineering Conference Workshops (REW), 2017, pp. 431-434. Doi: 10.1109/REW.2017.84
A. Scandaroli, R. Leite, A. H. Kiosia y S. A. Coelho, “Behavior-driven development as an approach to improve software quality and communication across remote business stakeholders, developers and QA: two case studies”, en 2019 ACM/IEEE 14th International Conference on Global Software Engineering (ICGSE), 2019, pp. 105-110. Doi: 10.1109/
ICGSE.2019.00030
M. Härlin (2016), Testing and Gherkin in agile projects [En línea]. Disponible en: https://www.diva-portal.org/smash/record.jsf?pid=diva2 %3A908749&dswid=9136
B. Gonen y D. Sawant, “Significance of agile software development and SQA powered by automation”, en 2020 3rd International Conference on Information and Computer Technologies (ICICT), 2020, pp. 7-11. Doi: 10.1109/ICICT50521.2020.00009
M. Rahman y J. Gao, “A reusable automated acceptance testing architecture for microservices in behavior-driven development”, en 2015 IEEE Symposium on Service-Oriented System Engineering, 2015, vol. 30, pp. 321-325. Doi: 10.1109/SOSE.2015.55
F. Huang, Y. Wang, Y. Wang y P. Zong, “What software quality characteristics most concern safety-critical domains?”, en Proceedings - 2018 IEEE 18th International Conference on Software Quality, Reliability, and Security Companion, QRS-C 2018, 2018, pp. 635-636. Doi: 10.1109/QRS-C.2018.00111
A. Z. H. Yang, D. Alencar da Costa y Y. Zou, “Predicting co-changes between functionality specifications and source code in behavior driven development”, en 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), 2019, pp. 534-544. Doi: 10.1109/MSR.2019.00080
N. Gao y Z. Li, “Generating testing codes for behavior-driven development from problem diagrams: a tool-based approach”, en 2016 IEEE 24th International Requirements Engineering Conference (RE), 2016, pp. 399-400. Doi: 10.1109/RE.2016.54
G. Oliveira y S. Marczak, “On the empirical evaluation of BDD scenarios quality: preliminary findings of an empirical study”, en 2017 IEEE 25th International Requirements Engineering Conference Workshops (REW), 2017, pp. 299-302. Doi: 10.1109/REW.2017.62
S. Bonfanti, A. Gargantini y A. Mashkoor, “Generation of behavior-driven development C++ tests from Abstract State Machine scenarios”, Commun. Comput. Inf. Sci., vol. 929, pp. 146-152, oct. 2018. https://doi.org/10.1007/978-3-030-02852-7_13
F. Zampetti, A. Di Sorbo, C. A. Visaggio, G. Canfora y M. Di Penta, “Demystifying the adoption of behavior-driven development in open source projects”, Inf. Softw. Technol., vol. 123, p. 106311, jul. 2020. https://doi.org/10.1016/j.infsof.2020.106311
Y. Wang y S. Wagner, “Combining STPA and BDD for safety analysis and verification in agile development: a controlled experiment”, en Agile Processes in Software Engineering and Extreme Programming. XP 2018. Lecture Notes in Business Information Processing, J. Garbajosa, X. Wang y A. Aguiar. Eds. Cham: Springer, 2018, pp. 37-53. https://doi.
org/10.1007/978-3-319-91602-6_3
Z. Ali, “Behavior-driven development as an error-reduction practice for mobile application testing”, IJCSI, vol. 16, no. 2, , pp. 1-10, mzo. 2019. https://doi.org/10.5281/zenodo.3234110 1