You are on page 1of 6

ESTUDIO DE ADOPCIN DE TCNICAS DE DESARROLLO DE

SOFTWARE GUIADO POR LAS PRUEBAS

Calixto Maldonado, Iris Gastaaga, Claudia Inchaurrondo, Pablo Vaca, Matas


Bueno, Mara Soledad Romero, Juan Pablo Peretti

Grupo de Investigacin, Desarrollo y Transferencia de Sistemas de Informacin


(GIDTSI)/ Departamento Ing. Sistemas de Informacin / Facultad Regional
Cordoba / Universidad Tecnologica Nacional
Maestro Lpez y Cruz Roja
calixtomaldonado@hotmail.com, vacapablo72@gmail.com, matiasbueno@gmail.com,
cinchaurrondo@hotmail.com, romeroma.soledad@gmail.com, peretti.juan@gmail.com

Resumen calidad, mtricas, mantenimiento,


trazabilidad, requerimientos, bases de
En el presente proyecto, dentro del datos, seguridad, relacionados con las
Grupo de Investigacin, Desarrollo y
Transferencia de Sistemas de Informacin reas de conocimiento: Sistemas de
(GIDTSI), se estudiaron las Informacin, Gestin Ingenieril y
implementaciones existentes de los Programacin.
frameworks aplicados en Test-Driven
Development (TDD) y Behavior-Driven A inicios del 2013 se observ en el pas
Development (BDD) y como resultado al una fuerte tendencia a aplicar esfuerzos
final del mismo se prev proponer una en TDD (Test-Driven Development) y
forma de integracin entre distintas adems, se estaba empezando a trabajar
tcnicas de (TDD) y (BDD). Para el en BDD (Behavior-Driven Development).
estudio de campo entre las empresas de
Se conoca que para tal fin existan
de desarrollo de software se ha creado un
formulario de encuesta con fecha prxima diferentes frameworks tales como JUnit o
de publicacin para ser completado por SUnit, los cuales se encontraban en un
responsables de rea de Desarrollo de avanzado grado de desarrollo e
software y de Testing. implementacin.
Palabras clave: TDD, BDD, Ingeniera
de Software, testing Si bien todas las metodologas de
desarrollo de software basadas en las
pruebas son una disciplina relativamente
Contexto nueva, ya que han cobrado auge en los
ltimos 10 aos, podemos nombrar
En la Facultad Regional Crdoba de la
algunos referentes a nivel internacional
Universidad Tecnolgica Nacional el
como Kent Beck (1) y Martn Fowler (2).
Grupo GIDTSI tiene como una de sus
En el mbito local, actualmente en la
lneas de investigacin a la Ingeniera en
UTN Facultad Regional Crdoba no hay
Sistemas de Informacin y de Software,
grupos trabajando en la materia, y en el
incluyendo proyectos de investigacin en
resto del pas solamente un grupo mixto
del LIFIA (UNLP) y de la Facultad de Sin embargo, varios investigadores y
Ingeniera de la UBA estn investigando practicantes (5) han alertado que la
la aplicacin de estos enfoques al proliferacin de enfoques al desarrollo de
desarrollo de sistemas web. software basado en pruebas disminuye su
aplicabilidad en la industria. Es por esto
Introduccin que durante el proyecto de investigacin
se propuso desarrollar las siguientes
El desarrollo de software se ha
actividades:
transformado a lo largo del tiempo de un
arte a un proceso detallado tendiente a - Investigar los procesos de desarrollos
obtener software de alta calidad, basados en la generacin de las pruebas
mantenible y por sobre todo confiable a lo como primer paso en el desarrollo de
largo del tiempo (1) (2). Es conocido en software (BDD, TDD, ATDD, STDD,
el mbito del desarrollo de software que NDD, DDD) comparando los diversos
el 70% del costo de un sofware a lo largo enfoques segn la ptica de diversos
de la vida til del mismo es consumido en autores y agregando nuestro punto de
la etapa de mantenimiento (3) (4), por lo vista basado en la experiencia profesional
tanto es necesario encontrar mecanismos, en el mbito privado utilizando estas
ya sean manuales o automticos que nos metodologas.
permitan garantizar que lo que se
encuentra funcionando en un software - Investigar los distintos software y
siga funcionando luego de la introduccin arquitecturas existentes para la
de nuevas caractersticas. automatizacin de las pruebas,
comparando los mismos, instalando y
El desarrollo de software guiado por el probando cada uno de ellos, generando
negocio (BDD y STDD por sus siglas en conclusiones y exponiendo las mismas en
ingls) o el desarrollo de software guiado documentacin con el objetivo de
por las pruebas unitarias o de integracin compartir con la comunidad acadmica
(TDD y ATDD por sus siglas en ingls y nuestras conclusiones. A modo de
todas sus variantes) son dos alternativas ejemplo de los software a investigar se
que buscan garantizar que el desarrollo citan los siguiente: Jbehave (6), Selenium
progresivo e incremental del software se (7), JUnit (8) (9), NUnit, easyb (10) (11),
hace de manera controlada y RSpec(12), HttpUnit. Las pruebas se
salvaguardando el software ya ejecutaro sobre dos plataformas de
desarrollado, son dos tcnicas que se sistemas operativos una en Linux y otra
pueden implementar en conjunto o por sobre Windows, y como lenguajes de
separado, en ambos casos son tcnicas programacin se utilizarn Java, Visual
que permiten automatizacin logrando de C++, Visual Basic, HTML, Javascript, en
esta manera la reduccin en los tiempos el caso de servidores web se utilizar
de pruebas unitarias, pruebas de regresin Apache Tomcat.
y pruebas de integracin (5).
- Investigar los software y arquitecturas Lneas de Investigacin,
asociadas al proceso, el cual se utiliza Desarrollo e Innovacin
para medir la calidad de las pruebas y la
cobertura que tienen los test sobre el La investigacin completa se bas en
cdigo que se est probando, tales como procesos de investigacin y se utilizarn
Maven(14) (15), Visual Studio (16) (17), tcnicas deductivas y exploratorias, pero
SimpleCov(18) (19). Se instal el siempre apuntando a una investigacin
software y se ejecutaron pruebas del aplicada.
mismo.
Uno de los objetivos del presente
- Como resultado de la investigacin se proyecto es realizar los contactos con
generar una propuesta de integracin de grupos que se encuentren trabajando en la
varios enfoques y se estructurar una materia, tanto a nivel nacional como en el
propuesta de desarrollo de un framework extranjero, con el fin de crear vnculos y
(software y arquitectura) que permita la lograr intercambio de conocimientos. Por
integracin automtica, facilitando la otra parte, esta metodologa est cobrando
aplicacin de estos mtodos de desarrollo importancia dentro de las empresas que
en el ambiente industrial. desarrollan software y se est volviendo
una prctica normal y obligatoria durante
- A modo de transferencia de los el ciclo de vida de los proyectos de
conocimientos adquiridos y generados en software. Por ejemplo, la empresa en la
los pasos anteriores, se trabajar en la cual trabaja el Ing Pablo Vaca (Globant)
difusin de los resultados en cuatro es una de las que est dando mucho
aspectos: impulso al uso de estas prcticas.
1. Se buscar interesar a las ctedras de Actualmente los ms utilizados son los
anlisis, diseo y programacin para basados en BDD y TDD. Integrantes del
realizar intercambio de transferencia al equipo de investigacin trabajan
aula de los avances logrados en este habitualmente en el mbito privado con
trabajo. ambas tcnicas. Se disponen de
2. Se buscar interesar a los laboratorios conocimientos sobre ambas tcnicas pero
de desarrollo de software existentes en la con implementaciones separadas,
universidad para el intercambio de mediante el presente proyecto se buscar
experiencias y realizar transferencia de profundizar en la integracin entre
los avances en el proyecto. distintas tcnicas.

3. Se enviaron artculos de difusin y Por otra parte los resultados obtenidos del
cientficos a los siguientes congresos proyecto son la base para la formacin de
WICC, JAIIO.[1] [2]. recursos humanos capacitados para
desenvolverse en el mbito privado y
pblico, as como la aplicacin de la
gama de servicio que ofrece el laboratorio
de desarrollo de Software, generando de de los temas principales del proyecto. Se
esta forma puestos de trabajo de alta nivel preve publicar en la web la presentacin
y requeridos a nivel mundial. electronica, y si los medios disponibles lo
permiten obtener un registro en video de
Las actividades fueron: una etapa la misma.
exploratoria, en la cual se hizo un estudio
bibliogrfico de fuentes conocidas e Objetivos Generales del Proyecto:
investigar nuevos trabajos publicados
sobre la materia, a la cual le sigui una - Investigar la posible integracin de las
etapa de investigacin aplicada, probando distintas metodologas de desarrollo
productos de cdigo libre y abierto guiado por pruebas.
disponible y comparando sus
- Proponer un marco terico para la
funcionalidades.
integracin de algunas de estas
Para la elaboracin de papers se trabaj metodologas y establecer los
planteando hiptesis y luego mediante requerimientos de un framework que
investigacin bibliogrfica, intercambio permita automatizar la aplicacin
con otros grupos y pruebas desarrolladas integrada de dichas metodologas.
sobre el sofware instalado se buscar
Objetivos Particulares del
demostrar la misma o explicar por que
dicha hiptesis no es correcta. Proyecto:

Para la instalacin de software y entornos - Estudiar las metodologas de desarrollo


de ejecucin de pruebas se utilizaron guiado por pruebas y establecer un foco
tcnicas deductivas, partiendo de la de transferencia de resultados hacia la
lectura de la documentacin de cada universidad y la industria.
software y de foros que traten el tema,
- Instalar un entorno real de pruebas que
documentado cada paso y situacin a
le permitan al equipo experimentar y
resolver, con la finalidad de armar una
poner en prctica las conclusiones
base de conocimiento sobre el tema, que
alcanzadas durante la investigacin.
luego sirva para la elaboracin de
documentacin de base en las -Formar recursos humanos especializados
transferencias que se realicen. en desarrollo de software guiado por
pruebas.
Las tareas de formacin de recursos
humanos se basaron en un plan especfico - Realizar talleres de capacitacin en los
de formacion, previendos realizar al laboratorios CIDS y LIDICalSo de la
menos dos presentaciones abiertas a la FRC
comunidad en general y con invitacion a
las ctedras de programacion e Ingeniera - Asistir tcnicamente en las mejores
de Softare de la Carrera de Ingeniera en prcticas a grupos de Investigacin de la
Sistemas de Informacin de la UTN-FRC disciplina Homologados en la SCyT de la
FRC UTN Exponer los resultados (3) - SW Maintenance, Concepts and Practices -
Takang, Grubb - Worl Scientific 2005
alcanzados y los objetivos en
curso/futuros de la lnea de I/D/I (4) - SW Engineering Body of Knowledge (IEEE
presentada. 2004 version).

(5) - Estado del arte y tendencias Test-Driven


Formacin de Recursos Humanos Development - Moiss, Carlos Fontela - 2011 -
Trabajo Final Integrador de la Especializacin en
Un punto importante es la formacin de Ingeniera de Software - Universidad de La Plata -
Facultad de Informtica -
profesionales capacitados en el desarrollo
de software guiado por las pruebas. (6) - http://jbehave.org/

(7) - http://seleniumhq.org/
Esta formacin debe incluir desde los
aspectos tericos hasta los de (8) - http://www.junit.org/
implementacin prctica. Pero tambin se (9) - http://es.wikipedia.org/wiki/JUnit
busca que los integrantes, becarios y
(10) - http://code.google.com/p/easyb/
tesistas adquieran experiencia en la
investigacin y en el futuro puedan (11) -
replicar y llevar adelante otros proyectos http://www.ibm.com/developerworks/java/tutorial
s/j-easyb/
de investigacin.
12) - http://rspec.info/
La experiencia adquirida en este proyecto
(13) - http://en.wikipedia.org/wiki/RSpec
es aplicada dentro de la universidad en
grupos de investigacin, ctedras de (14) - http://maven.apache.org/
grado y en el mbito privado. (15) - http://en.wikipedia.org/wiki/Maven

Con estas habilidades se propiciaron que (16) -


los participantes accedan a la categora http://es.wikipedia.org/wiki/Microsoft_Visual_Stu
dio
inicial de investigador dentro de la
docencia investigativa. (17) - http://msdn.microsoft.com/es-
ar/vstudio/aa718325.aspx
Otro aporte a la formacin de recursos (18) - http://rubygems.org/gems/simplecov
humanos es la elaboracin de tess de
(19)-
maestra de integrantes del proyecto, con http://www.becodemyfriend.com/tag/simplecov/
lo cual se podr alcanzar mayores niveles Una exposicin general sobre el tema de I/D/I con
acadmicos que permitan el progreso en las referencias bibliogrficas relacionadas. Se
sugiere no ms de 3 pginas.
el mbito docente y profesional.

Referencias Citas de los autores

[1] Vaca, P. A., Maldonado, C., Inchaurrondo, C.,


(1) - Ingeniera de Software - Somerville - Adison
Peretti, J., Romero, M. S., & Bueno, M. (2013).
Wesley.
Test-Driven Development-Una aproximacin para
(2) - Ingeniera de Software - Pfleeger - Prentice entender su utilidad en el proceso de desarrollo de
Hall. Software. Conaiisi-Cordoba, Octubre de, 2347-
0372.
[2] Vaca, P. A., Maldonado, C., Inchaurrondo, C.,
Peretti, J., Romero, M. S., Bueno, M., & Cagliolo,
M. Test-Driven Development-Beneficios y
Desafos para el Desarrollo de Software.

You might also like