Está en la página 1de 33

Testing

¿Qué es el Testing?

Las pruebas de software son técnicas cuyo objetivo es proporcionar información objetiva e
independiente sobre la calidad del producto. Son una actividad más en el proceso del control
de calidad.

El testing es una actividad desarrollada para evaluar la calidad del producto, y para mejorarlo
al identificar defectos y problemas.

El testing de software consiste en la verificación dinámica del comportamiento de un


programa sobre un conjunto finito de casos de prueba, apropiadamente seleccionados a
partir del dominio de ejecución que usualmente es infinito, en relación con el comporta
miento esperado.

El programa se prueba ejecutando solo unos pocos casos de prueba dado que por lo general
es física, económica o técnicamente imposible ejecutarlo para todos los valores de entrada
posibles de aquí la frase de Dijkstra. “Si uno de los casos de prueba detecta un error el
programa es incorrecto, pero si ninguno de los casos de prueba seleccionados encuentra un
error no podemos decir que el programa es correcto”.
Lic. Estela Cremieux 1
Testing
¿Qué es el Testing?

Testear un programa significa ejecutarlo bajo condiciones controladas que permitan obsevar
su salida o resultados.

El testing se estructura en casos de prueba o casos de test, estos casos se agrupan en


conjuntos de prueba.

De acuerdo a la definición de corrección, un programa es correcto si verifica su especificación

Entonces al considerarse el testing como técnica de verificación, un programa es correcto si


ninguno de los casos de prueba seleccionados detecta un error.

Precisamente la presencia de un error o defecto no satisface la especificación.

Una falla es síntoma manifiesto de la presencia de un error.

Es decir que un error permanecerá oculto hasta que ocurra una falla causada por él
Lic. Estela Cremieux 2
Testing
El proceso de testing
Es casi imposible, excepto para programas mas pequeños, testear un software como si
fuese una única entidad monolítica. Los grandes sistemas de software están compuestos
de subsistemas, módulos y subrutinas. Se sugiere, por lo tanto, que el proceso de testing
esté guiado por dicha estructura. Mas aún, si el proceso sugerido se combina
adecuadamente con el proceso de desarrollo entonces se habilita la posibilidad de ir
detectando errores de implementación lo mas tempranamente posible, lo que a su vez
reduce el costo del desarrollo

Lic. Estela Cremieux 3


Testing
El proceso de testing

Un sistema complejo debe testearse en varias etapas que, por lo general, se ejecutan
siguiendo una estrategia botton-up aunque el proceso general sea iterativo.

Se debe volver a las fases anteriores cada vez que se encuentra un error en la fase que está
siendo ejecutada. Por ejemplo, si se encuentra un error durante el testing de un
subsistema en particular, una vez que aquel haya sido reparado, se debería testear la
unidad donde estaba el error y luego el módulo al cual pertenece la unidad reparada.

En general una vez detectado el error se sigue el proceso graficado

Lic. Estela Cremieux 4


Testing
El proceso de testing

En la práctica industrial se entiende que el proceso de testing se realiza una vez que los
programadores han terminado de codificar, en general es sinónimo de testing de
aceptación. Entendido de esta forma el testing se convierte en una actividad costosa e
ineficiente desde varios puntos de vista:

• Los tester estarían osciosos durante la mayor parte del proyecto y estarían
sobrecargados de trabajo cuando este esté por finalizar
• Los errores tienden a ser detectados muy tarde
• Se descubre un gran número de errores cuando el presupuesto se está terminando
• Los errores tienden a ser detectados por los usuarios y no por el personal de desarrollo,
lo que implica un desprestigio para el equipo de desarrollo

Por lo tanto se sugiere un testing mejor integrado con el proceso de desarrollo. La llave
para habilitar estos procesos radica en contar con la posibilidad de automatizar el testing
de unidad de alguna forma tal que los tester puedan comenzar a calcular los casos de
prueba desde las fases iniciales del proyecto

Lic. Estela Cremieux 5


Testing
El proceso de testing

En cuanto el equipo de desarrollo cuente con un documento de requerimientos mas o


menos estable, los tester pueden comenzar a definir casos de prueba para el testing de
aceptación, dado que este se basa en validar los requerimientos. De la misma forma tan
pronto se haya definido la arquitectura o el diseño del sistema, los tester pueden utilizar
esa documentación para calcular casos de prueba para el testing de subsistemas y del
sistema. Incluso teniendo un diseño mas o menos detallado descripto en la
documentación y una especificación de cada unidad, es perfectamente posible calcular
casos de prueba de unidad, mientras los programadores hacen su trabajo. De esta forma
se reduce notablemente el impacto de algunos de los problemas enunciados
anteriormente Lic. Estela Cremieux 6
Testing
El proceso de testing
El testing en los distintos aspectos del software

Definimos que un software es correcto si verifica su especificación, pero “que describe la


especificación de un software?”, se ha hecho una mayor referencia a su funcionalidad, es
decir, a las operaciones que el software debe realizar, el orden en que debe realizarlas, etc.

Pero la especificación del software incluye otros aspectos (o requerimientos no


funcionales), por ejemplo requisitos de seguridad, desempeño, tolerancia a fallas,
usabilidad, entre otras. En consecuencia al testear un software se deben seleccionar
casos de prueba con el objetivo de testear todos estos aspectos, es decir además de
responder la pregunta “El sistema solo permite cargar una transacción en las condiciones
especificadas?”, sino también otras como “El sistema permite cargar hasta 10.000
transacciones por minuto?” o “El sistema permite que solo los usuarios autorizados
carguen determinadas transacciones?!”

El testing de alguno de estos aspectos no funcionales se ha especializado dando lugar a


áreas mas específicas con sus propias metodologías técnicas y herramientas. El caso mas
notorio es el de seguridad informática, este se ha especializado tanto que estos tester son
profesionales con una preparación muy específica para realizar esta tarea
Lic. Estela Cremieux 7
Testing
Testing de validacion:
Probar que el sistema puede manejar un número representativo de transacciones de negocios.

Lic. Estela Cremieux 8


Testing
Verificación & validación de software
•Validación: Estamos construyendo el producto correcto?

•Verificación: Estamos construyendo correctamente el producto?

¿Cuándo debemos realizar V&V?


Durante todas las etapas del desarrollo del software !!!!

Etapas donde hacemos V&V

Lic. Estela Cremieux 9


Testing
Por que realizar el testing en todas las etapas?
El costo de arreglar errores crece exponencialmente en las etapas del delivery

El testing conducido en diferentes etapas permite la detección temprana de errores.

Todas las etapas de testing ocurren en cada iteración/fase de la metodología de desarrollo.

Lic. Estela Cremieux 10


Testing
El proceso de testing

Ejercicios

1. Que es el testing?

2. Cual es una de las principales herramientas de testing?

3. Que tipos de testing conoce?

4. En que etapas del desarrollo de un software interviene el testing y por que?

5. Describa un proceso básico de testing

6. Que aspectos incluye la especificación de un software?

7. Que es el testing de validación?

8. Cuando hay que utilizar testing de V & V?


Lic. Estela Cremieux 11
Testing
El proceso de testing
Analisis De Requerimientos
La comprensión del propósito y la función del sistema comienza con un atento examen de
los requerimientos.
Cuando el Cliente solicita que se desarrolle un sistema tiene algunas nociones de lo que
debe hacer. Por está razón cada sistema basado en software tiene un propósito,
usualmente expresado con algo que el sistema debe hacer.

Un Requerimiento “es una característica del sistema o una descripción de algo que el
sistema es capaz de hacer con el objeto de satisfacer el propósito del sistema”
Es decir, los requerimientos son lo que los clientes/usuarios esperan que haga el sistema.
Los analistas, por lo tanto, deben entender el problema de los usuarios en SU cultura y con
SU lenguaje y construir el sistema que resuelve sus necesidades. En si el objetivo del
análisis de requerimientos es resolver el problema.

Requerimientos vs Diseño Los requerimientos definen el Qué (el problema) del sistema. El
Diseño define el Cómo (la solución). Durante el análisis de requerimientos no se
consideran descripciones especificas de la implementación como requerimientos, a menos
que el cliente lo pida (Ej.: bases de datos especificas, lenguajes de programación, etc.). Los
requerimientos, por lo tanto deben centrarse
Lic. Estela en el cliente/usuario y el problema.
Cremieux 12
Testing
El proceso de testing
Analisis De Requerimientos
Definición de requerimientos : debe escribirse en
términos que el cliente pueda entender. Es decir, este
documento es un listado completo de todas las cosas que
el cliente espera que haga el sistema propuesto. Es
escrito en forma conjunta por el cliente y el desarrollador
Documentos de Requerimientos
Especificación de requerimientos: Documento que
reitera la definición de los requerimientos en los
términos técnicos apropiados para el desarrollador. Es la
contrapartida técnica al documento de definición de
requerimientos y es escrito por los analistas de sistemas

Es muy importante, que al usar ambos documentos exista un correspondencia directa


entre cada requerimiento del documento de definición y aquellos documentos en la
especificación. Esto para que la visión del cliente este unida a la de los desarrolladores

Lic. Estela Cremieux 13


Testing
El proceso de testing

Analisis De Requerimientos

Funcionales

Según el Tipo No funcionales

Dominio

Clasificación de Requerimientos

De usuario
Según a quien van
dirigidos
Del Sistema

Lic. Estela Cremieux 14


Testing
El proceso de testing
Analisis De Requerimientos

Según el Tipo

Requerimientos funcionales Describen los servicios que se espera que el sistema proveerá

Requerimientos no funcionales se refieren a la fiabilidad, la respuesta en el tiempo y la


capacidad de almacenamiento. A menudo son mas críticos que los funcionales. Mientras
que un incumplimiento de un requerimiento funcional degrada el sistema, el de un
requerimiento no funcional del sistema lo inutiliza.

Requerimientos de dominio : reflejan los fundamentos del dominio de la aplicación. Si


estos no se satisfacen es imposible que el sistema trabaje de forma satisfactoria. Estos se
expresan utilizando un lenguaje especifico del dominio de la aplicación Ej.: operación para
calcular desaceleración del tren, para un sistema de control de trenes.

Lic. Estela Cremieux 15


Testing
El proceso de testing
Analisis De Requerimientos

Según a quien van dirigidos

De usuario: Qué se espera o cuál es la expectativa hacia el sistema? Son declaraciones en


lenguaje natural y en diagramas intuitivos de los servicios que se espera que el sistema
provea y de las restricciones bajo las cuales debe operar.
Describen los requerimientos funcionales y no funcionales de tal forma que sean
comprensibles por los usuarios del sistema que no posean un conocimiento técnico.
Únicamente especifican el comportamiento externo del sistema Deben ser acotados,
verificables, conservar su objetividad al describir las expectativas hacia el sistema. Deben
ser suficientemente específicos para prueba y verificación lo cual implica evitar
ambigüedades en su descripción

De sistema: Son descripciones más detalladas de los requerimientos del usuario. Sirven
como base para definir el contrato de la especificación del sistema y por lo tanto, debe ser
una especificación completa y consistente del sistema. Son utilizados por los ingenieros de
software como el punto de partida para el diseño del sistema. La especificación de
requerimientos del sistema incluye diferentes modelos del sistema como el de objetos o el
de flujo de datos. Lic. Estela Cremieux 16
Testing
El proceso de testing
Analisis De Requerimientos
Diferencia entre requerimientos de usuario y de sistema – Ejemplo: Organizar un torneo

Lic. Estela Cremieux 17


Testing
El proceso de testing
Analisis De Requerimientos
Diferencia entre requerimientos de usuario y de sistema – Ejemplo: Organizar un torneo
Requerimientos del sistema:

Lic. Estela Cremieux 18


Testing
El proceso de testing
Analisis De Requerimientos
Diferencia entre requerimientos de usuario y de sistema – Ejemplo: Organizar un torneo
Requerimientos del sistema:

Lic. Estela Cremieux 19


Testing
El proceso de testing
Analisis De Requerimientos
Diferencia entre requerimientos de usuario y de sistema – Ejemplo: Organizar un torneo
Requerimientos del sistema:

Lic. Estela Cremieux 20


Testing
El proceso de testing
Analisis De Requerimientos

Caracteristicas de los requerimientos

Los requerimientos deben ser de alta calidad para la buena comprensión de clientes y el
equipo de desarrollo. Deben responder a las siguientes preguntas: los requerimientos son
consistentes? (Dos requerimientos son inconsistentes cuando es imposible satisfacerlos
simultáneamente.) ¿los requerimientos son completos?. (es completo si todos los estados
posibles, cambios de estado, entradas, productos, restricciones están descritos en alguno
de los requerimientos) ¿los requerimientos son realistas? .¿El sistema puede hacer
realmente lo que el cliente esta pidiendo que haga?. (Todos los requerimientos deben ser
revisados para asegurarse que son posibles) ¿describe cada requerimiento algo que es
necesario para el cliente?. (deben ser revisados para conservar sólo aquellos que inciden
directamente en la resolución del problema.) ¿los requerimientos son verificables?. ( se
debe poder preparar pruebas que demuestren que se han cumplido los requerimientos.
¿Resulta fácil encontrar el conjunto de requerimientos que coinciden a un aspecto
especifico del sistema?.

Lic. Estela Cremieux 21


Testing
El proceso de testing
Analisis De Requerimientos

Validación de los requerimientos

Proceso por el cual se determina si la especificación es consistente con las necesidades del
cliente. Incluye verificar trazabilidad entre la especificación y el documento de
requerimientos. Diseñar conjunto de pruebas para demostrar que el sistema cumple esos
requerimientos.

Los requerimientos no funcionales son difíciles de verificar. Se deben expresar de manera


cuantitativa utilizando métricas que se puedan probar de forma objetiva. Para los usuarios
es difícil especificarlos en forma cuantitativa. Tiempo de capacitación. Facilidad de uso
Número de sistemas. Probabilidad de datos corruptos después de la falla. Robustez: Tiempo
promedio entre fallas. Tamaño Transacciones por seg., rapidez. Pueden incluirse hitos de
control y cronogramas que restringen el desarrollo del sistema.

Lic. Estela Cremieux 22


Testing
El proceso de testing
Analisis De Requerimientos
Documentación
En general va a depender del
modelo de ciclo de vida utilizado

Modelo en cascada - Modelo V

Lic. Estela Cremieux 23


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 24


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 25


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 26


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 27


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 28


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 29


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 30


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 31


Testing
El proceso de testing
Analisis De Requerimientos
Documentación

Modelo en cascada - Modelo V

Lic. Estela Cremieux 32


Testing
El proceso de testing
Analisis De Requerimientos

Ejercicios

1. Que entiende por requerimiento?


2. Cual es la diferencia entre requerimiento y diseño
3. Que tipos de documentación de requerimientos conoce? Cual es la diferencia entre
ambos?
4. Como se clasifican los requerimientos? Explique brevemente que significa cada uno de
los aspectos
5. Cual es la diferencia entre un requerimiento de usuario y un requerimiento de sistema?
6. Cuales son las principales características que debe cumplir un requerimiento?
7. En que consiste la validación de requerimientos?
8. Por que es importante para el tester interpretar los requerimientos?
9. Describa alguno de los items importantes que deben figurar en la documentación de
requerimientos para los modelos en cascada y el modelo V

Lic. Estela Cremieux 33

También podría gustarte