Está en la página 1de 12

BDD is a process designed to aid the management and

the delivery of software development projects by


improving communication between engineers and
business professionals. By aiding communication
between these two teams, BDD ensures all development
projects remain focused on delivering what the business
actually needs while meeting all requirements of the
user.

KEY BENEFITS OF BDD

All development work can be traced back directly to


business objectives.

Software development meets user need. Satisfied users =


good business.

Efficient prioritisation - business-critical features are


delivered first.

All parties have a shared understanding of the project and


can be involved in the communication.

A shared language ensures everyone (technical or not) has


thorough visibility into the projects progression.

Resulting software design that matches existing and


supports upcoming business needs.

Improved quality code reducing costs of maintenance and


minimising project risk.
Desarrollo guiado por pruebas de software, o Test-driven development (TDD) es una
prctica de ingeniera de software que involucra otras dos prcticas: Escribir las pruebas
primero (Test First Development) y Refactorizacin (Refactoring). Para escribir las pruebas
generalmente se utilizan las pruebas unitarias (unit test en ingls). En primer lugar, se
escribe una prueba y se verifica que las pruebas fallan. A continuacin, se implementa el
cdigo que hace que la prueba pase satisfactoriamente y seguidamente se refactoriza el
cdigo escrito. El propsito del desarrollo guiado por pruebas es lograr un cdigo limpio

que funcione. La idea es que los requisitos sean traducidos a pruebas, de este modo,
cuando las pruebas pasen se garantizar que el software cumple con los requisitos que se
han establecido.

Ciclo de desarrollo conducido por pruebas[editar]


En primer lugar se debe definir una lista de requisitos y despus se ejecuta el siguiente
ciclo:
1. Elegir un requisito: Se elige de una lista el requisito que se cree que nos dar
mayor conocimiento del problema y que a la vez sea fcilmente implementable.
2. Escribir una prueba: Se comienza escribiendo una prueba para el requisito. Para
ello el programador debe entender claramente las especificaciones y los requisitos
de la funcionalidad que est por implementar. Este paso fuerza al programador a
tomar la perspectiva de un cliente considerando el cdigo a travs de
sus interfaces.
3. Verificar que la prueba falla: Si la prueba no falla es porque el requisito ya estaba
implementado o porque la prueba es errnea.
4. Escribir la implementacin: Escribir el cdigo ms sencillo que haga que la
prueba funcione. Se usa la expresin "Djelo simple" ("Keep It small and simple"),
conocida como principio_KISS.
5. Ejecutar las pruebas automatizadas: Verificar si todo el conjunto de pruebas
funciona correctamente.
6. Eliminacin de duplicacin: El paso final es la refactorizacin, que se utilizar
principalmente para eliminar cdigo duplicado. Se hacen de a una vez un pequeo
cambio y luego se corren las pruebas hasta que funcionen.
7. Actualizacin de la lista de requisitos: Se actualiza la lista de requisitos
tachando el requisito implementado. Asimismo se agregan requisitos que se hayan
visto como necesarios durante este ciclo y se agregan requisitos de diseo (P. ej
que una funcionalidad est desacoplada de otra).
Tener un nico repositorio universal de pruebas facilita complementar TDD con otra
prctica recomendada por los procesos giles de desarrollo, la "Integracin Continua".
Integrar continuamente nuestro trabajo con el del resto del equipo de desarrollo permite
ejecutar toda batera de pruebas y as descubrir si nuestra ltima versin es compatible
con el resto del sistema. Es recomendable y menos costoso corregir pequeos problemas

cada pocas horas que enfrentarse a problemas enormes cerca de la fecha de entrega
fijada.

Ventajas[editar]
Los programadores que utilizan el desarrollo guiado por pruebas en un proyecto
virgen encuentran que en raras ocasiones tienen la necesidad de utilizar el depurador o
debugger.
A pesar de los elevados requisitos iniciales de aplicar esta metodologa, el desarrollo
guiado por pruebas (TDD) puede proporcionar un gran valor aadido en la creacin de
software, produciendo aplicaciones de ms calidad y en menos tiempo. Ofrece ms que
una simple validacin del cumplimiento de los requisitos, tambin puede guiar el diseo de
un programa. Centrndose en primer lugar en los casos de prueba uno debe imaginarse
cmo los clientes utilizarn la funcionalidad (en este caso, los casos de prueba). Por lo
tanto, al programador solo le importa la interfaz y no la implementacin. Esta ventaja es
similar al diseo por convenio pero se parece a l por los casos de prueba ms que por las
aserciones matemticas.
El poder del TDD radica en la capacidad de avanzar en pequeos pasos cuando se
necesita. Permite que un programador se centre en la tarea actual y la primera meta es, a
menudo, hacer que la prueba pase. Inicialmente no se consideran los casos excepcionales
y el manejo de errores. Estos, se implementan despus de que se haya alcanzado la
funcionalidad principal. Otra ventaja es que, cuando es utilizada correctamente, se asegura
de que todo el cdigo escrito est cubierto por una prueba. Esto puede dar al programador
un mayor nivel de confianza en el cdigo.

Fig. 5. Mantis Logo.


Tomado
de: http://www.mant
isbt.org/

Mantis Bug
Tracker: es una
herramienta web
de cdigoabierto

que permite la
gestin de
losdefectos
resultantes de la
ejecucin de
laspruebas de
software. Se
caracteriza por
sufacilidad de

instalacin ,
uso,multiplatafo
rma, entre
otros(TestingEx
periencie, 2010,
p.19)
PangoScrum

Es una
herramienta
web, de tipo
SaaS(Software asa
Service, Software
como Servicio)

, que
utilizandola
nube(Internet),
permite la

administracin
de
unametodologa
gil como
Scrum,
permitiendo:

Gestin del
Product

Backlog(Reposit
oriode procesos,
requisitos o
funcionalidades
a ser probados)

Planeacin de
los
Sprints(Iteracion

es conlos
procesos a ser
probados) con
unostiempos
especificados.

Gestin del
Calendario de
los diferentes

Sprints

Gestin de
Usuarios

Gestin de
Proyecto

Capybara
Capybara helps you test web applications by simulating how a real user would interact
with your app. It is agnostic about the driver running your tests and comes with
Rack::Test and Selenium support built in. WebKit is supported through an external
gem.

Key benefits

No setup necessary for Rails and Rack application. Works out of


the box.

Intuitive API which mimics the language an actual user would


use.

Switch the backend your tests run against from fast headless
mode to an actual browser with no changes to your tests.

Powerful synchronization features mean you never have to


manually wait for asynchronous processes to complete.

También podría gustarte