¿Qué es
prueba de software?
- La prueba (testing) es el proceso de ejecutar un programa
con la intención de encontrar fallos [Glenford J. Myers]
- Deben realizar pruebas de todos los artefactos generados
durante la construcción de un producto software, lo que incluye en las especificaciones
de requisitos, casos de usos diagramas de diversos tipos y por supuesto el código
fuente y el resto que forma parte de la aplicación
- Un buen caso de prueba es el que tiene alta probabilidad de
detectar un nuevo error Un caso de prueba con éxito es
el que detecta un error nuevo.
objetivos:
objetivos de las pruebas
Encontrar defectos en el software
Una prueba tiene éxito si descubre un defecto
Una prueba fracasa si hay defectos pero no los descubre
Pruebas de Verificación
Ver si cumple las especificaciones de diseño
Pruebas de Validación
Ver si cumple los requisitos del análisis
Pruebas del Software
1. Demostrar al desarrollador y al cliente que el software satisface sus requerimientos.
Para el software a medida, significa que debe haber al menos una prueba para cada requerimiento del sistema y del usuario.
Para software genérico, significa que debe haber pruebas para todas las características del sistema que se incorporarán en la entrega del producto.
Este objetivo conduce a las pruebas de validación => se espera que el sistema funcione correctamente usando un conjunto determinado de casos de prueba que refleja el uso esperando aquel.
2.Descubrir defectos en el software: que su comportamiento es incorrecto, no deseable o no cumple su especificación.
La prueba de defectos está relacionada con la eliminación de todos los comportamientos no deseables.
Ej: caídas del sistema, interacciones no permitidas con otros sistemas, cálculos incorrectos y corrupción de datos.
Este objetivo conduce a la prueba de defectos, cuando los casos de prueba se diseñan para exponer los defectos.
Modelo del Proceso de Pruebas de software
Concepto y terminología
Pruebas en que se conoce el código a probar
Caja blanca (clear box: caja clara o transparente)
Se procura ejercitar cada elemento del código
Algunas clases de pruebas
Pruebas de cubrimiento
Pruebas de condiciones
Pruebas de bucles
Pruebas de cubrimiento
Ejecutar al menos una vez cada sentencia
Se necesitan varios casos de prueba
Determinar posibles “caminos” independientes
Cada condición debe cumplirse en un caso y en otro no. En general, se necesitan tantos casos como condiciones, más uno (número ciclomático)
Puede ser imposible cubrir el 100%
Código que nunca se ejecuta: condiciones imposibles
Ejemplo: detección y notificación de errores internos en un código sin errores
Pruebas de condiciones
Cumplir o no cada parte de cada condición
Se necesitan varios casos de prueba
Determinar expresiones simples en las condiciones
Una por cada operando lógico o comparación
Cada expresión simple debe cumplirse en un caso y en otro no, siendo decisiva en el resultado
Puede ser imposible cubrir el 100%
Expresiones simples no independientes
Pruebas de bucles
Conseguir números de repeticiones especiales
Bucles simples
Repetir cero, una y dos veces
Repetir un número medio (típico) de veces
Repetir el máximo-1, máximo y ¡máximo +1!
Bucles anidados
Repetir un número medio (típico) los bucles internos, el mínimo los externos, y variar las repeticiones del bucle intermedio ensayado.
Ensayarlo con cada nivel de anidamiento
¿Qué software
existen para crear pruebas de software?
|
Selenium.
|
Esta compuesto por dos herramientas: Selenium IDE y
SeleniumWebDriver.
La primera, un plugin de
Firefox que te genera un entorno de desarrollo y que permite crear casos de
prueba para aplicaciones web.
La segunda, Selenium
WebDriver, ejecuta las pruebas. Este entorno de automatización de pruebas
automáticas opera en los principales navegadores (IE, Mozilla, Chrome y
Opera). Además, permite pruebas para dispositivos móviles, para iPhone y
Android. Utiliza los siguientes lenguajes: Python, Ruby, Java y C#. La licencia
es “Apache 2.0 License”.
|
|
|
JMeter.
|
Aplicación de escritorio en Java y dentro del proyecto Jakarta. Esta
herramienta permite realizar pruebas funcionales (y de rendimiento) para
aplicaciones web. Trabaja con los siguientes protocolos: HTTP, HTTPS, SOAP,
JDBC, LDAP, JMS, Mail – POP3(S) and IMAP(S). La licencia es “Apache 2.0
License”.
|
|
|
Testlink
|
Permite crear y gestionar casos de prueba, organizarlos en planes de
pruebas, realizar un seguimiento de los resultados, establecer trazabilidad
con los requisitos, generar informes etc. Se integra con otros sistemas de
seguimiento de “bugs” y “ticketing” como Bugzilla, Mantis, etc. Licencia:
GPL.
Seguro que hay muchas más herramientas para pruebas
software, también muchas comerciales (muy buenas, por cierto), pero, en mi
opinión, estas son las que más te puedes encontrar hoy en proyectos.
|
|






xD jajajaja usted sappeee 7-7
ResponderEliminarjajja XD
ResponderEliminar