Resumen Cap8
Resumen Cap8
Resumen Cap8
Edsger Dijkstra menciona que las pruebas pueden mostrar sólo la presencia de errores, más
no su ausencia el proceso de demostrar que existen defectos en un programa es conocido
como prueba, dicho proceso tiene dos metas distintas:
1. Demostrar al desarrollador y al cliente que el software cumple con los requerimientos
para el software personalizado. En donde se espera que el sistema se desempeñe de
manera correcta mediante un conjunto dado de casos de prueba, que refleje el uso
previsto del sistema.
Dentro de las pruebas del sistema existen ciertas características para determinar que un
software es adecuado:
1. Propósito del software: cuanto más crítico sea el software, más importante debe ser
su confiabilidad.
2. Expectativas del usuario: debido a su experiencia con software no confiable y
plagado de errores, muchos usuarios tienen pocas expectativas de la calidad del
software, por lo que no se sorprenden cuando éste falla. Al instalar un sistema, los
usuarios podrían soportar fallas, porque los beneficios del uso exceden los costos de
la recuperación de fallas.
3. Entorno del mercado: en un ambiente competitivo, una compañía de software puede
decidir lanzar al mercado un programa antes de estar plenamente probado y depurado,
pues quiere que sus productos sean los primeros en ubicarse.
Las pruebas de componentes compuestos tienen que enfocarse en mostrar que la interfaz de
componente se comporta según su especificación. Existen diferentes tipos de interfaz entre
componentes de programa y, en consecuencia, distintos tipos de error de interfaz que llegan
a ocurrir:
1. Interfaz de parámetro: Son interfaces en que los datos, o en ocasiones referencias de
función, pasan de un componente a otro.
2. Interfaz de memoria compartida: Son interfaces en que un bloque de memoria se
reparte entre componentes, los datos se colocan en la memoria de un subsistema y
otros subsistemas los recuperan de ahí.
3. Interfaces de procedimiento: Son interfaces en que un componente encapsula un
conjunto de procedimientos que pueden ser llamados por otros componentes.
4. Interfaces que pasan mensajes: Se trata de interfaces donde, al enviar un mensaje, un
componente solicita un servicio de otro componente el mensaje de retorno incluye los
resultados para ejecutar el servicio.
Las pruebas del sistema demuestran que los componentes son compatibles, que interactúan
correctamente y que transfieren los datos correctos en el momento adecuado a través de sus
interfaces, deben enfocarse en poner a prueba las interacciones entre los componentes y los
objetos que constituyen el sistema.
Evidentemente, se traslapan con las pruebas de componentes, pero existen dos importantes
diferencias:
1. los componentes reutilizables desarrollados por separado y los sistemas comerciales
pueden integrarse con componentes desarrollados recientemente. Entonces se prueba
el sistema completo.
2. Los componentes desarrollados por diferentes miembros del equipo o de grupos
pueden integrarse en esta etapa.
El desarrollo dirigido por es un enfoque al diseño de programas donde se entrelazan el
desarrollo de pruebas y el de código, el código se desarrolla incrementalmente, junto con una
prueba para ese incremento. No se avanza hacia el siguiente incremento sino hasta que el
código diseñado pasa la prueba. Algunos beneficios del desarrollo dirigido son:
1. Cobertura de código: cualquier segmento de código que escriba debe tener al menos
una prueba asociada.
2. Pruebas de regresión: es posible correr pruebas de regresión para demostrar que los
cambios al programa no introdujeron nuevos bugs
3. Depuración simplificada: es preciso comprobar y modificar el código recién escrito.
4. Documentación del sistema: leer las pruebas suele facilitar la comprensión del
código.
Las pruebas de versión son el proceso de poner a prueba una versión particular de un sistema
que se pretende usar fuera del equipo de desarrollo, deben enfocarse en el descubrimiento de
bugs en el sistema (pruebas de defecto). Existen dos distinciones importantes entre las
pruebas de versión y las pruebas del sistema durante el proceso de desarrollo:
1. Un equipo independiente que no intervino en el desarrollo del sistema debe ser el
responsable de las pruebas de versión.
2. El objetivo de las pruebas de versión es comprobar que el sistema cumpla con los
requerimientos y sea suficientemente bueno para uso externo (pruebas de validación).
Las pruebas basadas en requerimientos son un enfoque sistemático al diseño de casos de
prueba, donde se considera cada requerimiento y se deriva un conjunto de pruebas para éste.
Las pruebas basadas en requerimientos son pruebas de validación más que de defecto: se
intenta demostrar que el sistema implementó adecuadamente sus requerimientos.
Las pruebas de escenario son un enfoque a las pruebas de versión donde se crean escenarios
típicos de uso y se les utiliza en el desarrollo de casos de prueba para el sistema. Un escenario
es una historia que describe una forma en que puede usarse el sistema.
Las pruebas de rendimiento deben diseñarse para garantizar que el sistema procese su carga
pretendida, esto implica efectuar una serie de pruebas donde se aumenta la carga, hasta que
el rendimiento del sistema se vuelve inaceptable, se preocupan tanto por demostrar que el
sistema cumple con sus requerimientos, como por descubrir problemas y defectos en el
sistema.
Las pruebas de usuario son una etapa en el proceso de pruebas donde los usuarios o clientes
proporcionan entrada y asesoría sobre las pruebas del sistema son esenciales, aun cuando se
hayan realizado pruebas abarcadoras de sistema y de versión. En la práctica, hay tres
diferentes tipos de pruebas de usuario:
1. Pruebas alfa: donde los usuarios del software trabajan con el equipo de diseño para
probar el software en el sitio del desarrollador.
2. Pruebas beta: donde una versión del software se pone a disposición de los usuarios,
para permitirles experimentar y descubrir problemas que encuentran con los
desarrolladores del sistema.
3. Pruebas de aceptación: donde los clientes prueban un sistema para decidir si está o
no listo para ser aceptado por los desarrolladores del sistema y desplegado en el
entorno del cliente.
CUESTIONARIO
CONCLUSIONES
Las pruebas intentan demostrar que un programa hace lo que se intenta que haga, así
como descubrir defectos en el programa antes de usarlo. Al probar el software, se
ejecuta un programa con datos artificiales.
Los procesos de verificación y validación buscan comprobar que el software por
desarrollar cumpla con sus especificaciones, y brinde la funcionalidad deseada por
las personas que pagan por el software.
La meta de la validación es garantizar que el software cumpla con las expectativas
del cliente.
Las inspecciones no sustituyen las pruebas del software, ya que no son eficaces para
descubrir defectos que surjan por interacciones inesperadas entre diferentes partes de
un programa, problemas de temporización o dificultades con el rendimiento del
sistema.
El desarrollo dirigido por pruebas se usa más en el diseño de software nuevo, donde
la funcionalidad se implementa en código nuevo o usa librerías estándar
perfectamente probadas.
La principal meta del proceso de pruebas de versión es convencer al proveedor del
sistema de que éste es suficientemente apto para su uso.