https://www.linkedin.com/pulse/20141005
120146-13798802-agile-tester-foundation-
chapter-2-fundamental-agile-testing-
principles-practices-and-processes-1-of-3-
articles
software testing como una fase
separada, sino como parte integral
del Desarrollo de software al igual
que la programación.
• El Testing no es una fase: El testing continuo es la única forma de garantizar avance continuo, por
esto, el testing se realiza continuamente junto con el desarrollo de software y demás actividades.
• El Testing hace avanzar el proyecto: Bajo métodos convencionales, el testing es una alcabala, en
cambio en Agile Testing se proporciona retroalimentación continua, permitiendo corregir el rumbo
continuamente durante el desarrollo de software.
• Todo el equipo realiza pruebas: en Agile Testing, los Analistas de negocio y Desarrolladores de
software también ejecutan pruebas, no sólo los testers como en métodos convencionales.
• Reducir el tiempo para recibir retroalimentación: En Agile Testing, los equipos del área de negocio
(el cliente) están involucrados en cada iteración, no solo al final durante la fase de aceptación,
como resultado, el tiempo de retroalimentación se reduce y el costo de correcciones también es
menor.
• Código limpio: Los defectos en el código se corrigen en la misma iteración, por lo que se mantiene
el código limpio.
• Reducir la documentación de pruebas: Los Agile Testers usan listas de chequeo reusables en lugar
de documentación extensa, se enfocan en la esencia de la prueba en lugar de detalles. Siguiendo
principios ágiles estas listas de chequeo son el inicio de las definiciones de las pruebas y no el final,
y el tester cuenta con libertad para aportar valor.
• Guiado por pruebas: El Agile Testing, las pruebas se hacen “durante” el desarrollo y no después del
desarrollo como en métodos convencionales.
• Test Driven Development (TDD): El desarrollo guiado por pruebas, es una técnica que combina unenfoque de
refactorización del lado de desarrollo con un enfoque de probar primero en cuanto al testing. Aquí te dejamos el
primero de una serie de artículos sobre el Test Driven Development (TDD).
• Acceptance Test Driven Development (ATDD): Es una dimensión del TDD aplicada al nivel de gestión de
requerimientos de software, en el cual las pruebas escritas son a nivel de cliente, es decir, lo equivalente a una
prueba de aceptación o test funcional. Aquí te dejamos un artículo sobre Acceptance Test Driven Development
(ATDD) y como implementarlo con la herramienta Selenium.
• Behaviour Driven Development (BDD): También puede llamarse Story Driven Development. Bajo este enfoque
primero se desarrolla una prueba funcional o de historia de usuario automatizada, luego se ejecuta el desarrollo
aplicando TDD hasta que la prueba es exitosa. Aquí te compartimos un artículo sobre la herramienta Cucumber y
su uso para aplicar Behaviour Driven Development (BDD).
• Testing exploratorio: Enfoque en el cual el aprendizaje de la funcionalidad, diseño de pruebas y ejecución de
pruebas ocurren simultáneamente, en contraposición con el enfoque convencional en el cual primero se
documenta la funcionalidad o requisito, luego se diseña el caso de prueba y luego se ejecuta de acuerdo a guiones
prestablecidos. Las pruebas exploratorias no están predefinidas ni se ejecutan según un plan.
• Automatización de pruebas de regresión: Tanto la integración continua como la refactorización son prácticas
necesarias para poder implementar una metodología ágil de desarrollo de software. Ambas técnicas implican
modificar las fuentes de código constantemente, por lo que la automatización de pruebas de regresión por medio
de herramientas es una necesidad imperiosa. Aquí te dejamos más información sobre herramientas para
automatización de pruebas.
• Automatización de pruebas unitarias: Consiste en usar un marco de trabajo o framework (como NUnit) para
ejecutar tus tests unitarios, en lugar de ejecutar estos manualmente una y otra vez cada vez que modificas el
código. Para ello existen múltiples frameworks, muchos de los cuales pueden integrarse en los ambientes IDE.
Algunas de las prácticas relacionadas
con Agile Testing
El Rol del Tester en un marco
Agile
• El rol del tester en un equipo ágil es el de un experto, garante que se entregue el valor de negocio deseado por el
cliente a un ritmo sostenible y continuo.
Para ello, utiliza la “especificación mediante ejemplos” para capturar los comportamientos deseados y no
deseados para guiar la codificación.
•
• El foco del Tester en un entorno Agile está en la aplicación de enfoques tipo Behaviour Driven Development (BDD),
usualmente trabajando en paralelo con el equipo de desarrollo y no en la fase final.
Esto se contrapone con el rol convencional del tester, en el cual es un profesional encargado de elaborar diseños
de prueba (a partir de diseños funcionales), y luego ser un simple ejecutor de guiones prestablecidos.
En un entorno Agile el rol del tester es de mayor especialización técnica, considerando que debe manejar
herramientas de automatización, gestión ágil y metodologías.
•
• Además, el rol también posee mayor interacción con otras personas como por ejemplo el cliente o los
desarrolladores, por lo que también necesitará habilidades blandas de comunicación, orientación al cliente,
negociación, entre otras.
•
Integración continua (1)
Integración continua (2)
https://www.linkedin.com/pulse/20141005120146-13798802-
agile-tester-foundation-chapter-2-fundamental-agile-testing-
principles-practices-and-processes-1-of-3-articles
Estar probando constantemente
• Si alguna prueba automatizada falla, el equipo
debería solucionar el defecto subyacente en el
tiempo para el siguiente código de registro de
entrada.
• Ventajas
– Confirma que el build esta funcionando y es estable
– Ahorra tiempo y dinero
– Mejora la precision
– Incremente la cobertura de preubas
Los tester son los mejores amigos del
product owner
De tester a lider de calidad dentro del
equipo
• Comparte conocimiento
• Anima a todos a que realicen pruebas desde
momentos tempranos
Enfoque en la automatización
• No hay poder humano para estar haciendo
pruebas de regresion cada dos semanas
• Consiste en
– Crear
– ejecutar
– Monitorear
– sostener
El enfoque en la automatizacion
• Implica entonces un enfoque de más valor
– Experiencia de usuario
– Ataques de software
– Encontrar deuda técnic
Aceptar el cambio
• es permitido por documentación liviana
• Se logra debido a la adopcion de
automatización
El proyecto ágiles el esfuerzo radica en
minimizar la documentación, tener
software funcionando y pruebas
automatizadas
Historias de usuario vs casos de uso
Historias de usuario vs casos de uso
Productos de trabajo de un tester en
Agile
• Plan de pruebas por sprint
• Casos de prueba
• Escenarios automatizados
• Escenarios que cumplen el Done
• Reporte de defectos y registro de los mismos
• Metricas de pruebas
Equipo de pruebas independiente
• Prueba al final de cada sprint solo las historias
en DONE!!!
• Debe trabajar al mismo ritmo del equipo agil
• Embebidos pierden el independencia
imagenes-testing-agile-agil.pptx.doc.ppt.doc

imagenes-testing-agile-agil.pptx.doc.ppt.doc

  • 4.
  • 8.
    software testing comouna fase separada, sino como parte integral del Desarrollo de software al igual que la programación. • El Testing no es una fase: El testing continuo es la única forma de garantizar avance continuo, por esto, el testing se realiza continuamente junto con el desarrollo de software y demás actividades. • El Testing hace avanzar el proyecto: Bajo métodos convencionales, el testing es una alcabala, en cambio en Agile Testing se proporciona retroalimentación continua, permitiendo corregir el rumbo continuamente durante el desarrollo de software. • Todo el equipo realiza pruebas: en Agile Testing, los Analistas de negocio y Desarrolladores de software también ejecutan pruebas, no sólo los testers como en métodos convencionales. • Reducir el tiempo para recibir retroalimentación: En Agile Testing, los equipos del área de negocio (el cliente) están involucrados en cada iteración, no solo al final durante la fase de aceptación, como resultado, el tiempo de retroalimentación se reduce y el costo de correcciones también es menor. • Código limpio: Los defectos en el código se corrigen en la misma iteración, por lo que se mantiene el código limpio. • Reducir la documentación de pruebas: Los Agile Testers usan listas de chequeo reusables en lugar de documentación extensa, se enfocan en la esencia de la prueba en lugar de detalles. Siguiendo principios ágiles estas listas de chequeo son el inicio de las definiciones de las pruebas y no el final, y el tester cuenta con libertad para aportar valor. • Guiado por pruebas: El Agile Testing, las pruebas se hacen “durante” el desarrollo y no después del desarrollo como en métodos convencionales.
  • 9.
    • Test DrivenDevelopment (TDD): El desarrollo guiado por pruebas, es una técnica que combina unenfoque de refactorización del lado de desarrollo con un enfoque de probar primero en cuanto al testing. Aquí te dejamos el primero de una serie de artículos sobre el Test Driven Development (TDD). • Acceptance Test Driven Development (ATDD): Es una dimensión del TDD aplicada al nivel de gestión de requerimientos de software, en el cual las pruebas escritas son a nivel de cliente, es decir, lo equivalente a una prueba de aceptación o test funcional. Aquí te dejamos un artículo sobre Acceptance Test Driven Development (ATDD) y como implementarlo con la herramienta Selenium. • Behaviour Driven Development (BDD): También puede llamarse Story Driven Development. Bajo este enfoque primero se desarrolla una prueba funcional o de historia de usuario automatizada, luego se ejecuta el desarrollo aplicando TDD hasta que la prueba es exitosa. Aquí te compartimos un artículo sobre la herramienta Cucumber y su uso para aplicar Behaviour Driven Development (BDD). • Testing exploratorio: Enfoque en el cual el aprendizaje de la funcionalidad, diseño de pruebas y ejecución de pruebas ocurren simultáneamente, en contraposición con el enfoque convencional en el cual primero se documenta la funcionalidad o requisito, luego se diseña el caso de prueba y luego se ejecuta de acuerdo a guiones prestablecidos. Las pruebas exploratorias no están predefinidas ni se ejecutan según un plan. • Automatización de pruebas de regresión: Tanto la integración continua como la refactorización son prácticas necesarias para poder implementar una metodología ágil de desarrollo de software. Ambas técnicas implican modificar las fuentes de código constantemente, por lo que la automatización de pruebas de regresión por medio de herramientas es una necesidad imperiosa. Aquí te dejamos más información sobre herramientas para automatización de pruebas. • Automatización de pruebas unitarias: Consiste en usar un marco de trabajo o framework (como NUnit) para ejecutar tus tests unitarios, en lugar de ejecutar estos manualmente una y otra vez cada vez que modificas el código. Para ello existen múltiples frameworks, muchos de los cuales pueden integrarse en los ambientes IDE. Algunas de las prácticas relacionadas con Agile Testing
  • 13.
    El Rol delTester en un marco Agile • El rol del tester en un equipo ágil es el de un experto, garante que se entregue el valor de negocio deseado por el cliente a un ritmo sostenible y continuo. Para ello, utiliza la “especificación mediante ejemplos” para capturar los comportamientos deseados y no deseados para guiar la codificación. • • El foco del Tester en un entorno Agile está en la aplicación de enfoques tipo Behaviour Driven Development (BDD), usualmente trabajando en paralelo con el equipo de desarrollo y no en la fase final. Esto se contrapone con el rol convencional del tester, en el cual es un profesional encargado de elaborar diseños de prueba (a partir de diseños funcionales), y luego ser un simple ejecutor de guiones prestablecidos. En un entorno Agile el rol del tester es de mayor especialización técnica, considerando que debe manejar herramientas de automatización, gestión ágil y metodologías. • • Además, el rol también posee mayor interacción con otras personas como por ejemplo el cliente o los desarrolladores, por lo que también necesitará habilidades blandas de comunicación, orientación al cliente, negociación, entre otras. •
  • 14.
  • 15.
  • 16.
    Estar probando constantemente •Si alguna prueba automatizada falla, el equipo debería solucionar el defecto subyacente en el tiempo para el siguiente código de registro de entrada. • Ventajas – Confirma que el build esta funcionando y es estable – Ahorra tiempo y dinero – Mejora la precision – Incremente la cobertura de preubas
  • 17.
    Los tester sonlos mejores amigos del product owner
  • 18.
    De tester alider de calidad dentro del equipo • Comparte conocimiento • Anima a todos a que realicen pruebas desde momentos tempranos
  • 19.
    Enfoque en laautomatización • No hay poder humano para estar haciendo pruebas de regresion cada dos semanas • Consiste en – Crear – ejecutar – Monitorear – sostener
  • 20.
    El enfoque enla automatizacion • Implica entonces un enfoque de más valor – Experiencia de usuario – Ataques de software – Encontrar deuda técnic
  • 21.
    Aceptar el cambio •es permitido por documentación liviana • Se logra debido a la adopcion de automatización
  • 22.
    El proyecto ágilesel esfuerzo radica en minimizar la documentación, tener software funcionando y pruebas automatizadas
  • 23.
    Historias de usuariovs casos de uso
  • 24.
    Historias de usuariovs casos de uso
  • 25.
    Productos de trabajode un tester en Agile • Plan de pruebas por sprint • Casos de prueba • Escenarios automatizados • Escenarios que cumplen el Done • Reporte de defectos y registro de los mismos • Metricas de pruebas
  • 26.
    Equipo de pruebasindependiente • Prueba al final de cada sprint solo las historias en DONE!!! • Debe trabajar al mismo ritmo del equipo agil • Embebidos pierden el independencia