Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net/publication/296480694
CITATIONS READS
0 522
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Ronald Ibarra on 14 March 2017.
ABSTRACT
Software testing is a vital activity and a determining factor for Según Vegas y Basili en [16], las decisiones tomadas por los
success of a given project since testing allow stakeholders to know desarrolladores no son tomadas tan al azar en la medida de su
if the product meets their expectations and requirements, conocimiento de la técnica. Hay dos razones principales por las que
additionally, the cost of testing is very significant in relation to los desarrolladores no toman buenas decisiones:
development cost, therefore is important to select the most suitable - La información disponible sobre las técnicas está normalmente
testing techniques and tools in a given project to find defects at distribuida a través de diferentes fuentes de información
less cost possible; however in many projects, the practitioners (libros, artículos e incluso la gente). Esto quiere decir que los
adopt the same testing technique/tool used in past projects or any desarrolladores no tienen una idea general de que técnicas están
available without knowing the testing technique attributes. As a disponibles y de toda la información de interés acerca de cada
theoretical basis for future research, in this article we present an art técnica de prueba.
state about the testing techniques evaluation and selection which - No tienen acceso a información pragmática concerniente a cada
contain a set of characterization schemas and a comparison técnica de prueba a menos que ellos la hayan usado antes. Los
between approaches for lead primary studies leading to build desarrolladores no tienden a compartir con otros el
knowledge bases or repositories and in other way we present the conocimiento que adquieren al usar técnicas de pruebas. Lo
existing methods and approaches about the informed selection of cual quiere decir que ellos pierden la oportunidad de aprender
testing techniques for a given project based on repositories a partir de las experiencias de otros.
information. Existen varios esfuerzos en el mundo académico y en la industria
para contar con marcos de trabajo que permitan conducir estudios
primarios para caracterizar las técnicas de pruebas de software de
Keywords: Software testing techniques selection, software testing manera uniforme para generar bases de conocimiento y evidencia
techniques repositories, characterization schema. incremental útil para la realización de estudios secundarios de
manera cotidiana en la industria del software con la finalidad de
evaluar las técnicas y herramientas de pruebas de software en
1. INTRODUCCION contextos particulares de modo que se garantice principalmente
El testing es el componente mas importante de cualquier proceso efectividad y eficiencia en el proceso de pruebas.
de ingeniería de software para producir aplicaciones de alta calidad Existen también métodos y estrategias que se proponen apoyar el
dado que apunta a encontrar errores en el objeto probado y da proceso de selección de una o más técnicas de pruebas de software
confianza en su correcto comportamiento mediante la ejecución del para un contexto dado por las características del proyecto y sistema
objeto probado con valores de entrada. [14] a probar.
Las pruebas de software son caras para la industria y siempre están Según se muestra en la Figura 1, el presente trabajo pretende
limitadas por tiempo y esfuerzo. Aunque hay muchas técnicas de ofrecer una visión integradora de los trabajos realizados en pro de
pruebas, actualmente no hay directrices cientificas para la selección una selección informada de técnicas y herramientas de testing de
de las técnicas apropiadas en diferentes dominios y contextos [7]. software; a manera de soporte teórico a futuros trabajos de
Aunque la cuestión de “cuáles son las técnicas más adecuadas para investigación en el tema. Se ha realizado una revisión preliminar
desarrollar el banco de casos de prueba para probar un Sistema de literatura en cuanto a esquemas de caracterización, métodos,
dado” aparentemente posee enormes dificultades, esta es sin protocolos y frameworks de la realización de estudios primarios, y
embargo una cuestión con la que lidian los testers cada vez que métodos y herramientas para realizar estudios secundarios.
tienen que probar un sistema. ¿Y cómo se responde actualmente a En la sección 2, se muestran los trabajos orientados a la
esta cuestión?: Ni sistemáticamente ni con directrices bien caracterización de técnicas y herramientas de software. En la
definidas. En efecto, de todas las técnicas existentes, algunas nunca sección 3 se presentan tres marcos de trabajo orientados al diseño
son consideradas para usarse y otras son usadas una y otra vez en de estudios primarios como casos de estudio y experimentos.
diferentes proyectos sin siquiera ser examinadas después de su uso Finalmente en la sección 4 relacionada a métodos y herramientas
sean o no realmente útiles [16]. para conducir estudios secundarios, se presentan dos métodos para
la selección y recomendación de técnicas de testing de software y
un método para la recomendación de herramientas de testing de
software.
se tiene acerca de las técnicas de testing. El esquema de
caracterización describe las propiedades de todas las técnicas de
Métodos y
acuerdo al mismo patrón. El esquema hará posible construir un
herramientas
Marcos de para estudios repositorio conteniendo todas las técnicas de interés para una
trabajo para secundarios organización dada.
Esquemas de estudios
Caracterización primarios Tabla 1 – Esquema utilizado en [8]
Elemento Atributo Valor
Aplicabilidad Tipo de Procedural, OO, Independiente
Figura 1- Hacia la selección informada de técnicas de testing lenguaje
Tipo de Basado en componentes, Manejador
En [3], [16] y [17], se menciona la necesidad de realizar estudios
software de base de datos
primarios que proporcionen una base de evidencia y/o
Método Entrada Código fuente, Código intermedio
conocimiento como soporte al proceso de evaluación y selección
para máquinas virtuales, Código de
de técnicas y/o herramientas de testing (La Figura 2 ilustra este máquina, Entradas en ciertos
proceso) que realizan los profesionales de la industria e formatos
investigadores. El proceso de selección podría realizarse mediante Enfoque Control de flujo, Firewall, Slicing,
estudios secundarios, consiguiendo de este modo tomar decisiones Basado en dependencia
de manera informada, lo cual reduciría los riesgos asociados a una Granularidad Sentencia, Función, Clase, Modulo,
inadecuada selección. Componente
Para la realización de estudios primarios, en [17] se han Propiedades Habilidad de Segura
identificado varias barreras como: el consumo de tiempo, costos , detección
resistencia de las empresas a participar en casos de estudio; sin Reducción de Minimización
costos
embargo estas deben superarse para lograr acceder a las ventajas
que supone la toma de decisiones informadas como por ejemplo:
contar con información estructurada que permita realizar Tabla 2 - Esquema presentado en [7]
comparaciones entre técnicas y/o herramientas de testing, Medida de eficiencia
minimizar los riesgos por una sección inadecuada en un contexto 1. Tiempo actual para cada fase
dado, tomar decisiones en base a evidencia y experiencia de forma 2. Tiempo para detector defectos y/o fallas, tiempo para detector el tipo
de defecto.
objetiva, dar lugar al desarrollo de herramientas que den soporte a
3. Cuánto tiempo toma encontrar el primer defecto o falla
la toma de decisiones, entre otros.
4. Opinión personal de los sujetos sobre cada tarea en el proceso (fácil,
difícil, posee problemas secundarios)
5. Tiempo para crear manualmente los casos de prueba (para uno, el
primero y variantes)
6. Cuantos casos de prueba únicos e instancias de casos de prueba se
crean.
Medida de eficacia
1. Número absoluto de cuantos defectos no inyectados, fueron
encontrados comparados con los defectos inyectados.
2. Cantidad de defectos aislados por tipo y severidad del total de
defectos encontrados.
3. Estimación de cobertura
Aplicabilidad de la técnica
1. En qué fase son encontrados(distribuidos) los defectos en el tiempo
2. Juicio personal del sujeto de cada tarea en el proceso (Fácil, difícil,
plantea problemas secundarios, etc.)
3. Facilidad de aprendizaje de la técnica (fácil, difícil, posee problemas
secundarios, etc.)
4. Niveles (código, componente, integración, sub sistema, sistema)
donde es posible usar la técnica.
Figura 2 – Creando un cuerpo de evidencia [17] 5. Generalidad de la técnica
a. Contexto (Sistema operativo, hardware, dominio, etc.)
b. Lenguaje y restricciones (C, C++, Java, y versión/compilador)
2. ESQUEMAS CARACTERIZACION DE 6. Número de variantes de la técnica dentro de cada alcance
TECNICAS Y HERRAMIENTAS DE 7. Evaluación de aplicabilidad de automatización de la técnica, lo cual
TESTING DE SOFTWARE es una evaluación cualitativa. La medida se encuentra en el rango a
partir de (mala, lenta, ineficaz) en una escala flotante hasta (buena,
Vegas en [16], propone un esquema de caracterización como una rápida y eficaz)
solución al problema de cómo identificar información relevante 8. Evaluación del proceso completo.
para la selección de técnicas de testing de software, indica además
que la solución no está limitada a identificar los criterios de Se han encontrado múltiples trabajos que proponen esquemas de
selección útiles, sino tambien provee una infraestructura para caracterización como artefacto base para la realización de estudios
almacenar la información identificada y especificada para cada primarios y secundarios. Estos esquemas organizan sus atributos
técnica existente con el bjetivo de ayudar a los profesionales de bajo distintos criterios como: aplicabilidad, método, agente,
testing con la selección y a los investigadores en testing de herramientas, técnicas, operación, entre otros.
software a enfocar sus investigaciones en el conocimiento que no
El esquema de la Tabla 1, ha sido utilizado para caracterizar 28 Tabla 4 - Esquema de caracterización MBT [5]
técnicas de testing de regresión en base a su aplicabilidad, método Caracterización de técnica Caracterización de proyecto
y propiedades. Modelo usado para representar el Modelo de estructura y
El esquema de la Tabla 2, ha sido presentado como un conjunto de comportamiento/estructura del comportamiento provisto por el
preguntas de medición y control para determinar eficiencia, software a probar. proyecto de software
eficacia y aplicabilidad de técnicas de testing como parte de un Criterio usado para medir la cobertura No aplica.
marco de trabajo experimental para conducir estudios primarios. de las pruebas.
Tabla 3 - Esquema de caracterización presentado en [16] Criterio usado para generar casos de No aplica.
prueba automáticamente.
Elemento Atributo Descripción Entradas requeridas para iniciar el uso No aplica.
Agente Conocimiento Conocimiento requerido para poder de una técnica MBT
aplicar la técnica Limitaciones/restricciones para usar No aplica.
Experiencia Experiencia requerida para poder aplicar una técnica MBT
la técnica Tipo de testing en que la técnica se Tipo de técnica de testing a
Herramientas Identificador Nombre de la herramienta y del puede aplicar. aplicar
fabricante Nivel de testing en el cual la técnica Niveles de testing a ser aplicados
Automatización Parte de la técnica automatizada por la MBT es aplicada. en el proyecto de software
herramienta Formato de las salidas generadas por Tipos de defectos a ser revelados
Costo Costo de la herramienta compra y una técnica MBT.
mantenimiento Características de calidad de software Características de calidad de
Entorno Plataforma (software y hardware) y que la técnica MBT puede evaluar. software requeridas para el
lenguaje de programación que opera la desarrollo.
herramienta Existencia (o no) de una herramienta Herramientas de soporte.
Técnica Soporte El soporte prestado por el fabricante de la que soporte la técnica.
herramienta Costo requerido para utilizar la No aplica.
Comprensibilidad Es o no la técnica fácil de entender herramienta de soporte.
Costo de Cuánto esfuerzo se necesita para aplicar Plataforma de ejecución para usar la No aplica.
aplicación la técnica herramienta de soporte.
Entradas Entradas necesarios para aplicar la Plataforma de ejecución del software Plataforma de ejecución del
técnica bajo el cual la técnica puede correr. software.
Criterio de Generación de casos de prueba y la regla Paradigma de desarrollo de software Paradigma de desarrollo
adecuación de parada bajo el cual la técnica MBT puede adoptado en el proyecto de
Costo para la Costo para identificar los datos de prueba probar software. software.
prueba de datos Lenguaje de programación con el cual Lenguaje de programación usado
Dependencias Relaciones de una técnica con otra la técnica MBT puede probar para el desarrollo del software.
Repetibilidad Si dos personas generan los mismos casos software.
de prueba Necesidad de desarrollo de modelos No aplica.
Casos de Fuentes de Donde encontrar información acerca de la intermedios durante el proceso de
prueba información técnica generación de pruebas.
Completitud La cobertura proporcionada por el Tecnología usada para modelar las Tecnología usada para el
conjunto de casos pruebas generadas. modelado del software.
Precision Cuantos casos de pruebas repetidas Necesidad de resultados de uso de la No aplica.
genera la técnica técnica MBT en proyectos de
Eficacia Que capacidad del conjunto de casos software anteriores.
debe tener para detectar defectos Resultados históricos de uso de una No aplica.
Tipo de defecto Tipos de defectos detectados en el técnica MBT en proyectos de
sistema software anteriores.
Número de casos Número de casos generados por el Proporción de pasos automatizados No aplica.
generados tamaño de la unidad de software por número total de pasos en su
Objeto Elemento Elementos del sistema sobre el que actúa proceso de generación de pruebas.
la prueba Indicación de evaluación No aplica.
Aspecto Funcionalidad del sistema a ensayar experimental de la eficiencia y
Tipo de software Tipo de software que puede ser probado escalabilidad de la técnica MBT.
usando la técnica Nivel de complejidad para ejecutar No aplica.
Lenguaje de Lenguaje de programación que se puede pasos no automatizados durante el
programación utilizar proceso de generación de pruebas.
Método de Método de desarrollo o ciclo de vida a la Existencia de mecanismos de No aplica.
desarrollo que está vinculado trazabilidad entre los modelos del
Tamaño Tamaño que el software debe tener para software y las pruebas generadas.
poder utilizar la técnica Habilidades/conocimiento requeridos Habilidades provistas por el
Proyecto Proyectos de Proyectos anteriores en los que la técnica para usar la técnica MBT. equipo de testigo.
referencia se ha utilizado Existencia de modelos de verificación No aplica.
Herramientas Las herramientas utilizadas en proyectos para evaluar los modelos del software
usadas anteriores antes de la generación de las pruebas.
Personal El personal que trabajaron en proyectos
anteriores
Satisfacción Opinión Opinión general sobre la técnica después El esquema de la Tabla 3, consta de 32 atributos y ha sido utilizado
de haber usado en una versión anterior en [15] para la construcción de un catálogo
Beneficios Beneficios del uso de la técnica de 13 técnicas de testing de software.
Problemas Problemas con el uso de la técnica
El esquema de la Tabla 4, ha sido desarrollado para soportar la En la Figura 1, se puede observar la referencia a los trabajos que
selección de técnicas de testing basado en modelo (MBT: Model presentan esquemas de caracterización, la cantidad de atributos de
Based Testing). Un subconjunto de los atributos del esquema son cada uno y la relación entre algunos de ellos, destacando el
utilizados para encontrar el nivel de adecuación entre un proyecto esquema presentado por Vegas en [16], ya que ha sido la base para
de software y las técnicas de testing, estos atributos, tienen una el desarrollo de los esquemas presentados en [17] y [5] y que
redacción diferente para caracterizar al proyecto y para caracterizar además incluye entre sus atributos la mayoría de los presentados en
a la técnica por lo que en la tabla se presenta a manera de mapeo. los demás esquemas, con excepción a [3], que es
específicamente centrado en el tipo de defectos.
El esquema de la ¡Error! La autoreferencia al marcador no es
válida., se ha presentado como parte de un framework
[8] [9] [19]
metodológico para la realización de estudios primarios mediante
casos de estudio. 17 atributos 7 atributos 32 atributos
El esquema de la Tabla 6 se ha presentado para caracterizar
técnicas de testing en un contexto experimental orientado a
alinear un sistema a probar con las técnicas de testing en base al [4] <<basado en>>
tipo de defectos ODC(Orthogonal Defect Classification) que el 3 atributos [20] en [6]
sistema podría contener y que las técnicas podrían detectar.
22 atributos 25 atributos
[7] Sigrid Eldh, Hans Hansson, Sasikumar Punnekkat, Anders [19] A.A. Zaidan et al., "Evaluation and selection of open-
Pettersson, and Daniel Sundmark, "A Framework for source EMR software packages based on integrated AHP
Comparing Efficiency, Effectiveness and Applicability of and TOPSIS," Journal of Biomedical Informatics, 2014.
Software Testing Techniques," in Testing: Academic and
Industrial Conference - Practice And Research, 2006.