1. Tipos De Pruebas De Software
Luis Fernando Quiroz Martínez
Plataformas De Desarrollo De Software – Semana 5
Ingeniero: Frank Jairo Castillo Padilla
Corporación Universitaria Minuto de Dios
Especialización en Desarrollo de Software
Medellín, Colombia
14 de febrero de 2023
2. TIPOS DE PRUEBAS DE SOFTWARE
Durante la realización de este trabajo se abordará los diferentes tipos de pruebas, su
importancia dentro de un proceso de validación y verificación de nuestro software, con el objeto
de que este se esté construyendo o se haya construido correctamente, logrando así encontrar
defectos y validando que el producto este cumpliendo con los requerimientos del cliente, que se
encuentre libre de errores, con la mayor claridad posible para ser liberado a producción.
Es importante destacar también que todos los tipos de prueba no se pueden aplicar a todos
los proyectos, ya que esto va a depender de las características del negocio y las necesidades de
cada una de las organizaciones.
En la actualidad la implementación de un software testing, es que nos permiten validar el
control de calidad en el desarrollo de los proyectos de desarrollo o mantenimiento de software,
logrando detectar errores antes de su entrega , ayudando a minimizar el tiempo en los diferentes
procedimientos, es por ello que al momento de su desarrollo se deben de tener presente la
selección de una buena prueba que faciliten el cumplimiento de los requerimientos necesarios por
parte del producto de software desarrollado.
Actualmente el desarrollo de software se ha convertido en unos de los requerimientos en la
implementación de aplicaciones o servicios, es así que podemos destacar dos modelos de calidad
para la evaluación del producto, una es la norma ISO/IEC 25010, la cual se encuentra compuesta
por las ocho características de calidad, entre las cuales podemos mencionar:
3. Adecuación Funcional
Representa la capacidad del producto software para proporcionar funciones que satisfacen las
necesidades declaradas e implícitas, cuando el producto se usa en las condiciones especificadas.
Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
Completitud funcional. Grado en el cual el conjunto de funcionalidades cubre todas las
tareas y los objetivos del usuario especificados.
Corrección funcional. Capacidad del producto o sistema para proveer resultados
correctos con el nivel de precisión requerido.
Pertinencia funcional. Capacidad del producto software para proporcionar un conjunto
apropiado de funciones para tareas y objetivos de usuario especificados.
Eficiencia de desempeño
Esta característica representa el desempeño relativo a la cantidad de recursos utilizados bajo
determinadas condiciones. Esta característica se subdivide a su vez en las siguientes
subcaracterísticas:
Comportamiento temporal. Los tiempos de respuesta y procesamiento y los ratios
de throughput de un sistema cuando lleva a cabo sus funciones bajo condiciones
determinadas en relación con un banco de pruebas (benchmark) establecido.
Utilización de recursos. Las cantidades y tipos de recursos utilizados cuando el software
lleva a cabo su función bajo condiciones determinadas.
Capacidad. Grado en que los límites máximos de un parámetro de un producto o sistema
software cumplen con los requisitos.
4. Compatibilidad
Capacidad de dos o más sistemas o componentes para intercambiar información y/o llevar a
cabo sus funciones requeridas cuando comparten el mismo entorno hardware o software. Esta
característica se subdivide a su vez en las siguientes subcaracterísticas:
Coexistencia. Capacidad del producto para coexistir con otro software independiente, en
un entorno común, compartiendo recursos comunes sin detrimento.
Interoperabilidad. Capacidad de dos o más sistemas o componentes para intercambiar
información y utilizar la información intercambiada.
Usabilidad
Capacidad del producto software para ser entendido, aprendido, usado y resultar atractivo
para el usuario, cuando se usa bajo determinadas condiciones. Esta característica se subdivide a
su vez en las siguientes subcaracterísticas:
Reconocibilidad de la adecuación. Capacidad del producto que permite al usuario
entender si el software es adecuado para sus necesidades.
Aprendizabilidad. Capacidad del producto que permite al usuario aprender su aplicación.
Operabilidad. Capacidad del producto que permite al usuario operarlo y controlarlo con
facilidad.
Protección contra errores de usuario. Capacidad del sistema para proteger a los
usuarios de hacer errores.
Estética de la interfaz de usuario. Capacidad de la interfaz de usuario de agradar y
satisfacer la interacción con el usuario.
5. Accesibilidad. Capacidad del producto que permite que sea utilizado por usuarios con
determinadas características y discapacidades.
Fiabilidad
Capacidad de un sistema o componente para desempeñar las funciones especificadas,
cuando se usa bajo unas condiciones y periodo de tiempo determinados. Esta característica se
subdivide a su vez en las siguientes subcaracterísticas:
Madurez. Capacidad del sistema para satisfacer las necesidades de fiabilidad en
condiciones normales.
Disponibilidad. Capacidad del sistema o componente de estar operativo y accesible para
su uso cuando se requiere.
Tolerancia a fallos. Capacidad del sistema o componente para operar según lo previsto
en presencia de fallos hardware o software.
Capacidad de recuperación. Capacidad del producto software para recuperar los datos
directamente afectados y reestablecer el estado deseado del sistema en caso de
interrupción o fallo.
Seguridad
Capacidad de protección de la información y los datos de manera que personas o sistemas no
autorizados no puedan leerlos o modificarlos. Esta característica se subdivide a su vez en las
siguientes subcaracterísticas:
6. Confidencialidad. Capacidad de protección contra el acceso de datos e información no
autorizados, ya sea accidental o deliberadamente.
Integridad. Capacidad del sistema o componente para prevenir accesos o modificaciones
no autorizados a datos o programas de ordenador.
No repudio. Capacidad de demostrar las acciones o eventos que han tenido lugar, de
manera que dichas acciones o eventos no puedan ser repudiados posteriormente.
Responsabilidad. Capacidad de rastrear de forma inequívoca las acciones de una entidad.
Autenticidad. Capacidad de demostrar la identidad de un sujeto o un recurso.
Mantenibilidad
Esta característica representa la capacidad del producto software para ser modificado efectiva
y eficientemente, debido a necesidades evolutivas, correctivas o perfectivas. Esta característica se
subdivide a su vez en las siguientes subcaracterísticas:
Modularidad. Capacidad de un sistema o programa de ordenador (compuesto de
componentes discretos) que permite que un cambio en un componente tenga un impacto
mínimo en los demás.
Reusabilidad. Capacidad de un activo que permite que sea utilizado en más de un
sistema software o en la construcción de otros activos.
Analizabilidad. Facilidad con la que se puede evaluar el impacto de un determinado
cambio sobre el resto del software, diagnosticar las deficiencias o causas de fallos en el
software, o identificar las partes a modificar.
Capacidad para ser modificado. Capacidad del producto que permite que sea
modificado de forma efectiva y eficiente sin introducir defectos o degradar el desempeño.
7. Capacidad para ser probado. Facilidad con la que se pueden establecer criterios de
prueba para un sistema o componente y con la que se pueden llevar a cabo las pruebas
para determinar si se cumplen dichos criterios.
Portabilidad
Capacidad del producto o componente de ser transferido de forma efectiva y eficiente de un
entorno hardware, software, operacional o de utilización a otro. Esta característica se subdivide a
su vez en las siguientes subcaracterísticas:
Adaptabilidad. Capacidad del producto que le permite ser adaptado de forma efectiva y
eficiente a diferentes entornos determinados de hardware, software, operacionales o de
uso.
Capacidad para ser instalado. Facilidad con la que el producto se puede instalar y/o
desinstalar de forma exitosa en un determinado entorno.
Capacidad para ser reemplazado. Capacidad del producto para ser utilizado en lugar de
otro producto software determinado con el mismo propósito y en el mismo entorno.
Otra es La norma internacional ISTQB (International Software Testing Qualifications
Board). Esta organización se encarga de soportar y definir un esquema de certificación
internacional. Suministra el plan de estudios y el glosario sobre los que se definen los que se
establecen las guías para la acreditación y evaluación de los profesionales del testing a cargo de
los comités de cada país Según ellos mismos, el ISTQB ha creado esquema más exitoso del
mundo para la certificación de los probadores de software.
8. Los tipos de pruebas de software definidos por el ISTQB son: Pruebas Funcionales, Pruebas
de Características de Software no Funcionales, Pruebas de Estructura del Software
(Arquitectura) y Pruebas relacionadas con cambios, tales como Repruebas y Regresión.
A continuación, presentamos los Tipos de Pruebas de Software del ISTQB descritos en detalle:
Pruebas funcionales
Se entiende como las Funcionalidades del Sistema cómo “lo que el sistema hace”.
Las Funcionalidades pueden estar descritas en las especificaciones de requerimientos,
especificaciones funcionales, casos de uso e inclusive no estar documentadas.
Los casos de prueba se definen a partir de estas funciones o características, así como su
interoperabilidad entre sistemas.
Consideran el comportamiento externo del sistema por lo que se consideran pruebas
de caja negra.
Además de las pruebas sobre los módulos y funciones, pueden realizarse pruebas en
áreas especializadas como Pruebas de Seguridad y Pruebas de Interoperabilidad.
Pruebas no funcionales de software
Su objetivo es probar los requerimientos no funcionales, incluyendo (sin limitarse a)
pruebas de: Desempeño, Carga, Estrés, Usabilidad, Mantenibilidad, Confiabilidad y
Portabilidad.
Los requerimientos no funcionales representan “cómo funciona el sistema” (en
contraposición con las funcionalidades que definen “lo que el sistema hace”).
9. Las características no funcionales del software, se pueden medir de diversas maneras,
por ejemplo por medio de tiempos de respuesta en el caso de pruebas de desempeño.
Pueden hacer referencias a modelos de calidad, como por ejemplo ISO 9126.
Consideran el “comportamiento externo” del sistema, en la mayoría de los casos
son pruebas de caja negra.
Pruebas de la estructura ó arquictectura del Software
Las Pruebas Estructurales es el término usado por ISTQB para las pruebas de “Caja
Blanca”.
Se realizan aplicando técnicas de pruebas estructurales y técnicas estáticas, en lugar de
técnicas basadas en especificación.
Utiliza el concepto de “Cobertura” para definir la extensión con la cual la estructura ha
sido cubierta por el conjunto de pruebas, expresado como un porcentaje del elemento
probado.
Si la cobertura no es del 100%, se pueden diseñar pruebas adicionales.
Las pruebas estructurales se basan en la arquitectura del sistema, por ejemplo,
arquitectura de “Jerarquía de llamadas”.
Pruebas de regresión y re-prueba por cambios
Las Re-Pruebas son aplicadas después que un defecto es identificado y corregido, con
la finalidad de verificar que el defecto ya no se está presentando.
10. Las Pruebas de Regresión se realizan sobre un componente ya probado, para verificar
que no presenta nuevos defectos cuando se realiza una modificación después de dichas
pruebas.
Deben buscarse nuevos defectos tanto en el componente que se está probando cómo
otros componentes afectados por el cambio.
Se necesita tener claridad de las piezas de software que resultan afectadas por el
cambio.
Las pruebas deben ser repetibles si han de usarse para pruebas de confirmación y
regresión.
Incluyen pruebas funcionales, no funcionales y estructurales.
Dado que las pruebas se ejecutan repetidas veces, las pruebas de regresión son
candidatas a la automatización de pruebas por medio de herramientas.
Pruebas de mantenimiento
Aplicadas sobre sistemas que están operativos en ambiente de producción.
Se ejecutan como resultado de modificaciones, migraciones o desincorporación de
software.
Las Pruebas de Modificaciones incluyen mejoras planificadas, correctivas o de
emergencia, así como cambios en el entorno de sistema operativo, bases de datos,
actualizaciones o parches.
Las Pruebas de Migración debe incluir pruebas operativas del nuevo entorno
(Sistema operativo, base de datos, etc.) así como pruebas sobre el software
11. modificado. Si existe migración y conversión de datos, también serán necesarias
pruebas sobre estos.
Las Pruebas por Desincorporación incluyen pruebas de migración de datos o su
archivo si se requieren largos períodos de retención.
Incluye también pruebas de regresión sobre las partes del sistema que no se están
cambiando.
Pueden ser difíciles de realizar si las especificaciones están desactualizadas o no
existen, o si no se cuenta con Testers con conocimiento del sistema.
.
12. Lista De Referencias
Ceballos, F. (2015). Microsoft visual basic.NET: curso de programación. RAMA, pp. 780-
786.
Gómez, M., Jaramillo, C., y Astudillo, H. (2019). SETMAT (software engineering teaching
method and theory): Una teoría para la enseñanza de ingeniería de software. Revista Ibérica de
Sistemas e Tecnologias de Informação, (E19), 721-734
ISO 25010. (n.d.). Iso25000.com. Retrieved February 14, 2023, from. Extraido de:
https://iso25000.com/index.php/normas-iso-25000/iso-25010?start=6
La importancia de la norma ISTQB « QAustral. (n.d.). Com.ar. Retrieved February 14, 2023,
from. Extraído de: http://qaustral.com.ar/sitio/la-importancia-de-la-norma-istqb/
Testeando Software. (2014, January 14). ISTQB. ¿Qué es? ¿Cuáles son los niveles de
certificación? Testeando Software. Extraído de: https://testeandosoftware.com/istqb-que-
es-cuales-son-los-niveles-de-certificacion/