¿Qué técnicas de Testing software debemos usar?

Actualmente es necesario incluir un equipo de testing en cada proyecto de software, debido sobre todo, a que cada vez son más complejos. Cada sistema, está compuesto por más subsistemas y un pequeño fallo en el desarrollo podría desembocar en un gran fallo en producción que acarre perdidas millonarias.

Ya no conviene ahorrar dinero en el testing, debido a que usando las técnicas adecuadas, puede llevar a obtener muchos más beneficios que daños a largo plazo.

Pero ¿qué técnicas de testing debemos usar y cuales nos llevaran a obtener un mejor trabajo? Todo dependerá de nuestro sistema y en dónde queremos poner el foco para probar, así como el tipo de pruebas que queramos realizar.

Para sentar las bases de los tipos de pruebas y las diferentes técnicas de testing, los diferentes niveles de pruebas se pueden dividir en:

  • Pruebas unitarias: tienen como objetivo comprobar el funcionamiento de un módulo de software que pruebe probarse aisladamente y son usualmente usadas por los desarrolladores.

Las herramientas más usuales para este tipo de pruebas son: Junit, EasyMock, TestNG, SimpleTest.

  • Pruebas de integración: Se utilizan para probar las interacciones entre componentes.

Algunas de las herramientas más utilizadas son: Selenium, Appium, Soapui…

  • Pruebas de sistema: Se usan para probar el sistema como un todo, con el entorno lo más posible parecido a producción.

Algunas herramientas que se usan, por ejemplo, para medir el rendimiento son: JMeter, FunkLoad, loadUI, HP LoadRunner.

  • Pruebas de aceptación: Se basan en  poder establecer un amplio grado de confianza en un sistema para que el cliente pueda validar que sus expectativas se han cumplido y también se han validado los requisitos.

Para este tipo de pruebas se pueden usar herramientas como: Canoo, Concordion, JBehave…

Dentro de cada nivel de prueba, asimismo, se pueden establecer diferentes tipos de pruebas, que establecen que técnica usar:

  • Pruebas funcionales (o de caja negra): Las pruebas funcionales tienen en cuenta el comportamiento externo del software “lo que el sistema hace”.

Algunas de las técnicas más usadas son: Partición de equivalencias, análisis de valores borde, tablas de decisión, transición entre estados, casos de uso, historias de usuario. Aparte, relativas a la automatización, se usan: Record & Playback (consiste en grabar una ejecución de la prueba realizada en la interfaz de la aplicación y su reproducción posterior), Data-Driven (se enfoca en la extracción de datos de prueba a través de scripts, y los almacena en archivos separados), Keyword-Driven (basada en la recuperación de los procedimientos de prueba desde los scripts, quedando sólo los datos de prueba y acciones específicas de prueba, identificados por palabras clave)

  • Pruebas no funcionales: Estas pruebas se refieren a “cómo” funciona el sistema, como por ejemplo, pruebas de usabilidad, de estrés, de carga…
  • Pruebas estructurales (o de caja blanca): se basan en el análisis de la estructura del componente o sistema. La técnicas usadas son: técnica de cobertura de caminos, técnicas de estructuras de control de flujo (Decisión/Condición), técnica de cobertura de ciclos, de análisis estático del código…
  • Pruebas de regresión: Son pruebas reiteradas tras haberse solucionado algún fallo, para comprobar que no se ha impactado en el software con  vistas a localizar defectos surgidos o no descubiertos como resultado del cambio. Técnicas como smoke testing y sanity testing se suelen usar.

Escoger un tipo de técnica puede ser complicado sobre todo si la aplicación es compleja, por ello desde las jornadas de EXPO QA se analizarán diferentes técnicas, así aparte de garantizar que se está usando una técnica adecuada, se ha generado documentación adecuada además se han incorporado también pruebas que garantizar una seguridad y minimizan riesgos.

Algunas charlas interesantes entorno a esta temática que podéis encontrar en estas jornadas son:

  • Ard Kramer, Beren Van Daele & Andreas Faes :¡(Re) inventa tu estrategia de prueba!

Juntos diseñaréis una estrategia para un producto de la vida real que incluya métodos, herramientas y planificación.

  • Fiona Charles : Documentación de tamaño correcto para diseño de pruebas e informes

En esa charla se trabajará para explorar cómo optimizar la documentación de pruebas para satisfacer las necesidades de cada proyecto.

  • Santhosh Tuppad : ¿Por qué la seguridad del software ha empeorado? ¿Y qué podemos hacer al respecto?

Santhost te dirá cómo puedes comenzar las pruebas de seguridad desde el primer día y comenzar a contribuir en términos de desarrollar un software seguro.

  • Isabel Vilacides : Pruebas en el mundo de los cien microservicios: cuando la pirámide de prueba se convierte en un reloj de arena

Isabel Vilacides explicará su viaje para llegar a una estrategia de prueba que fue capaz de proteger a los clientes de docenas de lanzamientos por día de diferentes servicios al mismo tiempo.

  • Enrique Almohalla : TDM en acción con icaria Lean Tester

En esta charla se mostrará cómo reducir a cero los tiempos de aprovisionamiento de datos y de comprobación del resultado de la prueba con icaria Lean Tester, la plataforma TDM desarrollada por netZima.

  • Adam Knight : El cuestionario de riesgo

Adam Knight examinará la naturaleza de la percepción de riesgo individual que está vinculada a nuestros prejuicios evolutivos y cómo los conceptos tales como “compensación de riesgo” y la “heurística de disponibilidad” dirigen nuestra percepción de riesgo.

Podéis encontrar más información sobre las charlas en la siguiente imagen:


You May Also Like