Ir al contenido principal

Saluda a comportamiento impulsado por el desarrollo (BDD)-parte 1

Se trata de la primera parte de dos series de parte de "Say Hello a comportamiento Driven Development". Esta parte se va a presentarle con el concepto de desarrollo controlado por comportamiento.

Parte 2 consiste en una instrucción de paso a paso para crear una aplicación tras b ehavior d desgarrado d evelopment.

Como casi todos los desarrolladores de código más de lo que escriben código de prueba. "Permite escribir el código primero y cumplir con el plazo y si el tiempo lo permite o si me siento OK, entonces sería escribir algún código de prueba"-es una mentalidad común de casi cada desarrollador. Es interesante señalar que todos saben los beneficios de escribir código de prueba. Incluso un gran porcentaje de ellos sabe que el beneficio de la adopción de TDD (Test Driven desarrollo) hacia el ciclo de vida de desarrollo de software. Pero todavía una muy pocos pueden adoptar TDD y continuar con él.

¿La cuestión es por qué los desarrolladores se sienten incómodos escribir código de prueba? ¿Hay alguna forma de venir sobre esto?

Permite tratar de encontrar las respuestas de estas preguntas.

Supongamos que el Sr. X es un hardcore.Desarrollador neto y él va a desarrollar un programa de correo electrónico basado en web. Su gerente de desarrollo o el supervisor o el propietario del producto ha dado la especificación del programa de correo electrónico como esta.

Como programa de correo electrónico por el cual puede redactar correo electrónico on-line y puede enviar correo electrónico basado en el propietario de un producto que quisiera obtener una web.

Especificación bastante simple!

Ahora el Sr. X intenta seguir TDD y comenzó a pensar en lo que podría ser los posibles casos de prueba.

Este programa debe enviar correo electrónico if a la dirección es válida.Este programa debe enviar correo electrónico si la dirección CC es válida incluso si a la dirección no es válida en este programa debe enviar correo electrónico si la dirección de CCO es válido incluso si CC y dirección no es válida.Este programa debe enviar correo electrónico, incluso si la línea del asunto está vacía. Este programa debe enviar correo electrónico, incluso si el cuerpo está vacío.

Ahora después de ordenar estos puntos 5 que comenzó a pensar que puede haber algunos casos de prueba más si la opción declaró en 1, 2 y 3 alterado. Incluso, podría haber más casos de prueba si considera que el formato del cuerpo del correo electrónico (como texto sin formato, texto enriquecido o html). Si el cuerpo es HTML, a continuación, necesita lo del html en la codificación de las cosas.

El Sr. más X, el núcleo duro.Desarrollador neto da para pensar para encontrar casos de posible prueba más encuentra casos de prueba y uno punto como todos los demás desarrolladores que él puede escribir pocos casos de prueba o no los casos de prueba al mantener mente que--"Definitivamente será escribir casos de prueba, una vez que se ha implementado la funcionalidad de mi".

Pero como de costumbre, al final del día se ha escrito casi no hay casos de prueba y el TDD desaparece!

Hasta el momento tenemos la naturaleza del problema y sus síntomas. Ahora permite inicia la excavación de un posible remedio de la misma.

¿Qué sucede si el requisito dado por el propietario del producto o el supervisor o el gerente de desarrollo incluye el posible comportamiento del módulo. A elaborar y a ser más específico, si se da el requisito de tal manera que expresa plenamente el comportamiento del módulo y sus puntos de esquina posible sería muy fácil decidir qué casos de prueba que deba escribirse y que no es necesaria.

Los investigadores han pasado mucho tiempo a averiguar un posible formato de "especificación de requisitos" que es fácil de entender a la persona técnico y no técnico. Expertos término este tipo de idioma como lengua ubicua o lenguaje específico de dominio (DSL). No voy a detalles de esta cosa, pero como ya he dicho el propósito de esto es crear un puente entre el técnico y no de persona técnica.

Hoy en día la palabra DDD (dominio Driven Design) es un lenguaje muy popular y ubicuo o DSL es la primera escalera de ella. Si está interesado en obtener más información sobre DDD, a continuación, por favor, Google el término DDD y disfrute su viaje en el mundo DDD!

¿Se debe estar preguntando por ello he traído idioma ubicua o DSL en medio de resolver un problema complejo de la vida los desarrolladores? Afortunadamente, este tipo de lenguaje común va a resolver nuestro problema. ¿Se debe estar preguntando cómo?

Hay algunos buenos que realmente desarrollaron un lenguaje que puede ser escrita por cualquier persona independientemente de la técnica básica, y que puede ser leído y entendido por las personas en la tierra. Curiosamente, hay algunos analizador para este idioma que puede analizar a este llano a código compilable de su lenguaje de programación preferido.

Una sola regla debe seguir, lo que cada vez que escriba uso Dado-cuando-entonces pasos. ¿Confundido? Su realmente muy fácil. Incluso puedo escribirlo, y estoy escribiendo los requisitos anteriores mediante la línea de esta guía.

Dado que el módulo de correo electrónico basada en una web ha sido desarrollado
Y yo estoy accediendo a ella con la autenticación apropiada

Cuando Yo voy a escribir el correo electrónico del remitente dirección en campo
O dirección de correo electrónico del remitente de escritura en CC presentada por no mantener vacío el campo para
O dirección de correo electrónico de remitente de escritura en el campo CCO manteniendo no está vacío, ya sea con el campo
Y mantener el campo de asunto no vacío
Y escribir algo en el área de texto de cuerpo que exceptuamos texto enriquecido
Y pulse o haga clic en el botón enviar

Entonces mi correo electrónico se enviará
Y el evento se registrará en el archivo de registro.

¿No es fácil de escribir y leer y entender? ¿No es portadas y representa a todos los casos posibles de prueba? Hey! ¿No es que realmente escribiendo una documentación del módulo de correo electrónico para ser desarrollado?

Sé que son todas las respuestas de las preguntas anteriores de tres sí! Hay más emocionante lo que me gustaría compartir con usted, pero antes de ir en a y que permite concentrarse en la especificación anterior para extraer algunos más información que necesitamos saber.

Como se puede ver que junto con los pasos dados-cuando-entonces he utilizado y/o al puente de diferente especificaciones o puntos de esquina y le puede realmente agregar tantos como posible combinación de y/o en orden a que detalla su especificación. Y todavía es completamente legible para los humanos.

¡ Oh! Me olvidé de mencionar el nombre de este idioma. Es conocida como pepinillo. Puede visitar este enlace para cavar más información al respecto.

Tal tipo de requerimiento realmente representa cómo se comportará el módulo una vez desarrollado y desarrolladores pueden concentrarse más en la conducta, en lugar de escribir casos de prueba. Tal fenómeno se denominan como el desarrollo impulsado por comportamiento (BDD) y estoy seguro de que han entendido el concepto básico de BDD por ahora.

Hay algunas herramientas (gratis por supuesto) disponible que puede analizar realmente especificación escrito en pepinillo y puede crear casos de prueba en su idioma preferido y no es suficiente para desencadenar el evento 'saywow';).

Para implementar BDD para.NET he encontrado Specflow a ser una herramienta cool que puede ser integrada con Visual Studio (incluso soporta VS 2010!). Si Google para la herramienta más definitivamente encontrará más!

He encontrado JBehave para el propósito para Java. Pero una vez más por Google obtendrá infierno muchas herramientas.

En la segunda parte voy a mostrarle cómo puede implementar BDD paso a paso en una.Proyecto neto.


code project dot com

Comentarios

Entradas populares de este blog

¿Qué hacer cuando su niño hace caca en la bañera ¿Qué hay que hacer cuando su niño hace caca en la bañera

Caca de limpieza de la bañera es una de esas cosas que cuando me inscribí para ser madre, nunca consideró que tendría que hacer. Caca de limpieza de la bañera no es un trabajo para los débiles de corazón o el estómago lleno. La primera vez que tuve que limpiar la caca de la bañera pensé También quiero limpiar mi propio vómito salir de la bañera. Después de la pesca de unos momentos de niños y caca fuera del agua, me di cuenta de que una directamente correlacionada con la otra. (Los músculos se relajan en agua caliente) Así que me puse listo. Si su niño hace caca o pis (o cualquier otra función corporal que encuentro fascinante mientras estaba desnudo en el agua) en la bañera primero toma al niño y lo puso a él / ella en el baño. Pueden o no pueden terminar el trabajo, pero al menos tienen un lugar para sentarse mientras limpia. Lo más importante es asegurarse de que encontrar la caca antes de hacerlo. Entonces usted tiene que pescarlo. Sí, ya sé que es asqueroso, pero quédate conmigo.

PerezHilton: Home Sweet Home!

PerezHilton Since 2004, Hollywood's most sassy website has been delivering the juiciest celebrity gossip. The blog is The go-to source for daily happenings in Hollywood. Written by the internet's most notorious gossip columnist, Perez Hilton (Mario Lavandeira). Home Sweet Home! Mar 29th 2013, 09:29 We have a nice uneventful weekend planned of just chilling at home and spending quality time with the baby! Could not be any happier!!!! March has been CRAZY BUSY and we love it, but we're really relieved for things to quiet dow

PerezHilton: EVERY Day Is Father's Day!

Blogtrottr PerezHilton Since 2004, Hollywood's most sassy website has been delivering the juiciest celebrity gossip. The blog is The go-to source for daily happenings in Hollywood. Written by the internet's most notorious gossip columnist, Perez Hilton (Mario Lavandeira). EVERY Day Is Father's Day! Jun 21st 2013, 09:30 We are still smiling about how beautiful and fun our first Father's Day was - and the fact that this whole week has felt like an extension of that! Perez Jr is so pla