Christian Quesada-López

Christian Quesada-López

Descripción: 

Investigador en ingeniería de software (SE) experimental, con interés en medición y calidad del software, metodologías de desarrollo híbidas y ágiles, aplicaciones móviles e inteligencia artificial aplicada a la SE.

Es estudiante: 
No

Formación académica

  • Doctor en Computación e Informática. Universidad de Costa Rica. Con honores, 2018.
  • Maestría en Computación e Informática. Universidad de Costa Rica. Con honores, 2012.
  • Bachillerato en Ingeniería en Computación. Instituto Tecnológico de Costa Rica, 2002.

Experiencia laboral

Proyectos de investigación

  • Evaluación empírica de una metodología para la automatización de la medición del tamaño funcional del software, No. 834-B8-A27. Investigador Principal. Unidad: CITIC, ECCI, UCR. 2018-2020.
  • Evaluación de herramientas automatizadas para pruebas de software basadas en modelos, No. 834-B7-749. Unidad: CITIC. Investigador colaborador, 2017-2019.
  • Medición automatizada del tamaño funcional de aplicaciones transaccionales, No. 834-B5-A18. Unidad: CITIC. Investigador principal, 2015-2017.
  • Plataforma de servicios nutricionales ofrecidas a través de dispositivos móviles para el monitoreo de metas relacionadas con alimentación saludable, No. 450-B4-345. Unidad: Escuela de Nutrición. Investigador colaborador, 2014-2017.
  • Desarrollo de competencias en Tecnologías de la Información (TI) en el ámbito de la Administración de Negocios, No. 221-B4-035. Unidad: Escuela de Administración de Negocios. Investigador principal, 2014-2016.

Experiencia académica

  • Profesor Invitado de la Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica. 2017-presente.
  • Profesor interino de la Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica. Curso de Desarrollo de Aplicaciones para Dispositivos Móviles, 2017.
  • Profesor del Programa de Posgrado en Computación e Informática. Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica. Cursos de Métricas de Software e Ingeniería de Software Experimental, 2015. Actualmente dirijo trabajos de investigación aplicada (TFIA).
  • Investigador del Centro de Investigaciones en Tecnologías de la Información y Comunicación (CITIC). Universidad de Costa Rica, 2014-presente.
  • Profesor interino de la Escuela de Ciencias Naturales y Exactas. Universidad Estatal a Distancia. Curso de Investigación Dirigida en la Licenciatura Ingeniería en Informática y Calidad del Software, 2016.
  • Profesor interino de la Escuela de Administración de Negocios. Facultad de Ciencias Económicas. Universidad de Costa Rica. Cursos del área de tecnologías y sistemas de información, 2010-2016.
  • Profesor interino de la Escuela de Sistemas de Información, Telemática y Electrónica. Facultad de Ingeniería. Universidad Latina de Costa Rica. Cursos en el área de programación y computación. 2008-2011.

Experiencia Profesional

  • Asesor. Ministerio de Ciencia, Tecnología y Telecomunicaciones (MICITT). Proyectos en tecnologías de la información relacionados con ingeniería del software, estándares de calidad, investigación y desarrollo, gobernanza digital, datos abiertos, software libre, entre otros. 2016-presente.
  • Director de Proyectos. TECNYSIS S.A. Administración de proyectos en tecnología web y cliente/servidor multicapa para el sector público y privado. 2008-2012.
  • Líder Técnico, Analista y Desarrollador. TECNYSIS S.A. Sistemas en el área de Logística y Comercio Internacional. 2001-2008.
  • Consultor Informático. YANBER S.A. Desarrollo del Sistema Web del Centro de Documentación Virtual en el proceso de certificación de Calidad ISO-9000. 2001.

Proyectos

Publicaciones

Evaluation of a model-based testing platform for Java applications

Descripción:

Model-based testing (MBT) automates the design and generation of test cases from a model. This process includes model building, test selection criteria, test case generation, and test case execution stages. Current tools support this process at various levels of automation, most of them supporting three out of four stages. Among them is MBT4J, a platform that extends ModelJUnit with several techniques, offering a high level of automation for testing Java applications. In this study, the authors evaluate the efficacy of the MBT4J platform, in terms of the number of test cases generated, errors detected, and coverage metrics. A case study is conducted using two open-source Java systems from public repositories, and 15 different configurations. MBT4J was able to automatically generate five models from the source code. It was also able to generate up to 2025 unique test cases for one system and up to 1044 for the other, resulting in 167 and 349 failed tests, respectively. Transition and transition pair coverage reached 100% for all models. Code coverage ranged between 72 and 84% for the one system and between 59 and 76% for the other. The study found that Greedy and Random were the most effective testers for finding errors.

Tipo de publicación: Journal Article

Publicado en: IET Software

Evaluating a model-based software testing approach in an industrial context: A replicated study

Descripción:

Software organizations are continuously looking for techniques to increase the effectiveness and efficiency of their testing processes. Model-based testing (MBT) is an approach that automates the design and generation of test cases based on a model that represents the system under test. MBT can reduce the cost of software testing and improve the systems quality. However, the introduction of the MBT approach could be complex for software development teams in the industry. This paper replicates a previous study that evaluated the use of MBT by software engineers in an industrial context. The goal of this replication is to evaluate the feasibility and acceptance of the MBT approach from the perspective of quality engineers testing a software application in the industry. We conducted a case study with four quality assurance engineers who modeled one module of the system under test, and then generated and executed a set of test cases using an MBT tool. Participants were able to use MBT to model and test the software system and provided several insights about the challenges and opportunities of using this approach.

Tipo de publicación: Conference Paper

Publicado en: 14th Iberian Conference on Information Systems and Technologies (CISTI)

Comparing the effort and effectiveness of automated and manual tests

Descripción:

This paper presents three case studies that compare the effort and effectiveness of automated versus manual testing, in the context of a multinational services organization. Effort is measured in terms of the total test time, which includes script creation and test execution in the case of automated testing, and comprises test execution and reporting in the case of manual testing. Effectiveness is measured in terms of the number and severity of defects found. The software under test is a set of Java web applications. The testing process was carried out by two testers within the organization. Our results show that automated testing needs a higher initial effort, mainly caused by the creation of the scripts, but this cost can be amortized in time as automated tests are executed multiple times for regression testing. Results also show that automated testing is more effective than manual testing at finding defects.

Tipo de publicación: Conference Paper

Publicado en: 14th Iberian Conference on Information Systems and Technologies (CISTI)

Model-based testing areas, tools and challenges: A tertiary study

Descripción:

Context: Model-based testing is one of the most studied approaches by secondary studies in the area of software testing. Aggregating knowledge from secondary studies on model- based testing can be useful for both academia and industry. 

Objective: The goal of this study is to characterize secondary studies in model-based testing, in terms of the areas, tools and challenges they have investigated. 

Method: We conducted a tertiary study following the guidelines for systematic mapping studies. Our mapping included 22 secondary studies, of which 12 were literature surveys and 10 systematic reviews, over the period 1996–2016. 

Results: A hierarchy of model-based testing areas and subareas was built based on existing taxonomies as well as data that emerged from the secondary studies themselves. This hierarchy was then used to classify studies, tools, challenges and their tendencies in a unified classification scheme. We found that the two most studied areas are UML models and transition-based notations, both being modeling paradigms. Regarding tendencies of areas in time, we found two areas with constant activity through time, namely, test objectives and model specification. With respect to tools, we only found five studies that compared and classified model-based testing tools. These tools have been classified into common dimensions that mainly refer to the model type and phases of the model-based testing process they support. We reclassified all the tools into the hierarchy of model-based testing areas we proposed, and found that most tools were reported within the modeling paradigm area. With regard to tendencies of tools, we found that tools for testing the functional behavior of software have prevailed over time. Another finding was the shift from tools that support the generation of abstract tests to those that support the generation of executable tests. For analyzing challenges, we used six categories that emerged from the data (based on a grounded analysis): efficacy, availability, complexity, professional skills, investment, cost & effort, and evaluation & empirical evidence. We found that most challenges were related to availability. Besides, we too classified challenges according to our hierarchy of model-based testing areas, and found that most challenges fell in the model specification area. With respect to tendencies in challenges, we found they have moved from complexity of the approaches to the lack of approaches for specific software domains. 

Conclusions: Only a few systematic reviews on model-based testing could be found, therefore some areas still lack secondary studies, particularly, test execution aspects, language types, model dynamics, as well as some modeling paradigms and generation methods. We thus encourage the community to perform further systematic reviews and mapping studies, following known protocols and reporting procedures, in order to increase the quality and quantity of empirical studies in model-based testing.

Tipo de publicación: Journal Article

Publicado en: CLEI Electronic Journal

Identifying implied security requirements from functional requirements

Descripción:

The elicitation of software security requirements in early stages of software development life cycle is an essential task. Using security requirements templates could help practitioners to identify implied software security requirements from functional requirements in the context of a software system. In this paper, we replicated a previous study that analyzed the effectiveness of security requirements templates to support the identification of security requirements. Our objective was to evaluate this approach and compare the applicability of the previous findings. We conducted the first replication of the controlled experiment in 2015, and subsequently conducted two differentiated replications in 2018. We evaluated the responses of 33 participants in terms of quality, coverage, relevance and efficiency and discussed insights regarding the impact of context factors. Participants were divided into treatment (security requirements templates) and control groups (no templates). Our findings support some previous results: treatment group performed significantly better than the control group in terms of the coverage of the identified security requirements. Besides, the requirements elicitation process performed significantly better in relevance and efficiency metrics in two of the three replications. Security requirements templates supported participants to identify a core set of the security requirements and participants were favorable towards the use of templates in identifying security requirements.

Tipo de publicación: Conference Paper

Publicado en: 14th Iberian Conference on Information Systems and Technologies (CISTI)

A survey of software testing practices in Costa Rica

Descripción:

Software testing is an essential activity in software development projects for delivering high quality products. In a previous study, we reported the results of a survey of software engineering practices in the Costa Rican industry. To analyze more in depth the specific software testing practices among practitioners, we replicated a previous survey conducted in South America. Our objective was to characterize the state of the practice based on practitioners use and perceived importance of software testing practices. This survey evaluated 42 testing practices grouped in three categories: processes, activities and tools. A total of 92 practitioners responded to the survey. The participants indicated that: (1) task for recording of the results of tests, documentation of test procedures and cases, and re-execution of tests when the software is modified are useful and important for software testing practitioners. (2) Acceptance and system testing are the two most useful and important testing types. (3) Tools for recording defects and the effort to fix them (bug tracking) and the availability of a test database for reuse are useful and important. Regarding the use of practices, the participants stated that (4) Planning and designing of software testing before coding and evaluating the quality of test artifacts are not a regular practice. (5) There is a lack of measurement of defect density and test coverage in the industry; and (6) tools for automatic generation of test cases and for estimating testing effort are rarely used. This study gave us a first glance at the state of the practice in software testing in a thriving and very dynamic industry that currently employs most of our computer science professionals. The benefits are twofold: for academia, it provides us with a road map to revise our academic offer, and for practitioners it provides them with a first set of data to benchmark their practices. © XXII Ibero-American Conference on Software Engineering, CIbSE 2019. All rights reserved.

Tipo de publicación: Conference Paper

Publicado en: XXII Ibero-American Conference on Software Engineering, CIbSE 2019

Evaluating Model-Based Testing in an Industrial Project: An Experience Report

Descripción:

Model-based testing (MBT) is an approach that automates the design and generation of test cases based on a model that represents the system under test. MBT can reduce the cost of software testing and improve the quality of systems in the industry. The goal of this study is to evaluate the use of MBT in an industrial project with the purpose of analyzing its efficiency, efficacy and acceptance by software engineers. A case study was conducted where six software engineers modeled one module of a system, and then generated and executed the test cases using an MBT tool. Our results show that participants were able to model at least four functional requirements each, in a period of 20 to 60 min, reaching a code coverage between 39% and 59% of the system module. We discussed relevant findings about the completeness of the models and common mistakes made during the modeling and concretization phases. Regarding the acceptance of MBT by participants, our results suggest that while they saw value in the MBT approach, they were not satisfied with the tool used (MISTA), because it did not support key industry needs.

Tipo de publicación: Book Chapter

Publicado en: Advances in Intelligent Systems and Computing

Using Model-Based Testing to Reduce Test Automation Technical Debt: An Industrial Experience Report

Descripción:

Technical debt is the metaphor used to describe the effect of incomplete or immature software artifacts that bring short-term benefits to projects, but may have to be paid later with interest. Software testing cost is proven to be high due to the time (and resource)-consuming activities involved. Test automation is a strategy that can potentially reduce this cost and provide savings to the software development process. The lack or poor implementation of a test automation approach derives in test automation debt. The goal of this paper is to report our experience using a model-based testing (MBT) approach on two industrial legacy applications and assess its impact on test automation debt reduction. We selected two legacy systems exhibiting high test automation debt, then used a MBT tool to model the systems and automatically generate test cases. We finally assessed the impact of this approach on the test automation technical debt by analyzing the code coverage attained by the tests and by surveying development team perceptions. Our results show that test automation debt was reduced by adding a suite of automated tests and reaching more than 75% of code coverage. Moreover, the development team agrees in that MBT could help reduce other types of technical debt present in legacy systems, such as documentation debt and design debt. Although our results are promising, more studies are needed to validate our findings.

Tipo de publicación: Book Chapter

Publicado en: Advances in Intelligent Systems and Computing

Incorporando pruebas basadas en modelos para servicios web en un proceso de desarrollo ágil: Un caso de estudio en la industria

Descripción:

Los equipos ágiles enfrentan dificultades para poder realizar pruebas de software a profundidad, dadas las iteraciones cortas de desarrollo. En muchos casos, las pruebas para servicios web se realizan manualmente, consumen mucho tiempo y requieren la experiencia de los miembros del equipo. Un enfoque de pruebas basadas en modelos, que permita la automatización de estas pruebas, podría mejorar la eficiencia del proceso y la calidad de los productos sin embargo, su adopción no debería contravenir los valores, principios y prácticas de las metodologías ágiles. En este caso de estudio discutimos el proceso realizado para incorporar pruebas basadas en modelos para automatizar las pruebas de servicios web en un equipo que implementa prácticas ágiles, y analizamos su efectividad al usar la herramienta TestOptimal sobre servicios web RESTful. Asimismo, discutimos las percepciones de los miembros del equipo, los retos y oportunidades de uso de este tipo de enfoques en equipos ágiles. Los resultados indican que las pruebas basadas en modelos permiten aumentar la cantidad de casos de prueba y defectos encontrados. Por su parte, los miembros del equipo consideran que para aumentar la aceptación de estos enfoques durante el desarrollo de un proyecto ágil, son esenciales el conocimiento para el modelado y las herramientas de apoyo. A pesar de que se logra una mejora en la generación de casos de pruebas automatizados y en la detección de errores, las pruebas basadas en modelos se perciben como un enfoque complejo de aplicar.

Tipo de publicación: Magazine Article

Publicado en: Revista Ibérica de Sistemas e Tecnologias de Informação

Sitio web

https://www.researchgate.net/profile/Christian_Quesada-Lopez