Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
2
La Industria de Pruebas de Software ha venido evolucionando rápidamente en
estos últimos años tanto en madurez de negocio, como en profesionalismo y
metodología
Esta madurez ha llevado a la industria de pruebas a ser eficaz pero ahora el reto
se presenta en el tema de la eficiencia, dado el aumento de la complejidad y de las
necesidades de rapidez en la producción de aplicativos de software. Es por eso que el
tema de automatización de pruebas viene tomando fuerza en las empresas que tienen
un proceso de pruebas formalmente implementado.
Las pruebas automatizadas son efectivas en entornos donde los cambios son
frecuentes o en aplicaciones en las que se esperan builds y releases críticos.
3
En la cadena de valor del desarrollo de un software específico, el proceso de
prueba es clave a la hora de detectar errores o fallas. Conceptos como estabilidad,
escalabilidad, eficiencia y seguridad se relacionan a la calidad de un producto bien
desarrollado. Las aplicaciones de software han crecido en complejidad y tamaño, y por
consiguiente también en costos. Hoy en día es crucial verificar y evaluar la calidad de lo
construido de modo de minimizar el costo de su reparación. Mientras antes se detecte
una falla, más barata es su corrección.
4
el desarrollo de productos de calidad. Las empresas son capaces de ejecutar varias de
estas pruebas con menos recursos en menor tiempo. En efecto, la reducción de los
recursos utilizados daría lugar a un costo reducido, que es muy beneficioso para
cualquier negocio. Así, utilizando este tipo de pruebas se ha convertido en una medida
prudente por empresas dedicadas al desarrollo de software.
5
Objetivo, problemas que resuelve:
6
aceptación desde el momento mismo de tener los requisitos, que sería comprobado al
finalizar el proyecto.
Si tras la fase de requisitos viniese una segunda de diseño a alto nivel del
sistema, también podría prepararse un Plan de pruebas de integración, que sería
comprobado tras tener codificados los diferentes módulos del sistema.
Esta correspondencia entre fases del desarrollo y tipos de pruebas produce el
llamado “modelo en V”.
7
Método de pruebas de sistemas
8
Tipos de prueba:
• En función de qué conocemos:
o Pruebas de caja negra: no conocemos la implementación del código, sólo la
interfaz. Tan sólo podemos probar dando distintos valores a las entradas y
salidas.
9
o Pruebas de caja blanca: conocemos el código (la implementación de éste)
que se va a ejecutar y podemos definir las pruebas que cubran todos los
posibles caminos del código.
• Según el grado de automatización:
o Pruebas manuales: son las que se hacen normalmente al programar o las
que ejecuta una persona con la documentación generada durante la
codificación (P. ej.- comprobar cómo se visualiza el contenido de una página
web en dos navegadores diferentes).
o Pruebas automáticas: se usa un determinado software para sistematizar las
pruebas y obtener los resultados de las mismas (P. ej.- verificar un método de
ordenación).
• En función de qué se prueba:
o Pruebas unitarias: se aplican a un componente del software. Podemos
considerar como componente (elemento indivisible) a una función, una clase,
una librería, etc. En nuestro caso, generalmente hablaremos de una clase
como componente de software.
o Pruebas de integración: consiste en construir el sistema a partir de los
distintos componentes y probarlo con todos integrados. Estas pruebas deven
realizarse progresivamente.
o Pruebas de regresión: son aquellas pruebas cuyo objetivo es comprobar por
qué ha dejado de funcionar algo que ya funcionaba. El objetivo de las
pruebas de regresión es no tener que “volver atrás”.
o Pruebas funcionales: sobre el sistema funcionando se comprueba que
cumple con la especificación (normalmente a través de los casos de uso).
o Pruebas de rendimiento o stress: los tres primeros tipos de pruebas de los
que ya se ha hablado comprueban la eficacia del sistema. Las pruebas de
rendimiento se basan en comprobar que el sistema puede soportar el
volumen de carga definido en la especificación, es decir, hay que comprobar
la eficiencia (P. ej.- Se ha montado una página web sobre un servidor y hay
que probar qué capacidad tiene estado de aceptar peticiones).
10
o Pruebas de Seguridad: se determinan los niveles de permiso de usuarios,
las operaciones de acceso al sistema y acceso a datos.
o Pruebas de Usabilidad: se determina la calidad de la experiencia de un
usuario en la forma en la que éste interactúa con el sistema, se considera la
facilidad de uso y el grado de satisfacción del usuario.
o Pruebas de Validación: Son las pruebas realizadas sobre un software
completamente integrado para evaluar el cumplimiento con los requisitos
especificados.
o Pruebas de aceptación: son las únicas pruebas que son realizadas por los
usuarios, todas las anteriores las lleva a cabo el equipo de desarrollo.
Podemos distinguir entre dos pruebas:
Pruebas alfa: las realiza el usuario en presencia de personal de
desarrollo del proyecto haciendo uso de una máquina preparada para
tal fin.
Pruebas beta: las realiza el usuario después de que el equipo de
desarrollo les entregue una versión casi definitiva del producto.
11
Herramientas y/o framework para automatizar pruebas por capas:
12
Parasoft SOAtest: Web Orientación Legal herramienta de prueba de
servicios de Parasoft. Creación automática de pruebas de WSDL, WSIL, UDDI y
tráfico HTTP. Las capacidades incluyen la validación WSDL, carga y pruebas de
rendimiento; modelo de gráfica y prueba de escenarios complejos. Crea
automáticamente pruebas de seguridad de penetración de las inyecciones SQL,
inyecciones de XPath, fuzzing parámetro, bombas de XML, y entidades externas.
prueba por datos a través de fuentes de datos tales como Excel, CSV, consultas
DB, etc Apoyo a JMS, soporte MIME archivo adjunto
Abad Java GUI Test Marco: Marco de realizar el ensayo por Timothy pared
proporciona una generación automática de eventos y la validación de componentes GUI
de Java, mejorando las funciones más básicas que proporciona la clase java.awt.Robot.
(Abad = "A Better 'Bot'). El marco puede ser invocada directamente desde el código
Java o accede sin necesidad de programación mediante el uso de secuencias de
comandos a través de" Costello ", un editor de scripts / grabador. Adecuado tanto para
uso por desarrolladores para pruebas unitarias y garantía de calidad para pruebas
funcionales. gratuito - bajo la GNU Licencia Pública General.
13
pruebas de regresión escrito por Erich Gamma y Kent Beck. Para su uso por los
desarrolladores de la aplicación de las pruebas unitarias en Java. Libre Open Source
Software liberado bajo la Licencia Pública de IBM y alojado en SourceForge. El sitio
incluye una gran colección de extensiones y la documentación.
Nunit:
Framework de pruebas unitarias para la plataforma .NET. Es una herramienta de
código abierto.También está basado en xUnit. Dispone de diversas expansiones como
Nunit.Forms o Nunit.ASP.
Httpunit:
Pruebas de capa de presentación. Escrito en Java. Emula en forma simplificada
un Java web sever. Sitio: http://httpunit.sourceforge.net/doc/servletunit-intro.html
14
AB para inspeccionar, invocando, desarrollo, simulación / burla y funcional / carga /
pruebas de conformidad de los servicios web a través de HTTP. Está dirigido,
principalmente a los desarrolladores / probadores de mediación y / o consumo de
servicios Web (Java, Net, etc). Simulacro de servicios Web se pueden crear para
cualquier WSDL y alojado dentro de soapUI o utilizando el corredor MockService de
línea de comandos. IDE-plugins disponibles para Eclipse, IntelliJ IDEA, NetBeans y una
especializada eclipse-plugin para JBossWS. versión profesional "pagado" disponibles
con apoyo profesional y la funcionalidad extendida.
15
de automatización como un proyecto de desarrollo, es uno de los errores más graves
que se comete al encarar una implementación de este estilo; debido a que una mala
arquitectura en el desarrollo del marco de pruebas, no permitirá el éxito del proyecto.
16
• El Recurso Humano: se ha de contar con un excelente equipo de Ingenieros de
prueba, a fin que garanticen la exactitud de los resultados arrojados por el
software de automatización de pruebas. Habilidades del equipo de pruebas.
17
• Sobrepasar la confianza inicial y los supuestos que tenemos sobre el producto:
profundizar el análisis para obtener información que no teníamos.
• Si el ciclo es iterativo realizar la prueba en todas las iteraciones (si no la
ejecución, el diseño de la prueba)
• Tratar el diseño de la prueba como una actividad preventiva.
• Pensar en el volumen de los artefactos de prueba (cientos o miles de casos y
defectos) para elegir herramientas adecuadas.
• No intentar automatizar toda la prueba.
18
Conclusión
19
Referencias Bibliográficas
20