You are on page 1of 4

INSTITUTO TECNOLOGICO DE HERMOSILLO

MATERIA:
DESARROLLO DE PROYECTOS DE SOFTWARE 2

“SINTESIS CONFERENCIA”

ALUMNO:
RAMSES ALONSO URQUIJO VASQUEZ

MAESTRO:
MARIA YOLANDA HUERTA

NO. CONTROL:
15330618

13 DE MARZO DE 2019
Agile Coach: Jorge Heras

Agile Testing
El Agile Testing es una práctica de pruebas de software que sigue los principios del
desarrollo ágil de software. Involucra a todos los miembros de un equipo ágil
multifuncional, en el cual el rol del tester es el de un experto multifuncional, garante
que se entregue el valor de negocio deseado por el cliente a un ritmo sostenible y
continuo. Las metodologías ágiles no ven al software testing como una fase
separada, sino como parte integral del Desarrollo de software al igual que la
programación. Los equipos ágiles utilizan un enfoque de “todo el equipo” al testing,
con la finalidad de integrar la calidad al desarrollo del producto, al contrario de un
enfoque de primero fabricar el producto y luego inspeccionar para determinar su
nivel de calidad.

Algunas de las prácticas relacionadas con Agile Testing


• Test Driven Development (TDD): El desarrollo guiado por pruebas, es una
técnica que combina un enfoque de refactorización del lado de desarrollo
con un enfoque de probar primero en cuanto al testing.
• 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.
• 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.
• 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.
• 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.

Manifiesto del Testing Ágil


Desde la década del 90, se está hablando e incorporando el desarrollo Ágil de
Software, este surge como una necesidad de adaptación de las métodologías duras
(usadas en otras Ingenierías) a la Ingeniería del Software. En los inicios no estuvo
bien definido el Rol del Testing y la mayoría se fue adaptando a la metodología
buscando como aportar valor.

De la siguiente imagen podemos explicar lo siguiente:


• Testear a lo largo del desarrollo más que al final
• Prevenir errores más que encontrarlos
• Entender qué se está probando sobre verificar
• Ayudar a construir un mejor sistema
• Ser consciente que la calidad es responsabilidad de todo el equipo

Un poco más explicado…


Testing durante SOBRE testing al final: Priorizar la realización de tareas de testing
desde el inicio hasta que se da por hecha sobre realizar testing como una etapa al
finalizar el sprint.
Prevenir bugs SOBRE encontrar bugs: Incentivar la discusión y revisión grupal de
las tareas, tener en claro que hay que hacer, como y porque, evitar todo tipo de
suposiciones y trabajar realmente en equipo con el desarrollador para que los bugs
se puedan evitar de antemano por sobre esperar a que el desarrollo este completo
para revisar y estudiar el mismo, así como evitar discutir con el desarrollador sobre
que se va a testear.
Entender lo que se está testeando SOBRE verificar funcionalidad: La necesidad de
entender que es lo que quiere el usuario, para que lo quiere y como él lo va a usar,
para realizar pruebas que den valor agregado por sobre solo ver que las
especificaciones se cumplen (ver que 1+1 sea igual a 2) en una tarea más de
checklist que de testing.
Construir el mejor sistema SOBRE romper el sistema: Poner el trabajo de equipo
en generar el ambiente necesario para poder mejorar lo que se está haciendo por
sobre solo intentar romper el sistema.
El equipo es responsable de la calidad SOBRE el tester es responsable de la
calidad: En agile la clave de entregar un producto con calidad es que el equipo se
comprometa con todas las actividades y trabajen conjuntamente para generar valor,
por eso es importante que la responsabilidad sobre la calidad sea del equipo por
sobre que la calidad recaiga sobre un solo rol como es el del tester.

Conclusión
Las pruebas ágiles implican realizar pruebas lo antes posible en el ciclo de vida del
desarrollo del software. Exige una alta participación del cliente y un código de
prueba tan pronto como esté disponible. El código debe ser lo suficientemente
estable como para llevarlo a las pruebas del sistema. Se pueden realizar extensas
pruebas de regresión para asegurarse de que los errores se corrigen y se prueban.
Principalmente, ¡la comunicación entre los equipos hace que las pruebas sean
ágiles!