Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo V Pruebas Al Prototipo: 5.1 Pruebas de Integración
Capítulo V Pruebas Al Prototipo: 5.1 Pruebas de Integración
Pruebas al Prototipo
Finalmente Travis corre todas las pruebas unitarias que hay en el proyecto mediante el
comando “go test –v ./…”. En dicho comando las palabras “go test” significan que se
compilara el código del proyecto y luego se correrán las pruebas de los archivos con
terminación “_test.go”. La bandera “-v” significa que se imprimirá una descripción extendida
de cada prueba. Y por último “./…” significa que las pruebas se buscarán de forma iterativa
en todo el proyecto.
Tal y como Dave Cheney menciona, escribir benchmarks es una excelente manera de
comunicar una mejora en el rendimiento o una regresión de un modo reproducible [13].
22
5.3 Pruebas de operación
Se crearon diversas pruebas para comprobar que la librería cumpliera con el objetivo
para el cual fue diseñada. Debido a que se trata de una librería, se crearon varios escenarios
para la prueba de la misma, tales como: accesos a una base de datos, utilización de
arquitecturas en capas y utilización de objetos globales. Asimismo se verificó que las
validaciones para el archivo de configuración funcionaran de manera correcta.
Se diseñaron diversas pruebas para verificar que la interfaz del objeto principal fuera
fácil de entender y tuviera las funciones necesarias para que el usuario programador pueda
comenzar a utilizarla de manera fácil e intuitiva.
23
CAPÍTULO VI
Análisis de Resultados
Existen algunos estudios como el realizado por Ekaterina Razina y David Janzen [14]
que mencionan que el mantenimiento del software consume alrededor del 70% del ciclo de
vida del mismo. Igualmente mencionan que algunos estudios [10, 11] muestran que módulos
pequeños, desacoplados y con una alta cohesión conllevan un incremento en la
mantenibilidad.
Acoplamiento entre objetos (CBO). Se refiere al número de clases a la cual una clase
en particular esta acoplada.
La cohesión es el grado de similitud de los métodos [12, 13]. También podemos decir que
es el grado en el cual cada parte del módulo está asociada con la otra [14].
6.2 Descripción de las gráficas, tablas, dibujos, figuras, etc., obtenida del tratamiento
aplicado a la información recolectada.
25
CAPÍTULO VII
Conclusiones
7.1 Discusión
Lo anterior esta fuera del alcance de este proyecto, cuyo propósito es solo la creación
de dicha librería y no observa la eficacia de la misma. Por lo tanto no se observa el grado en
que esta librería ayuda a crear código más mantenible, si ayuda a reducir las líneas de
código o que tanto ayuda a reducir el tiempo de desarrollo de un proyecto.
26
7.2 Cumplimientos de los objetivos
Se procedió a revisar varios documentos del tema que incluían la teoría detrás de la
Inyección de Dependencias así como investigaciones acerca de la influencia de la misma en
el código de un proyecto.
En el desarrollo del proyecto fueron utilizadas dos tipos de pruebas: pruebas unitarias,
para probar cada parte del código y pruebas de integración, para probar todos los módulos y
componentes del proyecto a la vez.
27
7.2.6 Medición del impacto del proyecto
La documentación de manejo de la librería así como de los métodos que esta expone
para uso de los usuarios programadores se encuentra directamente en el repositorio de
Github el cual se encuentra en la url https://github.com/cone/digo para facilitar el acceso a la
misma.
Podemos decir que la hipótesis se cumplió satisfactoriamente dado que la librería fue
creada y probada exitosamente.
Ahora que existe una librería para la Inyección de Dependencias en el lenguaje Go,
los proyectos de software podrán ser construidos de manera que tengan una mayor
flexibilidad y puedan ser probados más fácilmente.
28
7.8 Recomendaciones para continuar con la investigación en lo futuro
29
Referencias
[4] Test and Deploy with Confidence. Consultado en Mayo 21, 2015, de https://travis-ci.org/
[5] E. Gamma, R. Helm, R. Johnson, and J. Vlissides (1995). Design patterns: Elements of
reusable object-oriented software. Reading, Mass.: Addison-Wesley.
[6] Meyer Bertrand (1988). Object Oriented Software Construction. Reading, Mass.: Prentice
Hall.
[8] S. Chacon and B. Straub (2010, August 2). Pro Git. Recuperado de:
http://labs.kernelconcepts.de/downloads/books/Pro%20Git%20-%20Scott%20Chacon.pdf
[9] S. Chacon and B. Straub. (2010, August 2). Pro Git. Recuperado de: http://git-
scm.com/book/en/v2/GitHub-Account-Setup-and-Configuration
[12] R. Johnson and B. Foote. (1988, June/July). Designing Reusable Classes. Recuperado
de: http://www.laputan.org/drc/drc.html
[13] D. Cheney. (2013, June 30). How to write benchmarks in go. Recuperado de:
http://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go
[14] E. Razina and D. Janzen. (2007, November 19-21). Effects of dependency injection on
maintainability. Recuperado de:
http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1035&context=csse_fac
[15] E. Arisholm. Dynamic coupling measures for object oriented software. IEEE Symposium
on Software Metrics, 30(8), 2002, 33-34.
30
Referencias (continuación …)
[16] C. Rajaraman and M.R. Lyu. Reliability and maintainability related software coupling
metrics in C++ programs. In Third International Symposium on Software Reliability, North
Carolina, USA, 1992, 303-311.
[17] S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE
Transactions on Software Engineering, 20(6), 1994, 476-493.
[18] L. Briand, J. Daly, and J. Wust. A unified framework for coupling measurement in object-
oriented systems. IEEE Transactions on Software Engineering, 24(1), 1999, 91-121.
31