Análisis y comparación de las propuestas recientes para diseñar casos de prueba desde los casos de uso orientados a verificar los aspectos funcionales del software (2012)
Este documento contiene la relación del trabajo de investigación de la tesis para optar al título de maestría en ingeniería de software, respecto de un análisis y comparación de las propuestas recientes para el diseño de casos de prueba desde los casos de uso orientados a verificar los aspectos funcionales del software. En el transcurso de la investigación consultamos la literatura hasta encontrar las propuestas promulgadas de 2000 en adelante alrededor de esta temática. Las propuestas seleccionadas se aplicaron a un estudio de caso con el objetivo de analizar y evaluar los resultados a través de métricas valorativas. Posteriormente, se identificaron los conceptos que las soportan y finalmente se estructuró una nueva propuesta, con el objetivo de recoger las mejores prácticas que exponen y con base en estos conceptos. También se presenta una descripción de cada una de las propuestas y al final una identificación de los conceptos que las soportan. Este trabajo parte de una necesidad en la industria y la academia relacionada con las pruebas del software. La industria requiere propuestas que describan metodologías para aplicar pruebas desde las fases iniciales del ciclo de vida del software, y la academia necesita textos que describan métodos útiles o de fácil incorporación a los procesos formativos. Por lo que esta tesis es una fuente de consulta para la industria, dado su carácter empírico, y para la academia, dado su contenido teórico-aplicativo. La consulta del estado del arte permitió identificar nueve propuestas que describen métodos para diseñar casos de prueba desde los casos de uso para verificar los aspectos funcionales del software. Cada una de ellas detalla una serie de pasos para lograr el objetivo planteado, y aunque al aplicarlos sobre el estudio de caso se encontraron dificultades también se identificaron buenas prácticas. El resultado del proceso se estructuró en tablas comparativas, las cuales constituyeron la fuente para identificar los conceptos y procesos clave de las propuestas que luego se estructuraron en un método que recoge las mejores prácticas. Al final de este documento se plantean cuestiones y temas para desarrollar trabajos futuros alrededor de esta temática que no se cubren en el desarrollo de la tesis dado que están por fuera de su alcance. Entre estos temas cabe mencionar: pruebas estructurales o de caja blanca, automatización de las pruebas, validación del software, requisitos no funcionales, entre otros. Este trabajo hace dos aportes fundamentales: 1) el análisis comparativo, que es novedoso dado que en la revisión a la literatura no se encontraron estudios similares; y 2) la integración, estructuración, descripción y aplicación de una nueva propuesta para diseñar casos de prueba desde los casos uso, en la que se utiliza las buenas prácticas de las propuestas analizadas, y se aportan conceptos novedosos y actuales en el campo de la ingeniería del software./Abstract. This document contains the list of the research of the thesis for the degree of expertise in software engineering, for analysis and comparison of recent proposals for the design of test cases from use cases designed to verify aspects functional software. During the research we consulted the literature to find the proposals enacted from 2000 onwards around this theme. The selected proposals were applied to a case study in order to analyze and evaluate the results through valuation metrics. Subsequently, we identified the concepts that support and finally a new proposal was structured with the aim to collect best practices that expose and based on these concepts. It also presents a description of each of the proposals and finally identification of the concepts that support them. This paper is a need in industry and academia related to software testing. The industry requires proposals that describe methodologies for applying evidence from the initial phases of software life cycle, and academia need texts that describe methods useful or easily incorporated into the training processes. So this thesis is a resource for the industry, given its empirical character, and academia, because they contain theory and application. The state of the art consultation identified nine proposals that describe methods for designing test cases from use cases to verify the functional aspects of software. Each details a series of steps to achieve the stated objective, and even when applied to the case study found difficulties were also identified best practices. The above process was structured in comparative tables, which were the source to identify key concepts and processes of the proposals which are then structured in a method that incorporates the best practices. At the end of this paper raises questions and issues to develop future work around this issue not covered in the development of the thesis as they are outside its scope. These issues include: evidence of structural or white box test automation, software validation, non-functional requirements, among others. This paper makes two fundamental contributions: 1) the comparative analysis is novel because in the literature review found no similar studies, and 2) integration, structuring, describing and implementing a new proposal to design test cases from use cases, which is used best practices of the proposals analyzed, and are provided for current and new concepts in the field of software engineering.