Pruebas de Sw

5
Las pruebas en el desarrollo de software Introducción Actualmente el proceso de pruebas es más que simplemente sentarse y empezar a probar el software desarrollado en base a la experiencia del programador. En la actualidad hablamos de un "Proceso de Pruebas" básico el cual permite la gestión de las pruebas desde su concepción hasta su ejecución. En éste pequeño artículo analizaremos las fases principales definidas para las pruebas. Contenido Proceso de pruebas Planeamiento y control Análisis y diseño Implementación y ejecución Evaluación de resultados y reportes Cierre Proceso de pruebas Actualmente, las pruebas deben ser manejadas de manera paralela al desarrollo, pero debe estar muy relacionada a las actividades que se realicen. La ISTBQ (International Software Testing Qualifications Board) es una entidad que trata la estandarización del proceso de pruebas, además de encargarse de la certificación de Profesionales en Pruebas. El modelo de proceso propuesto abarca las siguientes fases:

description

uni

Transcript of Pruebas de Sw

  • Las pruebas en el desarrollo de software

    Introduccin

    Actualmente el proceso de pruebas es ms que simplemente sentarse y empezar a probar el

    software desarrollado en base a la experiencia del programador. En la actualidad hablamos

    de un "Proceso de Pruebas" bsico el cual permite la gestin de las pruebas desde su

    concepcin hasta su ejecucin.

    En ste pequeo artculo analizaremos las fases principales definidas para las pruebas.

    Contenido

    Proceso de pruebas

    Planeamiento y control

    Anlisis y diseo

    Implementacin y ejecucin

    Evaluacin de resultados y reportes

    Cierre

    Proceso de pruebas

    Actualmente, las pruebas deben ser manejadas de manera paralela al desarrollo, pero debe

    estar muy relacionada a las actividades que se realicen.

    La ISTBQ (International Software Testing Qualifications Board) es una entidad que trata la

    estandarizacin del proceso de pruebas, adems de encargarse de la certificacin de

    Profesionales en Pruebas.

    El modelo de proceso propuesto abarca las siguientes fases:

  • Proceso de pruebas

    Planeamiento y control

    Anlisis y diseo

    Implementacin y ejecucin

    Evaluacin de resultados y reportes

    Cierre

    Planeamiento y control

    La actividad de planeamiento y control define los objetivos, el tiempo y los recursos

    necesarios para el anlisis, diseo, ejecucin y evaluacin de las pruebas.

    Tambin se debe definir las formas en como se va a controlar la correcta ejecucin y el

    cumplimiento de las dems actividades del proceso, es recomendable el uso de estndares.

    Uno de los puntos a tratar en la planificacin es la identificacin del propsito de las

    pruebas, es decir , Qu se quiere lograr?. Algunos de los propsitos ms comunes son:

    Pruebas de Aceptacin y Calificacin: estas pruebas son hechas para evaluar que

    el software cumpla con los criterios de aceptacin propuestos por el cliente.

    Usualmente el cliente, o su representante, realiza un chequeo del sistema para

    determinar si cumple con los criterios establecidos.

    Pruebas de Instalacin: una vez terminada la revisin de aceptacin, el software se

    prueba en un ambiente que emula al de produccin. La finalidad es comprobar que

    el sistema funcionar correctamente.

    Pruebas Alfa/Beta: antes de que un software sea liberado al mercado, se suele

    entregar a un grupo pequeo de usuarios, que representan a los usuarios finales. La

    finalidad es que se reporten errores antes de la liberacin del software en el

    mercado.

    Pruebas de Regresin: consiste en repetir las pruebas seleccionadas y realizadas

    previamente antes de una modificacin. El objetivo principal es determinar que los

    componentes funcionan correctamente despus de los cambios realizados.

    Pruebas de Rendimiento: las pruebas de rendimiento verifican que el software

    cumpla con los requerimientos de rendimientos establecidos y evala su

    rendimiento.

    Entre otros.

    Anlisis y diseo

    Una vez definido el/los objetivos, stos, deben ser analizados y revisados para la definicin

    de los casos de pruebas.

    Los objetivos guan las siguientes actividades:

    Identificar y refinar las condiciones de pruebas por cada objetivo de prueba.

  • Crear casos de prueba para validar que las condiciones de pruebas identificadas se

    cumplan.

    Definir y usar un estndar para la documentacin.

    La seleccin de la documentacin y de la forma como se definirn los casos de prueba

    depender mucho de los expertos. Pero tambin es recomendable el uso de estndares, por

    ejemplo el estndarSoftware Test Documentation IEEE 829(IEEE, 2008).

    Adicionalmente, se debe definir lo que se va a probar, esto puede incluir desde

    componentes , mdulos hasta el comportamiento completo del sistema:

    Pruebas de Unidad: verifica la funcionalidad de un componente de manera aislada.

    Puede tratarse de sub-programas, componentes menos complejos o funciones

    especficas.

    Pruebas de Integracin: se trata de verificar la correcta iteracin de los

    componentes que conforman el sistema. Dependen mucho de la arquitectura del

    sistema y las interfaces de comunicacin entre componentes.

    Pruebas del Sistema: consiste en la prueba de las funcionalidad del sistema, en

    trminos de rendimiento, seguridad , hardware, sistema operativo, etc.

    Implementacin y ejecucin

    En stas faces se ve la creacin de los ambientes para las pruebas, as como la ejecucin de

    los casos de prueba seleccionados.

    Los ambientes deben ser los ms parecidos posibles al ambiente dnde se ejecutar el

    aplicativo en produccin. Esto incluye desde hardware, hasta el software con el cual

    convivir .

    La implementacin o preparacin puede incluir tareas como:

    Preparacin del ambiente de pruebas: el tipo de ambiente y su despliegue depender

    mucho del propsito de la prueba as como el objeto a probar. La preparacin

    incluye la implantacin, configuracin del ambiente en trminos de servidores.

    Implantacin de las herramientas de prueba: en casos donde las pruebas sean

    automatizadas, se pude requerir un despliegue adicional de las herramientas a ser

    usadas.

    Configuracin y despliegue de los componentes a ser sometidos a prueba.

    Para la fase de ejecucin, podemos encontrar las siguientes actividades:

    Organizar tiempo y recursos.

    Ejecucin de las pruebas a travs de recursos humanos, como herramientas.

    Registro de los resultados de las pruebas, esto incluye los errores, resultados

    satisfactorios, etc.

    Reporte del resultados de las pruebas realizadas.

  • Es recomendable el uso de mtricas en la presentacin del reporte de resultados, stas

    mtricas deben ser acordadas antes de la ejecucin de las pruebas.

    Evaluacin de resultados y reportes

    En sta fase se revisan los resultados de las pruebas, las revisiones incluyen:

    Pruebas intentadas vs satisfactorias: ayudar a tener una visin de la calidad del

    sistema hasta el momento. La mayora de ejecuciones descubrir defectos en el

    sistema, conforme el sistema sea ms maduro, los defectos encontrados sern menos

    Descubrir defectos del sistema en base a los defectos individuales: consiste en la

    revisin de los defectos encontrados a partir de las pruebas para determinar qu

    partes del sistema pueden verse afectados.

    Descubrir defectos del sistema en base al historial de defectos: una revisin

    histrica de los defectos ayuda a verificar la ocurrencia de los mismos a lo largo del

    proceso de desarrollo. Es recomendable su uso en pruebas de regresin.

    Descubrir defectos en base a grupo de defectos: la idea es la identificacin de los

    componentes a travs de una etiqueta, esto se debe hacer en coordinacin con el

    equipo de desarrollo. stas marcas pueden ayudar a identificar defectos entre

    componentes relacionados.

    Cierre

    La fase de cierre se da cuando el software es entregado, u otras causas. Dentro de las

    actividades del cierre tenemos:

    Determinar que entregables se han entregado y verificar si todos los defectos

    detectados han sido resueltos.

    Archivar y finalizar los casos de pruebas automatizados, configuraciones de

    entornos de prueba, etc.

    Evaluar el proceso de pruebas en general, detectar lecciones aprendidas.

    Referencias

    Black, R. and Mitchell, J. L. (2011). Advanced Software Testing - Vol. 3: Guide to the

    ISTQB Advanced Certification as an Advanced Technical Test Analyst. RockyNook, 1

    edition edition.

    Bourque, P. and Fairley, R. (2014). Guide to the Software Engineering Body of

    Knowledge.

    Gerald D. Everett, Raymond McLeod, Jr (2007). Software testing: testing across the entire

    software development life cycle. [Piscataway, NJ] : IEEE Press ; c2007.

    Henry, J.-J. P. (2008). The Testing Network: An Integral Approach to Test Activities in

    Large Software Projects. Springer, 2008 edition edition.

    IEEE (2008). IEEE Standard for Software and System Test Documentation.

  • IEEE, ISO, and IEC (2010). Systems and software engineering Vocabulary. ISO/IEC/IEEE 24765:2010(E), pages 1418. Koirala, S. and Sheikh, S. (2008). Software Testing: Interview Questions. Jones & Bartlett

    Learning, 1 edition edition.

    Myers, G. J., Sandler, C., Badgett, T., and Thomas, T. M. (2012). The Art of Software

    Testing, Third Edition. Wiley, 3 edition edition.

    Tian, J. (2005). Software Quality Engineering: Testing, Quality Assurance, and

    Quantifiable Improvement. Wiley-IEEE Computer Society Press, 1 edition edition.