Descarga el informe de calidad mundial del año 2024 introduciendo tu correo.
El testing tambien llamado pruebas de software es una de las activides fundamentales para conseguir que un producto tenga un mínimo de calidad .
La otra actividad es el QA o aseguramiento de calidad que se enfoca más en que el proceso de desarrollo mejore en cada nueva funcionalidad.
Las pruebas de software son probar el software para conseguir encontrar el mayor número de defectos o fallos en el software.
Puede parecer lo mismo pero un defecto es un el error que comete un experto(desarrollador o tester) en un artefacto del proceso de desarrollo de software.
Un fallo es la consecuencia de que un defecto en el código fuente se ejecute ,es cuando aparece un comportamiento no esperado del software ,aunque puede estar controlado .
Los artefacto del proceso de desarrollo de software pueden ser:
- Requisitos de usuario.
- Historias de usuario.
- Criterios de aceptación.
- Planes des de prueba.
- Casos de prueba.
- Diagramas de clases.
- Diagramas de ER de bases de datos.
- Casos de prueba.
- Codigo fuente.
- Empaquetados (como los .jar de Java).
Lo anterior son algunos ejemplos realmente puede ser cualquier cosa que se utiliza en el proceso de desarrollo de pruebas y el proceso de pruebas.
El testing tienen 7 principios fundamentales :
- Las pruebas demuestran la presencia defectos no su ausencia.
- Las pruebas exhaustivas son imposibles.
- Las pruebas tempranas ahorran tiempo y dinero.
- Los defectos se agrupan .
- Las pruebas hay que actualizarlas.
- Las pruebas dependen del contexto.
- La falacia de la ausencia de defectos.
Las pruebas tienen una serie de objetivos que pasaré en hablar en la siguiente sección.
Objetivos del testing
El testing tienen objetivos pero esos objetivos dependen del contexto,de la fase de desarrollo en la que estamos,del nivel de pruebas,del tipo de pruebas,de las necesidades del cliente ,del tipo de metodología que estamos utilizando.
A nivel general los objetivos de las pruebas son:
- Prevenir defectos y fallos en el software.
- Verificar que se cumplen los requerimientos de usuario.
- Verificar que se crea el producto que cumple con las necesidades comerciales del cliente.
- Generar confianza en el producto.
- Obtener información para la toma de decisiones en el proyecto o sprint.
- Verificar que se cumplen estándares de calidad como ISO 9001.
Niveles del testing
Los niveles de pruebas estan realicionados con la faase de desarrollo que estamos ,en Scrum por ejemplo ,se entregan funcionalidad o MVP en iteraciones que pueden ser de 1 a 4 semanas y cada iteración tiene un conjunto de fases de desarrollo.
Las fases de desarrollo suelen ser 5:
- Obtención de requerimientos.
- Diseño de requerimientos.
- Implementación de requerimientos.
- Pruebas de aceptación.
- Instalación en producción
- Mantenimiento y seguimiento.
La obtención de requerimientos suelen ser cuando se utiliza técnicas como lluvia de ideas para sacar las necesidades de un cliente en un sprint.
El diseño suele ser cuando se traduce esos requerimientos a un lenguaje que se puedan implementar para eso se utilizan historias de usuario y criterios de aceptación que todos desarrolladores y partes interesantes entienden.
La implementación es la codificación utilizando algun lenguajes como java,.NET ,python.
De las pruebas de aceptación ya hablaré en un rato y la instalación en produccion es donde los usuarios reales lo utlizan y el mantenimiento y seguimiento para solucionar problemas con parches.
Segun el concepto de desplazamiento a la izquierda hay que probar desde el momento en que un artefacto está en borrador y desde el inicio del ciclo de vida del software.
Cada fase de desarrollo debe tener sus pruebas asociadas y en realidad hay 4 niveles de prueba asociadas con esas fases de desarrollo.
Segun la piramide de Cohn son 3 niveles de prueba:

Yo me atrevería a decir que son 4 niveles y son los siguientes:
Nivel de pruebas de componente
Es el nivel más bajo ,se prueban todos los métodos de un componente para verificar que devuelven lo que se espera.
Suelen realizarse por los desarrolladores pero debido a que suelen estar muy ocupados el equipo de QA también puede realizarlas.
Se automatizan con unos frameworks que hablaremos más adelante de ellos.
Deben automatizarse estas pruebas y es donde más pruebas deben realizarse para que se reduzcan costes en niveles superiores ,es importante una cobertura del 100% .
Nivel de pruebas de integración
En este nivel se realizan pruebas entre los distintos componentes del sistema para ver si sus métodos llaman correctamente a los metodos de otros componentes.
También es donde se realizan las pruebas de apis y microservicios que ayudan mucho al kernel de la aplicación.
Es necesario automatizar las pruebas con herramientas como Newman para las pruebas de apis y se suele utilizar postman para este tipo de pruebas .
Nivel de pruebas de sistema
En este nivel es donde se realizan las pruebas end to end,desde la interfaz a la base de datos y es donde existen un montón de de tipos de pruebas.
En este nivel es donde las pruebas están automatizadas y suelen ser pocas y de gran cobertura ,fijándonos en aquellas partes que son fundamentales para el negocio .
En la siguiente sección os hablaré de todas ellas.
Nivel de pruebas de aceptación
Este nivel es el último y es muy importante porque es donde se analiza si el el entregable que se entrega al cliente es el producto que realmente quiere,si satisface sus necesidades comerciales.
Se realiza con el usuario final en tu entorno y se verifica como funciona en su entorno y si cumple con las necesidades del cliente.
Hay marcos de trabajo como BBD o ATDD que ayudan mucho a que se cumplan estas pruebas de aceptación pues se basan en los criterios de aceptación que tiene que cumplir una historia de usuario para ser completa y aceptada por el cliente.
Tipos de pruebas
Hay un monton de tipos de pruebas que podiamos agrupar en pruebas funcionales y no funcionales.Ambas son pruebas del sistema porque realmente se hacen cuando el sistema o el MVP que se va entregar ha superado las pruebas unitarias y de integración .
Pruebas funcionales
Son pruebas cuyo objetivo es verificar si los requisitos de usuario están implentamos y si están todos los requisitos de usuario en ese sprint ademas de verificar que no hace lo que no tiene que hacer.
Dentro de las pruebas funcionales podemos hablar de las pruebas de humo, las pruebas exploratorias,las pruebas de regresión,de confirmación y de mantenimiento.
Las pruebas de humo realmente se realizan para verificar que la versión del sistema que se ha instalado en el entorno de pruebas es operativa ,se mira si realiza las operaciones fundamentales y es estable para probar .
Es un tipo de pruebas funcional que se hace para verificar que la versión es estable para probar .
Las pruebas exploratorias son otro tipo de pruebas que se realizan cuando quienes la realizan tienen experiencia en la aplicación o sector,no hay documentación y además no hay tiempo para hacer casos de prueba.
Las pruebas de regresión son aquellas que se realizan cuando se ha modificado el código para ver si ese nuevo código no ha generado defectos en partes del código que no han sufrido modificación.
Las pruebas de confirmación se hacen cuando la anterior prueba fallo o cuando se encontró un defecto el desarrollador lo soluciono y el tester comprueba que si está solucionado.
Se basa mucho en la independencia de pruebas ,minimo tiene que hacer un QA en el equipo Scrum o tener un equipo de QA que pruebe varios proyectos esto seria independencia alta ,muy alta si pertenece a otra empresa.
Las pruebas de mantenimiento se hacen cuando ocurre una actualización correctiva ,evolutiva o la instalación de un parche en caliente(Error en produccion grave que hay que solucionar ya).
También cuando se migra de un sistema operativo a otro o de una plataforma a otra,de windows 9 a 10 de Windows a Linux y también cuando finaliza la la vida útil de una aplicación o cuando se sube de versión en un framework.
Estas serían las pruebas funcionales dentro del testing.
Pruebas no funcionales
Las pruebas no funcionales se utilizan para verificar caracteristicas que no son funcionales ,como el rendimiento, la seguridad,la usabilidad,la fiabilidad,la portabilidad creo que podiamos hablar de 12.
Os paso a describir las 8 pruebas y que característica de calidad mide.
Pruebas de rendimiento
Las pruebas de rendimiento miden el tiempo de respuesta de la aplicación en distintas circunstancias,hay sobre todo 3 grandes pruebas:
Pruebas de estres cuando se supera ampliamente los usuarios esperados y se analiza como se comporta el sistema.
Las pruebas de carga que es cuando se analiza cuantos usuarios soporta la aplicación manteniendo un rendimiento y estabilidad aceptables.
Pruebas de volumen que es cuando pruebas la aplicación para analizar como se comporta cuando se le introduce una gran cantidad de datos.
Pruebas de seguridad
En estas pruebas se verifica que se cumple los los 4 principios fundamentales de la seguridad que serían confidencialidad,integridad,disponibilidad y trazabilidad.
Suele contratarse a un experto de una empresa de seguridad.
Pruebas de escalabilidad
Se analiza si el sistema es capaz de soportar nuevos módulos y se integran completamente con los que hay o integrar servicios externos.
Pruebas de usabilidad
Se prueba la experiencia de usuario , la facilidad de uso y de aprendizaje de la aplicación.Suele contratarse a un ingeniero UX para realizarlas.
Pruebas de compatibilidad
Se prueba el software en distintos dispositivos,por ejemplo si es una app se instala en un smarphone,una tablet,una TV inteligente,en un reloj inteligente,ect.
También que sea de distintos fabricantes Apple,Samsumg,Huawei,Xiaomi,para ver si soporta su hardware y su firmware.
Pruebas de fiabilidad
Se prueba durante un tiempo,8 horas seguidas,una semana el software para ver cuantos fallos hay y su gravedad,el onjetivo es la disponililidad del software 99.9 % durante el año.
Los warning se ignorarn y se mira los fallos graves sobre todo.
Pruebas de documentación
Se analiza si la documentación que se crea y el código esta bien documentado .
Pruebas de portabilidad
En estas pruebas se analiza si la aplicación funciona bien en cualquier sistema operativo ,Windows,Linux o MAC.
Estas pruebas serían las pruebas no funcionales dentro del testing.
Herramientas del testing
Hay yo creo 12 categorías de herramientas dentro del testing que serían y luego una serie de herramientas muy utilizadas .
Herramientas de gestión de proyectos
Estas herramientas ayudan a gestionar un proyecto tenemos Jira y Trello para gestionar proyectos ágiles.
Herramientas de análisis de código
Que permiten analizar el código como puede ser Sonarqube,Kiuwan o Veracode.
Herramientas de cobertura de pruebas
Analizas el porcentaje de codigo y ramas de código que se ha probado por componente ,cover y jacobo son para java.
Herramientas de pruebas unitarias
Para poder realizar las pruebas unitarias para java hay Testng o Junit 5.
Herramientas de gestión de pruebas
Permiten hacer un seguimiento de las pruebas como XRAY,testlink,mantis,testRAY,readmine,ALM,Qtest.
Herramientas para el diseño de pruebas
Ayudan a crear los casos de pruebas ,conseguir los datos y automatizas desde los requerimientos ,herramientas serían Tosca,Kcycle,Conformiq.
Herramientas de ejecución de pruebas
Herramientas que permite automatizar pruebas funcionales como selenium,cypress,katalon,testcomplete,robot framework,UFT,Ranorex studio,Rational functional tester .
Herramientas de pruebas de rendimiento
Son aquellas que analizan el rendimiento de una aplicación con distintas pruebas .Existen herramientas como Jmeter gratuita,LoadRunner para pruebas con miles de usuarios y LoadUI un termino medio .
Herramientas de pruebas de seguridad
Permiten analizan la seguridad en aplicaciones web como BurpSuite,los servicios que existen sinproteger como Nmap,o protocolos sin encriptar como Wireshark,o la configuración de fredes o SO como Nessus o kali linux para prueba de penetración.
Herramientas en la nube
Herramientas como Azure DevOps ,que nos permiten tener devops en la nube o Docker para la descargas con contenederos ya con sistemas preparados para solo configurarlos.
Herramientas de gestión de datos
Herramientas que nos permiten conseguir datos para las pruebas como HP Test Data management o Datamarker.
Herramientas de monitoreo
Herramientas que permiten hacer un seguimiento de la aplicación para ver errores en tiempo real Prometheus,Grafana que son gratis o Dinatrace o Datadog de pago.
Herramientas de comunicación
Herramientas para estar en contacto al momento y hacer videollamadas como Teams,Meet,skype ,zoom.
Herramientas de oficina
Herramientas como office 365 o el paquete de gmail nos permite trabajar y compartir documentos o enviar correos,crear presentaciones,documentos ,hojas de calculo ,ect.
También Confluence podia utilizarse para compartir documentación de un proyecto.
Herramientas de integración continua
Herramientas que permiten integrar herramientas como Slack,Jenkins,Bamboo.
Si te ha gustado el artículo compártelo y suscríbete a mi newsletter.
Te dejo una serie de libro
- Arreola Ramirez, Oscar Alejandro(Autor)
- Spanish(Idioma de Publicación)
- 282 Páginas – 12/15/2018 (Fecha de Publicación) – Editor: Independently published
- Zanjat, Shraddha N.(Autor)
- Spanish(Idioma de Publicación)
- 68 Páginas – 01/23/2024 (Fecha de Publicación) – Editor: Ediciones Nuestro Conocimiento
- Pardeshi, Sachin(Autor)
- Spanish(Idioma de Publicación)
- 108 Páginas – 02/24/2025 (Fecha de Publicación) – Editor: Ediciones Nuestro Conocimiento
- Srivastava, Devesh Kumar(Autor)
- Spanish(Idioma de Publicación)
- 76 Páginas – 11/01/2022 (Fecha de Publicación) – Editor: Ediciones Nuestro Conocimiento
- Guido, Santiago(Autor)
- Spanish(Idioma de Publicación)
- 485 Páginas – 10/25/2024 (Fecha de Publicación) – Editor: Independently published
- García García, Saúl(Autor)
- Spanish(Idioma de Publicación)
- 509 Páginas – 08/14/2023 (Fecha de Publicación) – Editor: Independently published
- Dubey, Prof. Ratnesh Kumar(Autor)
- Spanish(Idioma de Publicación)
- 68 Páginas – 02/09/2023 (Fecha de Publicación) – Editor: Ediciones Nuestro Conocimiento
- Pinzón Amaya, Sergio(Autor)
- Spanish(Idioma de Publicación)
- 84 Páginas – 03/11/2023 (Fecha de Publicación) – Editor: Independently published
- Edición Amazon Kindle
- Gonzalez, Luiz(Autor)
- Spanish(Idioma de Publicación)
- 18 Páginas – 01/24/2022 (Fecha de Publicación)
Si te ha gustado suscribete a mi newsletter o únite a mi canal de Whatshapp para seguir mis publicaciones en mi podcast testing para principiantes o en el blog de esta página.
Visitas: 22
Soy Alejandro Juan Canosa Ferreiro, experto en calidad de software y escritor. Tengo publicado el libro Scrum. Teoría e implementación práctica, tiene 9 versiones, y acabo de publicar mi segundo libro Certificación ISTQB Certified Foundation Level 4.0.
Actualmente soy responsable de calidad en un proyecto para SEPI en la empresa pública tragsa.
Última actualización el 2025-04-05 / Enlaces de afiliados / Imágenes de la API para Afiliados