Está en la página 1de 21

IMPLEMENTACIÓN DE LA TECNOLOGÍA DE

INFORMACIÓN
PRUEBAS DE DEFECTOS Y DE VALIDACIÓN
INTRODUCCIÓN
NUNCA se dará suficiente importancia a las pruebas del software y sus implicaciones en la calidad del software.
Citando a Deutsch [DEU79]:
El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de
que aparezca el fallo humano son enormes. Los errores pueden empezar a darse desde el primer momento del
proceso, en el que los objetivos pueden estar especificados de forma errónea o imperfecta, así como en posteriores
pasos de diseño y desarrollo. Debido a la imposibilidad humana de trabajar y comunicarse de forma perfecta, el
desarrollo de software ha de ir acompañado de una actividad que garantice la calidad.
Las pruebas del software son un elemento crítico para la garantía de calidad del software y representa una revisión
final de las especificaciones, del diseño y de la codificación. La creciente percepción del software como un elemento
del sistema y la importancia de los «costes» asociados a un fallo del propio sistema, están motivando la creación de
pruebas minuciosas y bien planificadas. No es raro que una organización de desarrollo de software emplee entre el
30 y el 40 por ciento del esfuerzo total de un proyecto en las pruebas. En casos extremos, las pruebas del software
para actividades críticas (por ejemplo, control de tráfico aéreo, control de reactores nucleares) puede costar de tres
a cinco veces más que el resto de los pasos de la ingeniería del software juntos

M. en E. Georgina Varona Vargas


PRUEBAS DE DEFECTOS Y VALIDACIÓN
DEFINICIÓN
La prueba es un conjunto de actividades que pueden planearse por adelantado y realizarse de manera sistemática;
por esa razón, durante el proceso de software, debe definirse una plantilla para la prueba de software: un conjunto
de pasos que incluyen métodos de prueba y técnicas de diseño de casos de prueba específicos.
Se han propuesto algunas estrategias de prueba de software; todas proporcionan una plantilla de para la prueba y
tienen las siguientes características genéricas:
 Para realizar una prueba efectiva, debe realizar revisiones técnicas efectivas; al hacerlo eliminará muchos
errores antes de comenzar la prueba.
 Diferentes técnicas de pruebas son adecuadas para distintos enfoques de ingeniería de software y en
diferentes momentos en el tiempo.
 Las pruebas las realiza el desarrollador del software y (para proyectos grandes) un grupo de prueba
independiente.
 Prueba y depuración son actividades diferentes, pero la depuración debe incluirse en cualquier estrategia de
prueba.

M. en E. Georgina Varona Vargas


PRUEBAS DE DEFECTOS Y VALIDACIÓN
DEFINICIÓN
Una estrategia para la prueba de software debe incluir pruebas de bajo niel, que son necesarias ara verificar que un
pequeño segmento de código fuente se implemento correctamente, así como pruebas de alto nivel, que validan las
principales funciones del sistema a partir de los requerimientos del cliente.

Una estrategia debe proporcionar una guía para el profesional y un conjunto de guías para el jefe de proyecto;
puesto que los pasos de la estrategia de pruebas ocurren cuando comienza a aumentar la presión por las fechas
limite; el avance debe ser medible y los problemas deben salir a la superficie tan pronto como sea posible.

M. en E. Georgina Varona Vargas


PLANEACIÓN DE VERIFICACIÓN Y VALIDACIÓN
Tipos de Pruebas
Pruebas unitarias
Pruebas de interface
Pruebas de desempeño
Pruebas de integración
Pruebas de volumen
Pruebas de funcionalidad
Pruebas del sistema
Pruebas de regresión
Pruebas de aceptación
Pruebas de validación
Pruebas de interfaz exploratoria (GUI – Graphic User Interface)
Pruebas de aplicaciones basadas en la web

M. en E. Georgina Varona Vargas


PLANEACIÓN DE VERIFICACIÓN Y VALIDACIÓN
Tipos de Pruebas
 Pruebas unitarias
Una prueba unitaria es un método que puede invocar al código que queremos probar y determina si el resultado
obtenido es el esperado. Si es igual, entonces la prueba es exitosa, si no, falla. Si estos métodos los podemos
ejecutar con un solo clic, entonces podemos ejecutar miles de ellos en muy poco tiempo, esto dependerá del tipo
del sistema que se pruebe.
 Pruebas de interface
Este tipo de pruebas se llevan a cabo para validar si la interfaz del sistema, software o aplicación se desarrollo
cumpliendo todo lo establecido en el diseño, en cuanto a ventanas, botones, enlaces y demás funcionalidad a nivel
grafico de lo que se solicito se desarrollará, en caso de haber errores estos de deben de reportar para corregirlos.
 Pruebas de desempeño
Está diseñada para probar el desempeño del software en tiempo de ejecución dentro del contexto de un sistema
integrado; se aplica en todos los pasos del proceso de la prueba, incluso al nivel de la unidad, el desempeño de un
módulo individual debe evaluarse mientras se realizan las pruebas. Las pruebas de desempeño miden tiempos de
respuesta, índices de procesamiento de transacciones y otros requisitos sensibles al tiempo.
M. en E. Georgina Varona Vargas
PLANEACIÓN DE VERIFICACIÓN Y VALIDACIÓN
Tipos de Pruebas
 Pruebas de integración
Son una técnica sistemática ara construir la arquitectura del software mientras se llevan a cabo pruebas para
descubrir errores asociados con la interfaz; es decir, se toman los componentes probados de manera individual y
construir una estructura de programa que se haya dictado por diseño.

 Pruebas de volumen
Son las pruebas en las que el sistema está sometido a grandes volúmenes de datos; es decir, hacen referencia a
grandes cantidades de datos para determinar los límites en que se cause la falle del Sistema; por otro lado deben
de usarse múltiples clientes y pruebas al mismo tiempo para ver los resultados de la ejecución de esta prueba.

 Pruebas de funcionalidad
Este tipo de pruebas se asegura el trabajo apropiado de los requisitos funcionales, incluyendo la navegación,
entrada de datos, procesamiento y obtención de resultados. Para verificar que el sistema es funcional de acuerdo a
lo especificado y a las reglas del negocio.

M. en E. Georgina Varona Vargas


PLANEACIÓN DE VERIFICACIÓN Y VALIDACIÓN
Tipos de Pruebas
 Pruebas del sistema
Es una serie de diferentes pruebas cuyo propósito es ejercitar el sistema basado en computadora. Aunque cada
prueba tenga un propósito diferente, se debe verificar que los elementos del sistema se hayan integrado de
manera adecuada y que se realcen las funciones asignadas. Estas deben enfocarse en requisitos que puedan ser
tomados directamente de casos de uso y reglas y funciones de negocios.
 Pruebas de regresión
Es una nueva ejecución de algún subconjunto de pruebas que ya se realizaron a fin de asegurar que los cambios no
propagaron efectos colaterales o deseados; estas ayudan a garantizar que los cambios debidos a las pruebas o por
otras razones no introducen un comportamiento no planeado o errores adicionales.
 Pruebas de aceptación
Es ejecutada antes de que la aplicación sea instalada dentro de un ambiente de producción. La prueba de
aceptación es generalmente desarrollada y ejecutada por el cliente o un especialista de la aplicación y es conducida
a determinar como el sistema satisface sus criterios de aceptación validando los requisitos que han sido levantados
para el desarrollo, incluyendo a documentación y procesos de negocio
M. en E. Georgina Varona Vargas
PLANEACIÓN DE VERIFICACIÓN Y VALIDACIÓN
Tipos de Pruebas
 Pruebas de validación
Estas comienzan con la culminación de las pruebas de integración, estas pruebas se enfocan en las acciones visibles para
el usuario y las salidas del sistema reconocibles por el usuario. Esta prueba es exitosa cuando el software funciona en una
forma que cumpla con las expectativas del cliente.
 Pruebas de interfaz exploratoria (GUI – Graphic User Interface)
La prueba de interfaz de usuario verifica la interacción del usuario con el software. El objetivo es asegurar que la interfaz
tiene apropiada navegación a través de las diferentes funcionalidades. Adicionalmente, las pruebas de interfaz aseguran
que los objetos de la interfaz a ser probada se encuentra dentro de los estándares de la industria.
 Pruebas orientadas a objetos
Su finalidad es probar y encontrar el mayor nuero posible de errores con una cantidad manejable de esfuerzo durante un
lapso realista; se usan dos pruebas las de unidad en el contexto y de integración en el contexto.
 Pruebas de aplicaciones basadas en la web
Este tipo de pruebas se usa para probar las webapps, ya que adopta principios básicos para todas las pruebas de software
y aplica una estrategia y tácticas que se usan en sistemas orientados a objetos.
M. en E. Georgina Varona Vargas
HERRAMIENTAS DE PRUEBAS
Mediante la utilización de herramientas se puede conseguir reproducir cierto trabajo previamente
realizado, obteniendo resultados consistentes. Esta característica es especialmente útil para confirmar
que un defecto se ha arreglado o para introducir datos de entrada a pruebas.

Los principales beneficios que aporta el uso de herramientas como medio para llevar a cabo el proceso
de pruebas son:
 Reducir el trabajo repetitivo
 Mejorar la consistencia
 Facilitar las evaluaciones objetivas
 Facilitar el acceso a información relacionada con pruebas.

Las herramientas están clasificadas dependiendo de las áreas o actividades de pruebas a las que se
enfocan, la mayoría de las herramientas comerciales pueden usarse para diferentes funciones.

M. en E. Georgina Varona Vargas


HERRAMIENTAS DE SOPORTE PARA LA GESTIÓN DE PRUEBAS
La gestión de pruebas se aplica sobre el conjunto del ciclo de vida de desarrollo del software, por lo que una
herramienta de gestión de pruebas debería de ser la primera en usarse en el proyecto; esta área abarca cuatro
tipos de pruebas:

M. en E. Georgina Varona Vargas


HERRAMIENTAS DE SOPORTE PARA LA GESTIÓN DE PRUEBAS
 Herramientas de gestión de pruebas: estas ayudan a recoger, organizar y comunicar información sobre las
pruebas en un proyecto. Esta información puede usarse para monitorear el proceso de pruebas y decidir las
acciones a tomar. Asimismo, estas herramientas también proporcionan información sobre el componente o
sistema que es probado.
 Herramientas de gestión de requisitos: son útiles para las pruebas dado que estas se basan en los requisitos. De
esta forma, cuanto mayor sea la calidad de requisitos, más fácil será desarrollar pruebas para comprobar que
son correctos. Asimismo es importante mantener una trazabilidad bidireccional entre los requisitos y las
pruebas, y etas herramientas pueden ser de gran ayuda en esta tarea.
 Herramientas de gestión de incidencias: facilitan el mantenimiento del registro de incidencias a lo largo del
tiempo. este tipo de herramientas permiten identificar defectos, problemas, anomalías o posibles mejoras.
 Herramientas de gestión de configuración: las herramientas de gestión de configuración no son estrictamente
herramientas de pruebas, sin embargo, una buena gestión de configuración es critica par controlar las pruebas.
Es necesario conocer exactamente que debe ser probado así como la versión exacta de todos los componentes
del sistema
M. en E. Georgina Varona Vargas
HERRAMIENTAS DE SOPORTE PARA ESPECIFICACIONES DE PRUEBAS
Estas herramientas dan soporte a actividades de pruebas tales como el análisis de pruebas, el diseño de pruebas o
la implementación de pruebas. Se destacan dos tipos de categorías de estas herramientas:

 Herramientas de diseño de pruebas: estas son de gran utilidad a la hora de comenzar el diseño de pruebas,
aunque no harán todo el trabajo. El beneficio de este tipo de herramientas es que pueden identificar de
manera rápida y sencilla las pruebas a ejecutar sobre todo los elementos el sistema; es decir, ayuda a que el
proceso de pruebas sea más exhaustivo.
M. en E. Georgina Varona Vargas
HERRAMIENTAS DE SOPORTE PARA ESPECIFICACIONES DE PRUEBAS
Las herramientas de diseño de pruebas también puede ayudar a identificar valores de entradas a las pruebas
(requisitos, modelos de diseño, condiciones de prueba...), a construir casos de pruebas, a seleccionar los
factores a tener en cuenta para asegurar que todos los pares de combinación son probados.

 Herramientas de preparación de datos de pruebas: establecer datos de pruebas puede ser una tarea tediosa,
especialmente si se contempla un gran volumen de datos para las pruebas. Las herramientas de preparación
de datos de prueba sirven de ayuda en esta área. Estas herramientas suelen usarse por los desarrolladores,
aunque también se utilizan durante las pruebas de sistema y de aceptación. Son especialmente útiles en las
pruebas de rendimiento, donde es imprescindible trabajar con gran cantidad de datos realistas.

M. en E. Georgina Varona Vargas


AUTOMATIZACIÓN DE PRUEBAS
Las pruebas son una fase cara y laboriosa del proceso del software. Como consecuencia, las herramientas de
prueba estaban entre las primeras herramientas de software a desarrollar. Actualmente, estas herramientas
ofrecen una serie de facilidades y su uso puede reducir significativamente los costes de las pruebas.
Ya se ha mostrado una aproximación para la automatización de las pruebas (Mosley y Posey, 2002) en las que se
utiliza un marco de trabajo de pruebas tal como JUnit (Massol y Husred, 2003) para pruebas de regresión. JUnit es
un conjunto de clases Java que el usuario extiende para crear un entorno de pruebas automatizado.
Cada prueba individual se implementa como un objeto y un ejecutador de pruebas ejecuta todas las pruebas. Las
pruebas en sí mismas deben escribirse de forma que indiquen si el sistema probado funciona como se esperaba. Un
banco de pruebas del software es un conjunto integrado de herramientas para soportar el proceso de pruebas.
Además de a los marcos de trabajo de pruebas que soportan la ejecución automática de las pruebas, un banco de
trabajo puede incluir herramientas para simular otras partes del sistema y generar datos de prueba de dicho
sistema.

M. en E. Georgina Varona Vargas


AUTOMATIZACIÓN DE PRUEBAS
Algunas de las herramientas que podrían incluirse en un banco de trabajo de pruebas de este tipo:
l. Gestor de pruebas.
2. Generador de datos de prueba.
3. Oráculo.
4. Comparador de ficheros.
5. Generador de informes.
6. Analizador dinámico.
7. Simulador.

M. en E. Georgina Varona Vargas


TESTING ÁGIL
Testing Ágil o Agile Testing es una práctica de pruebas de software que sigue los principios del desarrollo ágil de
software.
Involucra a todos los miembros de un equipo ágil multifuncional, en el cual el rol del tester es el de un experto
multifuncional, que garantice se entregue el valor de negocio deseado por el cliente a un ritmo sostenible y
continuo.
Las metodologías ágiles no ven al software testing como una fase separada, sino como parte integral del
Desarrollo de software al igual que la programación.
Agile Testing, incorpora una serie prácticas, como por ejemplo Testing de “todo el equipo”, Testing independiente
(opcional), Integración continua, Testing guiado por pruebas (Test Driven Development – TDD), Desarrollo guiado
por comportamiento (Behaviour Driven Development – BDD), Desarrollo guiado por pruebas de aceptación
(Acceptance Test Driven Development – ATDD), entre otros.
Los equipos ágiles utilizan un enfoque de “todo el equipo” al testing, con la finalidad de integrar la calidad al
desarrollo del producto, al contrario de un enfoque de primero fabricar el producto y luego inspeccionar para
determinar su nivel de calidad.
M. en E. Georgina Varona Vargas
TESTING ÁGIL
Principios del Agile Testing
De forma similar a que el Manifiesto Ágil contiene principios que se aplican al desarrollo ágil de software, el Agile Testing
engloba los siguientes principios:
 El Testing no es una fase: El testing continuo es la única forma de garantizar avance continuo, por esto, el testing se
realiza continuamente junto con el desarrollo de software y demás actividades.
 El Testing hace avanzar el proyecto: Bajo métodos convencionales, el testing es una alcabala, en cambio en Agile
Testing se proporciona retroalimentación continua, permitiendo corregir el rumbo continuamente durante el
desarrollo de software.
 Todo el equipo realiza pruebas: en Agile Testing, los Analistas de negocio y Desarrolladores de software también
ejecutan pruebas, no sólo los testers como en métodos convencionales.

M. en E. Georgina Varona Vargas


TESTING ÁGIL
Principios del Agile Testing
De forma similar a que el Manifiesto Ágil contiene principios que se aplican al desarrollo ágil de software, el Agile Testing
engloba los siguientes principios:
 Código limpio: Los defectos en el código se corrigen en la misma iteración, por lo que se mantiene el código limpio.
 Reducir la documentación de pruebas: Los Agile Testers usan listas de chequeo reusables en lugar de
documentación extensa, se enfocan en la esencia de la prueba en lugar de detalles. Siguiendo principios ágiles estas
listas de chequeo son el inicio de las definiciones de las pruebas y no el final, y el tester cuenta con libertad para
aportar valor.
 Guiado por pruebas: El Agile Testing, las pruebas se hacen “durante” el desarrollo y no después del desarrollo como
en métodos convencionales.

M. en E. Georgina Varona Vargas


INSPECCIONES
Las inspecciones son revisiones de subproductos del proceso que se efectúan durante todo el ciclo de desarrollo
del software; el objetivo de esta práctica es encontrar defectos en los productos sin examinar porque surgieron ni
como se remueven.
Los productos inspeccionados son componentes pequeños que conforman una unidad funcional; los productos
típicos son:
 Especificación de requerimientos
 Documentos de diseño
 Listado de código
 Planes de testing
 Especificaciones de hardware

El proceso de inspección fue desarrollado en IBM por Michael Fangan en el comienzo de la década de los 70’s
existen otras variaciones a este proceso cómo el IEEE estándar para auditorias y revisiones de software.

M. en E. Georgina Varona Vargas


REFERENCIAS BIBLIOGRAFICAS
- Boehm, V. (2008). “Making a Difference in the Software Century” IEEE Computer, vol 41, núm 3, marzo 2008. pp32-38

- Laudon, K & Laudon, J. (2012). Sistemas de Información Gerencial. Decimo Segunda Edición. México: Editorial Pearson –Prentice
Hall

- Pressman, R. (2010). Ingeniería de Software, un enfoque práctico, 7Ma. ed., México. McGraw-Hill.

- Prieto, A. & Martínez, Ma. (2004). Sistemas de información en las organizaciones: Una alternativa para mejorar la productividad
gerencial en las pequeñas y medianas empresas. Revista de Ciencias Sociales (Ve), mayo-noviembre, 322-337

- SENATI (2016). Manual de Desarrollo de Software para la materia Ingeniería de Software publicado en 07 de marzo del 2016 por
el SENATI.

- Senn A. James(1992). Sistemas de Información para la Administración, Segunda Edición. México Grupo Editorial Iberoamérica

- Sommerville, I. (2005). Ingeniería del software, 7a. ed., Madrid, Pearson Adidson Wesley.

M. en E. Georgina Varona Vargas

También podría gustarte