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.

UDD

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

En la automatización es necesario que los que diseñan la prueba tengan habilidades en la codificación, ya que los casos de prueba son escritos en forma de código fuente que, cuando se ejecutan, producen resultados de acuerdo a aserciones que hacen parte del caso.

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