0% encontró este documento útil (0 votos)
193 vistas19 páginas

Pruebas de Software

Este documento describe las pruebas de software, sus objetivos, tipos y herramientas. Explica que las pruebas de software son un proceso crítico para garantizar el correcto funcionamiento del software mediante la detección de defectos, verificación de requisitos e integración de componentes. También cubre los principios, etapas y tipos de pruebas, incluidas las pruebas funcionales y no funcionales. Finalmente, presenta algunas herramientas comunes para realizar pruebas de software.

Cargado por

Moises Valdez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
193 vistas19 páginas

Pruebas de Software

Este documento describe las pruebas de software, sus objetivos, tipos y herramientas. Explica que las pruebas de software son un proceso crítico para garantizar el correcto funcionamiento del software mediante la detección de defectos, verificación de requisitos e integración de componentes. También cubre los principios, etapas y tipos de pruebas, incluidas las pruebas funcionales y no funcionales. Finalmente, presenta algunas herramientas comunes para realizar pruebas de software.

Cargado por

Moises Valdez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1

2018

Pruebas de Software
Ingieneria Software II
Una Vista a la calidad del software y sus componentes.

1
3/16/2018
Tabla de Contenido:

Introducción: ................................................................................................................................................. 3
1.0 Que es? ............................................................................................................................................. 4
2.0 Objetivos ................................................................................................................................................. 6
3.0 Automatizacion ....................................................................................................................................... 6
4.0 Ventas y Desventajas ........................................................................................................................ 7
1.0 Rápido ........................................................................................................................................... 7
2.0 Fiabilidad ....................................................................................................................................... 7
3.0 Completo....................................................................................................................................... 8
4.0 Reusabilidad .................................................................................................................................. 8
5.0 Programable.................................................................................................................................. 8
1.0 ¡No es fácil! ................................................................................................................................... 8
2.0 Errores de secuencia de comandos de automatización ............................................................... 8
3.0 Cambios de alcance....................................................................................................................... 9
4.0 Complejidad .................................................................................................................................. 9
4.0 Principios de las pruebas de software. ................................................................................................... 9
5.0 Etapas involucradas en las pruebas de software. ................................................................................. 10
6.0 Validacion y Verificacion ................................................................................................................. 10
7.0 Tipos de pruebas ............................................................................................................................. 12
Pruebas funcionales ................................................................................................................................ 12
Pruebas no funcionales ........................................................................................................................... 13
Herramientas para realizar pruebas de software ....................................................................................... 14
Conclusion: .................................................................................................................................................. 18
Bibliografia: ................................................................................................................................................. 19

2
Introducción:

En la actualidad los dispositivos tecnológicos eléctricos y/o electrónicos, en especial las computadoras se
utilizan en un gran número de actividades para la vida del ser humano, y en algunas áreas es un factor
crítico, como ejemplo se pueden mencionar casos como las transacciones electrónicas, negocios de la
bolsa de valores, telemedicina, transporte aéreo, estos casos son solo algunos de los muchos en los cuales,
el adecuado funcionamiento del software es vital, hay casos muy sonados en los cuales por un “software
defectuoso o en mal estado” se ha impactado directamente al ser humano.

Las pruebas de software son vitales para el buen funcionamiento del software cuando este en produccion.
Una mala administracion de las pruebas puede influir en perdidas reales de costo, tiempo , beneficio
directo para la empresa o entidad en la cual se encuentran estos fallos.

Por eso apostamos a que se tenga un buen proceso de calidad de software en el cual se conduzcan las
pruebas necesarias para lograr una buena calidad del software en si.

3
1.0 Que es?

Las pruebas de software consisten en la dinámica de la verificación del comportamiento de un programa


en un conjunto finito de casos de prueba, debidamente seleccionados de por lo general infinitas
ejecuciones de dominio, contra la del comportamiento esperado. Son una serie de actividades que se
realizan con el propósito de encontrar los posibles fallos de implementación, calidad o usabilidad de un
programa u ordenador; probando el comportamiento del mismo.

También se puede establecer como el proceso de validación y verificación de un programa de software o


aplicación o producto:

 Cumple con los requisitos comerciales y técnicos que guiaron su diseño y desarrollo
 Funciona como se esperaba
 Se puede implementar con la misma característica.

La definición de prueba de software se pueden divider en las siguientes partes:

1) Proceso: las pruebas son un proceso en lugar de una sola actividad.

2) Todas las actividades del ciclo de vida: las pruebas son un proceso que se lleva a cabo a lo largo del
ciclo de vida de desarrollo de software (SDLC).

El proceso de diseño de pruebas al principio del ciclo de vida puede ayudar a evitar que se introduzcan
defectos en el código. A veces se conoce como "verificar la base de prueba a través del diseño de la
prueba".

La base de prueba incluye documentos tales como los requisitos y las especificaciones de diseño.

3) Prueba estática: puede probar y encontrar defectos sin ejecutar el código. La prueba estática se realiza
durante el proceso de verificación. Esta prueba incluye la revisión de los documentos (incluido el código
fuente) y el análisis estático. Esta es una forma de prueba útil y rentable. Por ejemplo: revisión, recorrido,
inspección, etc.

4
4) Prueba dinámica: en las pruebas dinámicas, el código del software se ejecuta para demostrar el
resultado de las pruebas en ejecución. Se hace durante el proceso de validación. Por ejemplo: pruebas
unitarias, pruebas de integración, pruebas de sistema, etc.

5) Planificación: necesitamos planear como lo que queremos hacer. Controlamos las actividades de
prueba, informamos sobre el progreso de las pruebas y el estado del software bajo prueba.

6) Preparación: tenemos que elegir qué pruebas haremos, seleccionando condiciones de prueba y
diseñando casos de prueba.

7) Evaluación: durante la evaluación, debemos verificar los resultados y evaluar el software bajo prueba
y los criterios de finalización, lo que nos ayuda a decidir si hemos terminado las pruebas y si el producto
de software ha superado las pruebas.

8) Productos de software y productos de trabajo relacionados: junto con la prueba de código, la prueba
de requisitos y especificaciones de diseño y también los documentos relacionados como la operación, el
usuario y el material de capacitación son igualmente importantes.

5
2.0 Objetivos

La prueba de software es un elemento crítico para la garantía del correcto funcionamiento del software.
Entre sus objetivos están:

1. Detectar defectos en el software.

2. Verificar la integración adecuada de los componentes.

3. Verificar que todos los requisitos se han implementado correctamente.

4. Identificar y asegurar que los defectos encontrados se han corregido antes de entregar el software
al cliente.

5. Diseñar casos de prueba que sistemáticamente saquen a la luz diferentes clases de errores,
haciéndolo con la menor cantidad de tiempo y esfuerzo.

Para lograr los objetivos propuestos, un ingeniero de software deberá conocer los principios básicos que
guían las pruebas del software.

Las pruebas de software garantizan que las pruebas se realicen correctamente y, por lo tanto, el sistema
está listo para su uso. Una buena cobertura significa que las pruebas se han realizado para cubrir las
diversas áreas, como la funcionalidad de la aplicación, la compatibilidad de la aplicación con el sistema
operativo, hardware y diferentes tipos de navegadores, pruebas de rendimiento para probar el
rendimiento de la aplicación y pruebas de carga para asegurarse que el sistema es confiable y no debe
bloquearse o no debe haber problemas de bloqueo. También determina que la aplicación se puede
implementar fácilmente en la máquina y sin ninguna resistencia. Por lo tanto, la aplicación es fácil de
instalar, aprender y usar.

Las pruebas de software ayudan a finalizar la aplicación de software o el producto en función de los
requisitos comerciales y de usuario. Es muy importante tener una buena cobertura de prueba para probar
la aplicación de software por completo y asegurarse de que está funcionando bien y según las
especificaciones.

3.0 Automatizacion

Las pruebas automatizadas de software son un proceso en el cual las herramientas de software ejecutan
pruebas preprogramadas en una aplicación de software antes de que se lance a producción.

6
El objetivo de las pruebas automatizadas es simplificar la mayor cantidad posible de pruebas con un
conjunto mínimo de scripts. Si las pruebas unitarias consumen un gran porcentaje de los recursos de un
equipo de control de calidad (QA), por ejemplo, entonces este proceso podría ser un buen candidato para
la automatización. Las herramientas de prueba automatizadas son capaces de ejecutar pruebas, informar
resultados y comparar resultados con pruebas anteriores. Las pruebas llevadas a cabo con estas
herramientas se pueden ejecutar de forma repetida, en cualquier momento del día.

El método o proceso que se utiliza para implementar la automatización se denomina marco de


automatización de prueba. Varios marcos han sido implementados a lo largo de los años por vendedores
comerciales y organizaciones de prueba. Sin embargo, la automatización de las pruebas con software de
código abierto comercial (COTS) o de código abierto puede ser complicado, ya que casi siempre requieren
personalización. En muchas organizaciones, la automatización solo se implementa cuando se ha
determinado que el programa de prueba manual no cumple con las expectativas y no es posible incorporar
probadores más humanos.

4.0 Ventas y Desventajas

Ventajas de la automatización de prueba

1.0 Rápido

Como las pruebas manuales consumen una gran cantidad de tiempo tanto en el proceso de desarrollo de
software como durante las pruebas de la aplicación de software, las herramientas automatizadas son una
opción más rápida siempre que los scripts que se deben realizar sean estándar y no complejos.

2.0 Fiabilidad

La automatización de la ejecución del script de prueba elimina la posibilidad de error humano cuando la
misma secuencia de acciones se repite una y otra vez. Recuerde que esto puede ser muy importante ya
que le sorprendería saber cuántos defectos de prueba han sido causados por el error del probador. Esto
ocurre particularmente cuando los mismos guiones de pruebas aburridas deben ejecutarse una y otra vez,
así como cuando, en el espectro opuesto, se deben realizar pruebas realmente complejas.

7
3.0 Completo

Probadores automatizados pueden contener un conjunto de pruebas que podrían ayudar a probar cada
característica de la aplicación. Esto significa que es poco probable que ocurra la posibilidad de perder
partes clave de las pruebas. Es posible que piense que es poco probable que esto suceda en realidad, pero
he logrado un proyecto donde, de hecho, una parte clave de la funcionalidad fue pasada por alto por el
equipo de prueba.

4.0 Reusabilidad

Los casos de prueba se pueden usar en varias versiones del software. No solo sus partes interesadas en la
gestión de proyectos estarán muy agradecidos por la reducción del tiempo y el costo del proyecto, sino
que también lo ayudarán a estimar los costos del proyecto.

5.0 Programable

Se puede programar el software de automatización de prueba para extraer elementos del software
desarrollado que de otro modo no se habría descubierto. Por lo tanto, esto debería hacer que su prueba
sea aún más completa, ¡algo que tal vez no le interese tanto cuando, como resultado, se produce un
defecto tras otro!

Desventajas de la automatización de prueba:

1.0 ¡No es fácil!

Escribir scripts de automatización de pruebas no es una tarea fácil. Realmente necesita probadores que
tengan experiencia en hacer esto, de lo contrario, irá terriblemente mal y terminará gastando aún más
dinero y tiempo que si se hiciera manualmente. Así que tenga esto en cuenta cuando esté haciendo su
asignación de recursos de gestión de proyectos para que obtenga los probadores correctos en su
proyecto.

2.0 Errores de secuencia de comandos de automatización

Si se produce un error en las secuencias de comandos de automatización de prueba que no se detecta,


podría ser fatal para el proyecto ya que no se han realizado las pruebas correctas. De hecho, es posible
que ni siquiera se dé cuenta del error hasta que el software se inicie y luego se caiga.

8
3.0 Cambios de alcance

Cada proyecto tendrá que implementar la gestión de solicitudes de cambio. Sin embargo, a pesar de los
mejores esfuerzos, todavía habrá algunos que lo hagan. El problema con esto es que puede requerir que
los scripts de automatización de prueba sean reprogramados o rediseñados. Este puede ser el caso incluso
cuando hay un cambio menor en la interfaz de usuario del software.

4.0 Complejidad

Con el aumento en el número de requisitos (documentación de requisitos comerciales y especificación de


requisitos de software) que deben probarse, esto conduce a una complejidad cada vez mayor que hace
que el mantenimiento de los datos de prueba sea extremadamente difícil.

4.0 Principios de las pruebas de software.

Las pruebas se rigen por una serie de principios, una buena comprensión de estos facilitará el posterior
uso de los métodos en un efectivo diseño de casos de prueba. A continuación se citan:

 La prueba puede ser usada para mostrar la presencia de errores, pero nunca su ausencia.

 La principal dificultad del proceso de prueba es decidir cuándo parar.

 Evitar casos de pruebas no planificados, no reusables y triviales a menos que el programa sea
verdaderamente sencillo.

 Una parte necesaria de un caso de prueba es la definición del resultado esperado.

 Los casos de pruebas tienen que ser escritos no solo para condiciones de entrada válidas y
esperadas sino también para condiciones no válidas e inesperadas.

9
 El número de errores sin descubrir es directamente proporcional al número de errores
descubiertos.

Estas leyes que definen básicamente la aplicación de las pruebas de software ayudan a refinar el producto
de software a través de las etapas involucradas.

5.0 Etapas involucradas en las pruebas de software.

1. Seleccionar qué es lo que debe medir la prueba, es decir, cuál es su objetivo, para qué
exactamente se hace la prueba.

2. Decidir cómo se va a realizar la prueba, es decir, qué clase de prueba se va a utilizar para medir la
calidad y qué clase de elementos de prueba se deben usar.

3. Desarrollar los casos de prueba. Un caso de prueba es un conjunto de datos o situaciones de


prueba que se utilizarán para ejecutar la unidad que se prueba o para revelar algo sobre el atributo
de calidad que se está midiendo.

4. Determinar cuáles deberían ser los resultados esperados de los casos de prueba y crear el
documento que los contenga.

5. Ejecutar los casos de prueba.

6.0 Validacion y Verificacion

¿Qué es verificación?

La verificación se enfoca más al proceso de evaluación del sistema o componentes ya que permite
determinar si los productos de una determinada fase del desarrollo satisfacen las condiciones.

 Consistencia: vigilar que la información sea coherente.

 Precisión: corrección de la sintaxis.

 Completitud: lagunas en capacidad deductiva.

10
Se:

 Identifica desviaciones con estándares y requerimientos.

 Recolecta datos para mejorar el proceso.

¿Qué es validación?

La validación también es una evaluación del sistema o de componentes, solo que es en el transcurso o al
final del proceso del desarrollo, donde se determina si cumple con lo especificado.

 Construir el sistema correcto.

 Evaluar la conformidad con la especificación de requisitos.

Métodos formales de verificación

Entre los métodos de verificación más utilizados, se encuentran:

 Aserciones E/S: El programa, en lógica de Hoare, se especifica mediante aserciones que


relacionan las entradas y salidas del programa. Se garantiza que si la entrada actual satisface las
restricciones de entrada (precondiciones) la salida satisface las restricciones de salida
(poscondiciones).

 Precondición más débil: Consiste en dada una poscondición POST, encontrar, operando hacia
atrás, un programa S tal que la precondición se satisfaga en un amplio conjunto de situaciones.

 Inducción estructural: La inducción estructural es una técnica de verificación formal que se basa
en el principio de inducción matemática.

11
7.0 Tipos de pruebas

Las pruebas de software son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar
información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder.

Las pruebas son básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo
del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso
de desarrollo. Existen distintos modelos de desarrollo de software, así como modelos de pruebas. A cada
uno corresponde un nivel distinto de involucramiento en las actividades de desarrollo.

El objetivo de las pruebas es presentar información sobre la calidad del producto a las personas
responsables de éste. Las pruebas de calidad presentan los siguientes objetivos: encontrar defectos o
bugs, aumentar la confianza en el nivel de calidad, facilitar información para la toma de decisiones, evitar
la aparición de defectos.

Teniendo esta afirmación en mente, la información que puede ser requerida es de lo más variada. Esto
hace que el proceso de testing sea completamente dependiente del contexto1 en el que se desarrolla.

El ambiente ideal de las pruebas de testing es aquel que es independiente del desarrollo del software, de
esta manera se logra objetividad en las pruebas.

A pesar de lo que muchos promueven, no existen las "mejores prácticas" como tal. Toda práctica puede
ser ideal para una situación pero completamente inútil o incluso perjudicial en otra.

Por esto, las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las
pruebas a realizar, deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del
proyecto.

A continuacion desribimos algunos de los tipos de pruebas mas reconocidos:

Pruebas funcionales

Una prueba funcional es una prueba basada en la ejecución, revisión y retroalimentación de las
funcionalidades previamente diseñadas para el software . Hay distintos tipos como por ejemplo:

 Pruebas unitarias

 Pruebas de componentes

 Pruebas de integración

12
 Pruebas de sistema

 Pruebas de humo

 Pruebas alpha

 Pruebas beta

 Pruebas de aceptación

 Pruebas de regresión

Pruebas no funcionales

Una prueba no funcional es una prueba cuyo objetivo es la verificación de un requisito que especifica
criterios que pueden usarse para juzgar la operación de un sistema como por ejemplo la disponibilidad,
accesibilidad, usabilidad, mantenibilidad, seguridad, rendimiento. Podemos clasificar las pruebas no
funcionales según el tipo de requisito no funcional que abarcan:

 Pruebas de compatibilidad

 Pruebas de seguridad

 Pruebas de Stress

 Pruebas de usabilidad

 Pruebas de rendimiento

 Pruebas de internacionalización y localización

 Pruebas de escalabilidad

 Pruebas de mantenibilidad

 Pruebas de instalabilidad

 Pruebas de portabilidad

13
Herramientas para realizar pruebas de software

El control de la calidad de software lleva consigo aplicativos que permiten realizar pruebas autónomas y
masivas permitiendo así la verificación desde el punto de vista estático y de caja blanca, es decir pruebas
donde se analiza el software sin ejecutar el software mediante el código fuente del mismo. Podemos
encontrar herramientas Open Source (libres) o Comerciales (de pago). Estas herramientas podrán ser
utilizadas para diferentes tipos de pruebas como:

1. Herramientas de gestión de pruebas

2. Herramientas para pruebas funcionales

3. Herramientas para pruebas de carga y rendimiento

Herramientas Open Source

1) Herramientas de gestión de pruebas

 Bugzilla Testopia

 FitNesse

 qaManager

 qaBook

 RTH (open source)

 Salome-tmf

 Squash TM

 Test Environment Toolkit

 TestLink

 Testitool

 XQual Studio

14
 Radi-testdir

 Data Generator

2) Herramientas para pruebas funcionales

 Selenium

 Soapui

 Watir

 WatiN (Pruebas de aplicaciones web en .Net)

 Capedit

 Canoo WebTest

 Solex

 Imprimatur

 SAMIE

 ITP

 WET

 WebInject

3) Herramientas para pruebas de carga y rendimiento

 JMeter

 Gatling

 FunkLoad

 FWPTT load testing

 loadUI

Herramientas comerciales

15
1) Herramientas de gestión de pruebas

 HP Quality Center/ALM

 Silk Central

 QA Complete

 qaBook

 T-Plan Professional

 SMARTS

 [Link] Case Studio

 PractiTest

 SpiraTest

 TestLog

 ApTest Manager

 Zephyr

2) Herramientas para pruebas funcionales

 Ranorex

 Silk Test

 QuickTest Pro

 Rational Robot

 Sahi

 SoapTest

 Test Complete

 QA Wizard

 Squish

16
 vTest

 Internet Macros

3) Herramientas para pruebas de carga y rendimiento

 HP LoadRunner

 IBM Rational Performance Test (RPT)

 LoadStorm

 NeoLoad

 WebLOAD Professional

 Forecast

 ANTS – Advanced .NET Testing System

 Webserver Stress Tool

 Load Impact

 Silk Performer

17
Conclusion:

Como pudimos ver las pruebas de software son bastante necesarias. Los beneficios de las pruebas de
verificación y validación independiente, no solo repercuten en el área de desarrollo de proyectos y en el
ahorro de costes, sino que también se dejan notar en el resto de las áreas de negocio y especialmente en
la satisfacción del cliente final. Por un lado, el departamento de informática cumple su compromiso de
alcance, plazo, coste y calidad. Por otro, mejora la transición de la fase de desarrollo a la de puesta en
producción. Cuando los proyectos llegan a la fase final, los sistemas deben ser estables, y ofrecer una
respuesta mejor a las necesidades funcionales y a los aspectos técnicos. Esto provoca la satisfacción de
los usuarios finales y un incremento en la confianza de los responsables de la explotación del nuevo
Sistema.

18
Bibliografia:

EcuRed. (2016, 06 01). Ecu. Retrieved from Red: [Link]

León, M. (2016, 05 01). KIBERNUM. Retrieved from [Link]


importantes-las-pruebas-funcionales-2/

Pressman, R. S. (2014). Software Engeneering A practicioners Approach. In R. S. Pressman, Software


Engeneering A practicioners Approach (p. 996). Mexico DF: Mcgraw Hill.

19

También podría gustarte