Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿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 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.
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
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 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
Ejercicios
1. Que es el testing?
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
Analisis De Requerimientos
Funcionales
Dominio
Clasificación de Requerimientos
De usuario
Según a quien van
dirigidos
Del Sistema
Según el Tipo
Requerimientos funcionales Describen los servicios que se espera que el sistema proveerá
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
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?.
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.
Ejercicios