SW Testing Automation
David Rivera
Andres Arrubla
Ruben Fernandez
Reseña
Razones
Realizar pruebas sobre un sistema puede tomar demasiado tiempo.
En las pruebas manuales se pueden dar por alto errores.
Evitar el reproceso.
La automatización asegura una ejecución rigurosa cada vez que se corren las pruebas.
Catch more bugs
Tareas repetitivas incitan al error, generan distracción y permiten pasar por alto los defectos.
Run Automated Tests in Parallel
Permite reducir el tiempo de pruebas drásticamente pudiendo, incluso, ejecutar pruebas paralelamente.
Automate Deploys
Luego de automatizar las pruebas es posible automatizar los despliegues, los cuales permiten controlar ambientes estables y estandarizados disminuyendo el error humano.
Diferencias con el método convencional
Manual
Automatizado
- El proceso podría tomar horas
- El tiempo de ejecucion se reduce a minutos
- Es menos costoso
- Ejecución de pruebas en paralelo
- Baja fiabilidad
- Pruebas se ejecutan con absoluta rigurosidad
- Tarea tediosa que da lugar a errores
- Capturar regresiones múcho mas fácil y rápido
Ambiente de pruebas requerido


Herramientas
Selenium
Jenkins
IBM Rational Functional Tester
Visual Studio Test Proffessional
HP Quicktest Professional (QTP)
Unit testing frameworks
- .NET: NUnit, MSTest, xUnit.net, Mbunit
- Java: JUnit, TestNG, Easyb, JTiger
- Ruby: Test::Unit, Rspec, Shoulda
Prospectiva
UDD – UI Driven Development
Consiste en crear nuevos objetos o scripts de prueba usando objetos UI de una paleta o un repositorio y simplemente arrastrar de la paleta los objetos o scripts necesarios. El refactor, las pruebas y la reestructuracion ocurrirá automáticamente en el backend.

Visual regression testing tools
Debido a la creciente complejidad de las aplicaciones web ha incrementado el interés por probar la apariencia en adición a la funcionalidad. Esto ha llevado a la creacion de varias herramientas de pruebas de regresión visual como CSS Critic, dpxdt, Huxley y PhantomCSS.
Tipos de pruebas
Acercamientos
Code-driven testing:
Las interfaces públicas (clases, modulos o librerías) son probadas con una variedad de argumentos para validar que los resultados obtenidos son los correctos.
GUI Testing:
Un framework de pruebas efectúa la interacción del usuario con el sistema y observa los cambios que resultan para validar si el comportamiento observado es correcto.
Tipos de pruebas
Pruebas de regresión
Pruebas realizadas para encontrar fallas causadas por la realizacion de parches, mejoras o cambios de configuración en el software.
Code coverage
Medida porcentual que describe el grado en el cual es probado el código fuente. Determina partes críticas que no han sido probadas o ya se probaron.
Continuous integration (Martin Fowler)
“Merging” todas las copias de trabajo de los desarrolladores con una línea principal varias veces al día, automáticamente, para prevenir problemas de integración (integration hell) cuanto antes.
Otras pruebas...
Unit (TDD), performance, stress.
Referencias bibliográficas
SW Testing Automation
By Dave Rivera
SW Testing Automation
- 1,158