Sunteți pe pagina 1din 31

Tema 07: Técnicas de prueba de Software

Bienvenida
Bienvenidos al séptimo tema del curso, en el que vamos a ver Estándares relativos a las pruebas de software, entre ellos el
proceso de pruebas, Principios de pruebas, el plan de calidad, el plan de pruebas, técnicas de verificación, así como también el
Software CAST (Computed Aided Software Testing) y una metodología de pruebas.
Introducción al tema

Hoy en día, las aplicaciones de software se


han incrementado convirtiéndose en un
tema muy crítico y complicado. Por otro lado
se necesita disminuir el tiempo de salida al
mercado debido a la competencia de otras
compañías desarrolladoras de software.
Debido a esto, los ingenieros de software y
desarrolladores se enfrentan a varios retos
en el desarrollo de aplicaciones de software.
El desarrollo de software implica
ambigüedad, supuestos y la comunicación
imperfecta del ser humano.
Cada cambio realizado en una pieza de
software, cada nueva funcionalidad, cada
intento de arreglar un defecto, introduce la
posibilidad de error. Con cada error, el
riesgo de que el software no cumpla con
propósito.
Las pruebas de software es un medio
importante para la evaluación del software y
determinar su calidad. Dado que la prueba
consume típicamente entre 40 y 50% de los
esfuerzos de desarrollo, y consume más esfuerzo para sistemas que requieren niveles más altos de fiabilidad, es una parte
importante de la ingeniería de software. Con el desarrollo de los lenguajes de cuarta generación (4GL), lo que acelera el proceso
de implementación, la proporción de tiempo dedicado a las pruebas aumentó. Como la cantidad de mantenimiento y
actualización de los sistemas existentes crecen, también se necesitará gran cantidad de pruebas para verificar los sistemas
después de realizar los cambios. A pesar de los avances en los métodos formales y técnicas de verificación, un sistema aún
debe ser probado antes de su uso. El Testing sigue siendo verdaderamente un medio eficaz para asegurar la calidad de un
sistema de software de complejidad no trivial, así como una de las áreas más intrincadas y menos comprendidas en ingeniería
de software. Las pruebas son un área de investigación importante dentro de la informática y es probable que cada vez más en el
futuro.
Aprendizajes esperados

Conozcamos ahora las capacidades y actitudes a desarrollar en


este tema:
Capacidad

Analiza los estándares relativos a las pruebas de software.


Elaborar un plan de pruebas y de calidad en los proyectos de
desarrollo de software.
Utiliza una metodología de pruebas.
Actitudes

• Valora el uso de técnicas de prueba de software.


• Aplica técnicas de software.
Mapa conceptual referido al tema

Observa detenidamente el siguiente esquema, en el encontrarás de un “vistazo” de manera sintetizada los principales concepto
de la temática que abordaremos. ¿Qué conceptos o categorías te llaman la atención?
7.1. Estándares relativos a las pruebas de software.

ISO / IEC / IEEE 29119: Pruebas de Software es un conjunto de normas acordada internacionalmente para pruebas de software que se pueden utilizar
dentro de cualquier ciclo de vida de desarrollo de software o de la organización. Con el uso de estas normas, se propicia que las organizaciones den
un enfoque de alta calidad a las pruebas. (software testing standard, 2014). Actualmente hay cinco normas:
• ISO / IEC 29119-1: Conceptos y Definiciones (publicado en septiembre de 2013)
• ISO / IEC 29119-2: Procesos de prueba (publicado en septiembre de 2013)
• ISO / IEC 29119-3: Documentación de prueba (publicado en septiembre de 2013)
• ISO / IEC 29119-4: Técnicas de prueba (publicado a finales de 2014)
• ISO/ IEC 29119-5: Pruebas guiadas por palabras clave (en la etapa de CD, anticipándose a la publicación en 2015)
6.1.1 ISO/IEC/IEEE 29119-1: Conceptos y definiciones.

El objetivo de la norma ISO / IEC / IEEE 29119-1 es facilitar la comprensión y el uso de todos los otros estándares de la serie
29119. ISO / IEC / IEEE 29.119-1 introduce el vocabulario en el que todas las normas de la serie 29119 se construyen y
proporciona ejemplos de la aplicación de cada concepto en la práctica. Parte 1 es informativo y proporciona definiciones, una
descripción de los conceptos de pruebas de software y la forma de aplicar los procesos, documentos y técnicas definidas en la
serie 29119 (software testing standard, 2014).

ISO / IEC / IEEE 29.119-1 cubre los siguientes temas:


6.1.2 ISO/IEC/IEEE 29119-2: Proceso de pruebas.

El objetivo de esta norma es definir un modelo de proceso genérico para las pruebas de software que se puede utilizar dentro de cualquier ciclo
de vida de desarrollo de software. El modelo especifica los procesos de prueba que se pueden utilizar para gobernar, administrar y ejecutar las
pruebas de software en cualquier actividad de la organización, proyecto o pruebas. El proceso de prueba se basa en un modelo de proceso de
tres capas que cubre:

Pruebas basadas en riesgos es un enfoque de mejores prácticas para la formulación de estrategias y la gestión de las pruebas, ya que permite a
las pruebas que se prioricen y centrarse en las características y atributos más importantes de calidad de cada sistema bajo prueba. (software
testing standard, 2014)

Los siguientes diagramas ilustran las capas del modelo de proceso de prueba que se define en la norma ISO / IEC / IEEE 29119-2 (pero no son
exactas copias de las que se encuentran en las normas oficiales) (software testing standard, 2014)
6.1.2.1. Vista detalle del modelo de procesos de prueba.
6.1.2.2. Proceso de gestión de pruebas.
6.1.2.3. Procesos de Planificación de prueba
6.1.2.4. Proceso de seguimiento y control de pruebas.
6.1.2.5. Proceso de prueba dinámica
6.1.3 ISO/IEC/IEEE 29119-3: Documentación de prueba

El objetivo de la norma ISO / IEC / IEEE 29119-3 es definir plantillas para la documentación de prueba que cubren todo el ciclo de vida de las pruebas
de software. Cada plantilla se puede adaptar para satisfacer las necesidades únicas de cada organización de aplicación de la norma, para apoyar la
implementación de la norma dentro de cualquier modelo de ciclo de vida de desarrollo de software. Todas las plantillas se alinean con el proceso de
prueba definido en la norma ISO / IEC / IEEE 29119-2 y pueden ser producidos por la aplicación de los procesos que se definen en esa norma.
El estándar IEEE 829 Documentación de prueba conocido y ampliamente utilizado se utilizó como base para la presente norma, y como tal, la norma
ISO / IEC / IEEE 29119-3 sustituye IEEE 829. (IEEE XPLORE Digital Library, 2015)

Los documentos que se definen en la norma ISO / IEC / IEEE 29119-3 son los siguientes:
6.1.4 ISO/IEC/IEEE 29119-4: Técnicas de pruebas.

El objetivo de esta norma es definir un estándar internacional que cubre las técnicas de diseño de pruebas de software (también
conocidas como técnicas de diseño de casos de prueba o métodos de prueba) que se pueden utilizar durante el proceso de
diseño de la prueba y la aplicación dentro de cualquier organización o modelo de ciclo de vida de desarrollo de software. Las
técnicas de diseño de pruebas que se presentan en la presente norma se pueden utilizar para derivar casos de prueba que se
pueden usar para recoger evidencia de que los requerimientos de cada sistema bajo prueba se han cumplido y / o que detecta
están presentes. De acuerdo con la norma ISO / IEC / IEEE Procesos 29119-2 de prueba, un enfoque basado en el riesgo de la
prueba se debe utilizar para determinar el conjunto de técnicas que se aplican en situaciones específicas y dar prioridad a los
casos de prueba derivados y procedimientos de prueba (pruebas basado en el riesgo es descrito en detalle en la norma ISO /
IEC / IEEE 29119-1 e ISO / IEC / IEEE 29119-2). Las técnicas de prueba en sí también se pueden adaptar para satisfacer las
necesidades únicas de cada organización y cada sistema bajo prueba. (software testing standard, 2014)
La base de esta norma es la norma BS-7925-2 pruebas de componentes, que es sustituida por la norma ISO / IEC / IEEE 29119-
4.
6.1.4.1 Técnicas basadas en especificaciones
6.1.4.2 Técnicas basadas en estructura
6.1.4.3 Técnicas de prueba basada en la experiencia

Esta norma también proporciona definiciones informativas de una variedad de tipos relacionados con la calidad de las pruebas y
ofrece ejemplos de cómo las técnicas de diseño de casos de prueba en las listas anteriores se pueden aplicar dentro de los
siguientes tipos de pruebas:
6.1.5 ISO/IEC/IEEE 29119-5: Pruebas guiadas por palabras clave.

Pruebas guiadas por palabras clave es la técnica de creación de scripts que utiliza archivos de datos para contener no
solamente datos de prueba y resultados esperados, sino también palabras claves que están relacionadas con la aplicación que
está siendo probada. Las palabras claves son interpretadas por scripts especiales de soporte que son invocados por el script de
control para la prueba.
El objetivo de la norma es definir un estándar internacional para apoyar a describir los casos de prueba mediante el uso de un
conjunto predefinido de palabras clave. Estas palabras clave son nombres que están asociados con un conjunto de acciones que
se requieren para realizar un paso específico en un caso de prueba. Mediante el uso de palabras clave para describir las
medidas de prueba en lugar de lenguaje natural, los casos de prueba pueden ser más fáciles de entender, mantener y
automatizar.
7.2. El proceso de pruebas.

El proceso de prueba conlleva la realización de un conjunto de tareas a lo largo del ciclo de vida el desarrollo del producto de
software, puede considerarse como un subproyecto dentro del proyecto sobre el cual se están ejecutando las pruebas, y como
tal requiere la definición de un plan a seguir. Cuando el proceso de pruebas existe dentro del contexto del proyecto, debería
prestarse atención a la efectividad y eficiencia de las pruebas desde la perspectiva del proyecto y no desde la perspectiva del
propio subproyecto de pruebas.

Proceso de pruebas en el ciclo de vida de desarrollo de software

En la figura anterior se observa un modelo de cómo las etapas de pruebas se integran en el ciclo de vida de desarrollo de
software genérico. Durante la etapa de planificación es importante establecer una buena estrategia de pruebas y seleccionar las
técnicas adecuadas de estimación en función de los factores que afecten a las pruebas del proyecto. La siguiente fase de
desarrollo es el diseño del producto, que trae consigo el diseño de casos de prueba, Durante las siguientes fases de codificación
y pruebas del producto, se ejecutan las pruebas unitarias, de sistemas, de integración, etc
7.2.1. Enfoques de diseño de pruebas.

La disciplina de pruebas es una de las más costosas del ciclo de vida software. En sentido estricto, deben realizarse las pruebas
de todos los artefactos generados durante la construcción de un producto, lo que incluye especificaciones de requisitos, casos
de uso, diagramas de diversos tipos y, por supuesto, el código fuente y el resto de productos que forman parte de la aplicación
(por ejemplo, la base de datos), e infraestructura. Obviamente, se aplican diferentes técnicas de prueba a cada tipo de producto
software.
A continuación, se describirá los tipos de pruebas en función de qué conocemos, según el grado de automatización y en función
de qué se prueba.
7.3. Software CAST (Computed Aided Software Testing)

IBM Rational Functional Tester (RFT) es una herramienta automatizada para la realización de pruebas funcionales y de
regresión. Permite probar aplicaciones Java, .NET y basadas en Web.

Con la tecnología de grabación, se puede generar scripts mediante la ejecución y el uso de la aplicación bajo prueba. Los scripts
del RFT son implementados como programas Java. Asimismo, crea una vista que muestra las acciones del usuario sobre la
aplicación. Durante el proceso de grabación, se puede añadir comandos controlados por datos que permitirán probar, durante el
proceso de reproducción, otros datos provenientes de un pool de datos. Otra característica importante del RFT que pueden ser
añadidos en un script, son los puntos de verificación que permiten evaluar los datos y propiedades de los objetos de la aplicación
y confirman el estado de dichos objetos probándolas aún en versiones posteriores. Esto es posible gracias a la tecnología
ScriptAssure que permite crear scripts de prueba más resistentes a los cambios en los objetos de las aplicaciones. Los objetos
que son referenciados por las aplicaciones son almacenados automáticamente en un mapa de objetos de prueba al crear el
script. (IBM, 2015)
7.3.1. Arquitectura de Rational Functional Tester.
7.3.2. Herramientas de Apoyo a las Pruebas de software.
7.4. Una metodología de pruebas.

Metodología de pruebas.
Preguntas de análisis

Después de haber leído los contenidos explicados anteriormente, quizás te estas preguntando lo
siguiente:

1. ¿Qué es probar un software?

2. ¿Indique la importancia de las pruebas de software?

3. ¿En qué consiste las pruebas de requisitos funcionales?

Al respecto para conocer un poco más sobre este tema, y dar respuesta a las preguntas planteadas a continuación te
invitamos a leer analíticamente la siguiente lectura.

Serna, E., & Arango, F. (2011). Prueba del software: más que una fase en el ciclo de vida. (Spanish). Revista De Ingeniería, (35), 34-40.
Bibliografía

IBM. (13 de Setiembre de 2015). IBM Knowledge Center. Obtenido


de http://www-

01.ibm.com/support/knowledgecenter/SSMMM5_8.1.0/com.ibm.rational.test.lt.accessibility.doc/helpindex_rpt.html?
cp=SSMMM5_8.1.0%2F0
IEEE XPLORE Digital Library. (12 de Setiembre de 2015). Obtenido de http://ieeexplore.ieee.org/Xplore/home.jsp
software testing standard. (2014). Obtenido de http://www.softwaretestingstandard.org/
Lecturas recomendadas

Para saber más


Ponemos a tu disposición y te invitamos a revisar dos interesantes documentos que te ayudaran a reforzar y ampliar los temas
que hemos estudiado, estos los encontrarás en la base de datos ebsco que utiliza nuestra universidad:

Documento 1: Testing process for software products at a quality laboratory


URL: http://search.ebscohost.com/login.aspx?direct=true&db=zbh&AN=108922105&lang=es&site=ehost-live
Breve descripción:
Este trabajo presenta una propuesta de proceso de pruebas de software, para un Laboratorio de Calidad, inmerso en un
ambiente universitario. Se detallan las actividades de los procesos fundamentales y los artefactos de salida, los niveles de
prueba que se aplican y otros elementos de interés.

Documento 2: Prueba del software: más que una fase en el ciclo de vida
URL: http://search.ebscohost.com/login.aspx?direct=true&db=zbh&AN=79108965&lang=es&site=ehost-live
Breve descripción:
En este trabajo, mediante una propuesta metodológica de cuatro fases, se muestra por.qué es difícil detectar y eliminar errores,
por qué es complejo el proceso de realizar pruebas y por qué es necesario prestarle más atención.

Documento 3: Propuesta para incorporar evaluación y pruebas de usabilidad dentro de un proceso de desarrollo de software
URL: http://search.ebscohost.com/login.aspx?direct=true&db=zbh&AN=70086164&lang=es&site=ehost-live
Breve descripción:
Este artículo expone una propuesta para introducir la evaluación y pruebas de usabilidad dentro de un desarrollo de software,
basándose en la reutilización de artefactos de software. Adicionalmente, propone la introducción de un auditor dentro de la
clasificación de actores para las pruebas de usabilidad y una mejora de las listas de chequeo utilizadas para evaluación
heurística, agregándoles aspectos cuantitativos y cualitativos.
Conclusiones

Las compañías de software se enfrentan con serios desafíos en la


prueba de sus productos, cada vez más grandes, debido a que el
software es cada vez más complejo.
Lo primero y más importante que hay que hacer es reconocer la
naturaleza compleja de las pruebas y tomarlas en serio.

El estándar internacional ISO/IEC 29119 proporciona las directrices


para las pruebas cubriendo todos los aspectos del ciclo de vida
Metacognición

Las siguientes preguntas te ayudarán a reflexionar sobre tus propios


aprendizajes, es un ejerció recomendado para razonar e identificar
nuestro esfuerzo intelectual, la finalidad es regular nuestras acciones y
procesos mentales

¿Consideras que la aplicación de normas como ISO son importantes


para la mejora de las pruebas de software?
¿Conoces alguna empresa que desarrolla software y que practica las
pruebas de software?
¿Si usted fuese jefe de sistemas implementaría un área de testing de
software, porque?
¿Cuál sería el impacto de las pruebas de software en la industria
nacional?

S-ar putea să vă placă și