Está en la página 1de 9

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/296480694

Evaluación y selección de técnicas de prueba de software

Article · October 2016

CITATIONS READS
0 522

2 authors:

Ronald Ibarra Glen Dario Rodriguez


Universidad Nacional Agraria de la Selva, Tingo María Universidad Nacional de Ingeniería (Peru)
2 PUBLICATIONS   0 CITATIONS    44 PUBLICATIONS   148 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Generation of software test cases and test suites View project

Software Testing Techniques Recommender System View project

All content following this page was uploaded by Ronald Ibarra on 14 March 2017.

The user has requested enhancement of the downloaded file.


Evaluación y selección de técnicas de prueba de software

Ronald Ibarra Glen Rodriguez


Facultad de Ingeniería Sistemas e Informática Facultad de Ingeniería Industrial y de Sistemas
Universidad Nacional Mayor de San Marcos Universidad Nacional de Ingeniería
Lima, Perú Lima, Perú
Facultad de Ingeniería Informática y Sistemas grodriguez@uni.edu.pe
Universidad Nacional Agraria de la Selva
Tingo María, Perú
ronald.ibarra@unmsm.edu.pe
ronald.ibarra@unas.edu.pe

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

Tabla 5 - Esquema de caracterización presentado en [17]


Elemento Atributo Figura 3- Esquemas de caracterización de técnicas y
Prerequisitos Estática o dinámica herramientas de testing
Tipo de software
Fase de ciclo de vida 3. MARCOS DE TRABAJO PARA
Entorno
Escalabilidad ESTUDIOS PRIMARIOS
Entradas En la Tabla 7, se presenta una comparación de 3 marcos de trabajo
Conocimiento para estudios primarios.
Experiencia Tabla 7 - Marcos de trabajo para estudios primarios
Resultados Salidas
Completitud Framework / Comparación de Evaluación de Basado en tipos
Método técnicas de técnicas y de defectos ODC
Eficacia
testing [7] herramientas [3]
Tipos de defectos
de testing [17]
Tamaño del banco de pruebas
Publicado 2006 2012 2012
Operación Interacción
Tipo Metodológico Metodológico Organizacional
Guía al usuario
Orientado a Diseño de Diseño de casos Diseño de
Fuentes de información
experimentos. de estudio experimentos.
Tareas de aplicabilidad
Comprensibilidad Alcance Técnicas Técnicas y Técnicas
Satisfacción subjetiva Herramientas
Esfuerzo Limitado a SI NO SI
Madurez inyección de
defectos
Obtención de la herramienta Obtención de la herramienta
Criterios de Eficacia Eficacia Habilidad para
evaluación Eficiencia Eficiencia detectar defectos
Aplicabilidad Satisfacción Costo detección
Tabla 6 - Esquema de caracterización en [3] subjetiva defectos
Capacidad de detección de defectos Actitud hacia tipo
1. ¿Cuál de las técnicas comparadas detecta el mayor porcentaje de de defecto
defectos respecto a los presentes inicialmente? Base de No indicada ISO 9241-11: ODC (Chillarege
2. ¿El porcentaje de fallos detectados depende de la cantidad inicial de criterios de 1998 et al., 1992)
fallos en el programa? medición
3. ¿El porcentaje de defectos detectados depende del tipo de software Instanciación Académica Académica , en Académica
elegido? la industria
Costo de detección de defectos Técnicas para Random, Fast Search based Functional
1. ¿Cuál de las técnicas detecta el mayor número de defectos en el las que fue Anti- structural Statistical
mismo tiempo de prueba (tasa: El mayor # de defectos/h ) asumiendo instanciado Random, testing, Search Stress
el esfuerzo personal como medida de costo (hora persona). Equivalence Based Robustness
2. El ratio #defectos/h (tasa de detección) depende de la cantidad classes, Boundary Functional
inicial de defectos? value, heuristic Testing, Web
3. ¿La tasa de detección depende del tipo de software elegido? method testing: model-
Actitud hacia el tipo de fallos based testing,
1. Dado un tipo de defecto, ¿Cuál de las técnicas disponibles detecta el coverage-based
mayor porcentaje de defectos de tal tipo (son los defectos de un tipo as testing, black-
fácilmente detectable por una técnica en particular que con otra)? box testing and
2. ¿Es una técnica dada más propensa a detector algún tipo de defecto state-based
que otras? testing
En [7], Eldh propone un framework para comparar la eficiencia, infraestructura de pruebas necesaria para la técnica, tiempo para
eficacia y aplicabilidad de técnicas de testing de software, probar y observar fallas, tiempo para identificar tipos de defectos
orientado al diseño de experimentos, el cual consiste en los y causas para cada falla observada. Mientras que en [7] la
siguientes pasos: (1) preparar muestras de código con defectos eficiencia es determinada a partir de: tiempo (planificación,
conocidos, (2) seleccionar una técnica de testing, (3) realizar el implementación, ejecución), tiempo para detectar defectos e
experimento aplicando la técnica y recolectar datos, finalmente (4) identificar su tipo, tiempo para encontrar el primer defecto o la
analizar los datos, comparar las técnicas y evaluar resultados. El primera falla, juicio de cada sujeto participante en las tareas de
experimento debe repetirse con distintas técnicas y con nuevas prueba (fácil, difícil, etc.), tiempo para crear casos de prueba
muestras de código (con nuevos defectos inyectados) hasta tener manualmente, cantidad de instancias únicas de los casos de
suficientes datos para realizar sugerencias. prueba son creadas (numero por caso de prueba/número de
El método indicado propuesto por Cotroneo en [3] comprende dos variantes). La eficacia por su lado en [17], se determina a partir
grandes pasos: el primero, consiste en construir un conjunto de de: número de casos de prueba diseñados o generados, número
modelos predictivos para caracterizar una aplicación de software de casos de prueba generados inválidos, número de casos de
desde la perspectiva del tester quien es el interesado en saber prueba generados repetidos, numero de fallas observadas,
cuántos defectos tiene la aplicación y de qué tipo son los defectos numero de defectos encontrados, numero de falsos positivos,
usando ODC(Orthogonal Defect Classification); el paso siguiente numero de falsos negativos, tipo y causa de los defectos
define un procedimiento basado en experimentos controlados para encontrados, estimación de cobertura; mientras que en [7] se
caracterizar las técnicas de testing en términos de tipos de defectos determinar a partir de: Numero de defectos encontrados
ODC que son propensas a detectar; una vez elegido el conjunto comparado con los inyectados, defectos encontrados por cada
de técnicas de interés, la caracterización consiste en evaluar su nivel de severidad del defecto, estimación de cobertura de flujo
performance respecto a tipos de defectos ODC que potencialmente de datos y control de flujo. Es importante mencionar la similitud
pueden afectar al sistema, costo de detección y eficacia en la entre satisfacción subjetiva y aplicabilidad que presentan como
detección. De este modo podría relacionarse el Sistema a probar factores de evaluación los framewoks propuestos en [17], y [7]
con las técnicas de testing mediante el tipo de defectos ODC que el respectivamente; el primero considera como criterio de
sistema es propenso a contener y que una o más técnicas tiende a evaluación la satisfacción subjetiva a partir de indicadores como:
detectar. percepción de complejidad, intención de uso futuro, facilidad de
Como una mejora a [18], en [17] se presenta un framework uso, necesidad de soporte adicional, percepción de
metodológico orientado al diseño de casos de estudio, cuyos inconsistencias, facilidad de aprendizaje, etc., utilizando para su
criterios de evaluación son la eficiencia, la eficacia y la satisfacción medición un cuestionario denominado System Usability Score
subjetiva; el framework consta de procedimientos e indicaciones (SUS), diagramas de Ven y nube de palabras para agrupar
exhaustivas organizados en siete partes: (1) Objetivo - ¿Que se reacciones de los sujetos, así como reacciones faciales
espera conseguir?, (2) Casos o tratamiento - ¿Que se estudia o emocionales durante las entrevistas y por ultimo opiniones
evalúa?, (3) Sujetos - ¿Quiénes aplican las técnicas/herramientas?, subjetivas acerca de las técnicas y / o herramientas evaluadas; el
(4)Objetos - ¿Cuáles son los proyectos piloto?, (5) Variables y segundo framework a su vez contempla como criterio de
métricas - ¿Qué datos recolectar?, (6)Protocolo - ¿Cómo ejecutar evaluación, la aplicabilidad a partir de indicadores como: fase en
el estudio y recolectar los datos? y (7)Amenazas a la validez de los la que se encuentran los errores, facilidad de aprendizaje, niveles
estudios realizados. donde es posible usar la técnica, evaluación del proceso
A continuación se resaltan algunos aspectos en que se parecen y/o completo, generalidad de la técnica(SO, hardware, dominio,
diferencian los frameworks arriba mencionados: lenguajes soportados) , etc., aunque no se indica las estrategias o
 Metodológico vs. Organizacional: en [7] y [17] se presentan técnicas aplicadas para su medición. Más de un indicador
frameworks metodológicos, mientras que en [3] se presenta un considerado en ambos frameworks se contempla una medición
framework organizacional. Un framework organizacional, subjetiva de la eficiencia y eficacia como complemento para
generalmente está enfocado en aportar en el proceso de determinar la satisfacción y/o aplicabilidad de una técnica o
evaluación de técnicas de testing mediante esquemas de herramienta de testing. Mencionaremos de forma separada los
caracterización, líneas guías, precauciones a tener en cuenta para indicadores utilizados en [3], dado que sus factores de evaluación
que los estudios sean diseñados cuidadosamente minimizando difieren de los otros frameworks por lo menos a alto nivel; así la
los factores de confusión; a diferencia del metodológico que habilidad para detección de defectos se determina a partir de:
propone: el cómo evaluar, el cómo definir las preguntas de porcentaje de defectos detectados independientemente de su tipo;
investigación, las variables que deben medirse, y que amenazas el costo de detección de defectos se determina por: defectos
a la validez especificas pueden presentarse. detectados en un tiempo dado respecto al esfuerzo
 Utilidad: Un framework puede utilizarse para realizar estudios (personas/hora), a su vez la actitud hacia el tipo de defectos es
experimentales tal como se propone en [3] y [7] o para la determinado por: % de defectos detectados por tipo y la
conducción de casos de estudio como se propone en [17]. Es propensión a detectar cierto tipo de defecto.
importante resaltar que en el caso de frameworks orientados al  Instanciaciones: se han encontrado múltiples instanciaciones
diseño de experimentos para la evaluación de técnicas de testing, aunque a excepción del framework propuesto en [17] que ha sido
generalmente requieren hacer uso de la inyección de defectos, instanciado en la industria en proyectos reales mencionados en
mientras que en los de casos de estudio, esto es opcional. [18]:2011, [17]:2012, [1]:2014 y [2], [9]:2014, los demás han
 Factores de evaluación: los 3 frameworks encontrados sido instanciados en ambientes académicos según se indica en
presentan coincidencias a alto nivel en cuanto a los factores de [7]:2006 y [3]:2012.
evaluación de las técnicas y/o herramientas de testing de
software, sin embargo difieren en cuanto a los atributos o 4. ESTUDIOS SECUNDARIOS
indicadores necesarios para su medición. En [17], la eficiencia es
determinada a partir de: tiempo para el aprendizaje de la técnica, Según [17], existe una necesidad real en la industria por tener guías
tiempo para diseñar los casos de prueba, tiempo para instalar la sobre que técnicas de testing usar para distintos objetivos de
testing, y cuan usables (eficaces, eficientes, satisfactorias) son estas Tal como se muestra en la Tabla 8, se han encontrado tres trabajos
técnicas. Actualmente, estas guías no existen, tales guías podrían asociados a la evaluación y selección de técnicas y herramientas de
obtenerse realizando estudios secundarios sobre una base de pruebas de software: en [16]:2005 presentan un esquema de
evidencia consistente en la evaluación de casos de estudio y caracterización y un protocolo (Instanciado en [11]:2013) que
comparando técnicas y herramientas de testing. consiste en: (1)identificar los valores deseados de los atributos de
Para la selección o evaluación de técnicas de testing mediante las técnicas según el esquema de caracterización, así como la
estudios secundarios, es muy importante la homogeneidad en el eficacia y los tipos de defectos a encontrar, (2) identificar si hay
diseño y conducción de los estudios primarios, es decir que en lo otros atributos que pueden restringir el uso de la técnica a elegir
posible deben haberse realizado usando un mismo framework, (por ejemplo: personal necesario), (3) comparar los valores
checklist, esquema de caracterización, entre otros. [16] . deseados con los valores de cada técnica que contiene el repositorio
4.1. Métodos de evaluación y selección de instanciaciones preexistente, (4) si no se obtienen técnicas que
cumplan con los valores deseados, se debe relajar alguna
Tabla 8 - Métodos de evaluación y selección restricción del paso (3), (5) examinar los valores de los atributos de
Método/Herra Characterizati Porantim [5] MENTOR [13] las técnicas preseleccionadas para tomar una decisión
mienta on schema Como una mejora al método presentado en [4], en [5] se presenta
[16] un método limitado a Model-Based Testing (MBT) soportado por
Publicado 2005 2014 2014
su respectiva herramienta “porantim” que a partir de un catálogo
Alcance Técnicas de Técnicas de Herramientas
testing testing basado en de testing
de técnicas de testing, extrae un conjunto de técnicas más
modelo adecuadas para un proyecto dado para luego hacer un análisis de
Mecanismos Comparación Comparación Comparación impacto de usar una técnica o un conjunto combinado de ellas
Análisis de sobre las variables de análisis (cobertura, esfuerzo ahorrado en el
impacto modelado y recursos humanos) y sugerir un conjunto de
Basado en SI SI SI alternativas de combinación sobre las cuales los testers deberán
métricas tomar una decisión final de manera informada. El método utiliza el
Tecnología de Provee un Provee Provee un coeficiente de Jaccard [10] para convertir los valores cualitativos
sugerencia catálogo de alternativas de ranking de los atributos de caracterización en valores cuantitativos como
técnicas combinación con
paso previo a la representación vectorial del proyecto y de cada
análisis de
impacto técnica de testing existente en el catálogo; para luego encontrar el
Soporta NO SI NO nivel de adecuación de una técnica respecto al proyecto utilizando
combinación la medida de distancia euclidiana. Por ultimo MENTOR es un
Criterios de No aplica Software Project NO aplica método soportado por herramientas propuesto por en [13]:2014
análisis para la Coverage (SPC) cuyo objetivo es ayudar en la selección de herramientas de testing
combinación Saved Modelling tomando como base un catálogo de herramientas de testing
Effort (SME) caracterizadas mediante una misma taxonomía preexistente y a
Human Resources partir de los datos de contexto del proyecto y del proceso de
Suitability
desarrollo que sigue la organización, así como un conjunto de
Nivel de Bajo (la Medio (la Medio (La
automatización decisión es decisión es decisión es criterios de selección que representan mayor importancia para los
de la decisión soportada soportada por soportada por interesados, elabora un ranking de las herramientas teniendo, sobre
completamente herramienta y herramienta y el cual los interesados deberá decidir.
por humano) humano) humano)
Métodos y Ad-hoc basada Similitud, kNN AHP, 4.2. Validación de los métodos de selección y
técnicas para en catálogo Basada en MAUT(Multi
toma de catálogo Attribute Utility evaluación
decisión Theory) El esquema de caracterización y protocolo de selección propuestos
Criterios de Completitud, Completitud, Eficacia en [16], se evalúan mediante experimentos que confrontan los
validación del eficacia, eficacia, (Oráculo hecho
método eficiencia, eficiencia. por 3 expertos)
resultados de usar el esquema y protocolo frente a utilizar libros
satisfacción, (Oráculo hecho acerca de técnicas de software para realizar la selección, utilizando
usabilidad. por 2 expertos) como factores de evaluación: eficiencia, usabilidad, satisfacción,
(Esquema vs. completitud y eficacia.
libros) El método Porantim presentado en [5], es evaluado en un
Estrategia de Esquema vs. Esquema vs. MENTOR vs. experimento con dos grupos diferentes, el primero conformado por
validación libros porantim EXPERTOS estudiantes de pregrado con poca experiencia en ingeniería de
Nº atributos del 32 25 No aplica, software y testing, el segundo por estudiantes de doctorado con más
esquema de utiliza
experiencia en ingeniería de software y testing. El objetivo fue
caracterización taxonomía
Alimentación Mediante Mediante revisión No aplica
evaluar la completitud, eficacia y eficiencia de usar Porantim
del revisión de de literatura (julio comparado al método presentado en [16], encontrándose que
repositorio/catá literatura 2006). mejora la efectividad y eficiencia del proceso de selección y que
logo. (2002). puede favorecer la completitud.
Nº de técnicas 13 técnicas 219 técnicas MBT No aplica MENTOR, un método de recomendación de herramientas de
del catálogo diferentes (+200 papers) testing propuesto en [13] es evaluado contrastando los resultados
Representativas de la selección realizada por expertos en testing frente a los
de diferentes proporcionados por MENTOR, encontrándose coincidencias en el
familias
primer nivel del ranking, aunque no necesariamente en los
siguientes niveles, lo cual según los autores podría deberse a que
los expertos conocían y han considerado características de las 4.5. Base de conocimientos y su
herramientas evaluadas que no son necesarias para los proyectos
de los experimentos, mientras que mentor solo tuvo en cuenta los mantenimiento
criterios necesarios para el contexto de los proyectos de los En [15], se presenta un catálogo de 13 técnicas de testing las que
experimentos. forman parte de cuatro familias de técnicas de testing (funcional,
4.3. Toma de decisiones multicriterio control de flujo, flujo de datos, mutación) y en [6], se presenta un
catálogo de 219 técnicas o enfoques MBT (Model Based Testing).
AHP es una técnica para toma de decisiones que utiliza En ambos casos los catálogos fueron realizados mediante revisión
comparación por pares, así como el juicio de experto para derivar de literatura técnica cuya evidencia está conformada por ejemplos,
escalas de prioridad entre los criterios de selección. Las pruebas de concepto, reportes de experiencia industrial,
comparaciones son realizadas utilizando una escala de juicios experimentación y especulación.
absoluta que representa cuanto más un elemento domina a otro
respecto a un atributo dado. Mediante la creación de una matriz de La base de conocimiento debe ser refinada con el tiempo mediante
comparación de criterios, esta técnica genera un conjunto de pesos agregación iterativa de conocimiento producido en la organización
que representan el grado de preferencia entre criterios, luego se [3].
debe realizar una matriz de comparación por cada crierio. (T. Saaty, Como se muestra en la Figura 4, proponen un mecanismo que
2008 referenciado en [13]). sugiere una forma de mantener actualizada esta base de
TOPSIS: Es una técnica sobre cuyas bases se ha desarrollado el conocimiento, por un lado a partir de la información provista por
método presentado en [5] para ordenar las preferencias según su los testers (consumidores) proveniente de sus experiencias en el
similitud con la solución ideal (Technique for Order preference by uso de técnicas de testing, y por otro lado a partir de información
Similarity to Ideal Solution), y se usa para calcular las ventajas provista por investigadores en el área (productores) proveniente del
relativas a cada alternativa (individualmente); se considera que la resultado de sus investigaciones en el desarrollo de nuevas técnicas
mejor alternativa a elegir es aquella que tiene la distancia más corta así como en el estudio de las condiciones de aplicabilidad de las
hacia la solución ideal positiva y la más larga hacia la solución ideal ya existentes. Un bibliotecario participará de manera indirecta
negativa. TOPSIS ha sido utilizada también en otros dominios, tal supervisando la información para el mantenimiento del repositorio.
como en el trabajo presentado por Zaidan en [19], referido a
selección de paquetes de software EMR usando AHP y TOPSIS,
de manera simialar se ha usado para la selección de sistemas de
gestión de contenido en [12].
MAUT: (Multi Attribute Utility Theory), es un método utilizado en
[13] como complemento a AHP de modo tal que luego de obtener
los pesos que indican la escala de preferencia por los criterios de
selección, se evalúa las alternativas utilizando una función de
utilidad. MAUT asigna un valor de utilidad a cada acción que Figura 4 - Uso de repositorio [16]
representa la preferencia hacia un criterio. De este modo se tendrá
al final una matriz de preferencia en una única escala de 0 a 1.
5. CONCLUSIONES
4.4. Problemas de los métodos de evaluación y
Se han encontrado disponibles 6 esquemas de caracterización de
selección técnicas de testing de software, lo cual ha hecho posible construir
En los trabajos de evaluación y selección de técnicas de testing, se bases de conocimiento y de evidencia, lo cual a su vez ha permitido
encuentran varios problemas entre los cuales podríamos el desarrollo de métodos y herramientas para la selección y
mencionar: (1)la posible subjetividad de los testers para asignar evaluación de técnicas de testing de software. Entre los esquemas
importancia a los criterios de decisión, (2)la presencia de datos con de caracterización, destaca el de Vegas [16] por su capacidad de
valores faltantes en los repositorios preexistentes a partir de los ser adaptado a distintos contextos tal como ha quedado demostrado
cuales se hacen sugerencias de técnicas de testing, (3) múltiple con su adaptación en [6](método de selección basado en catálogo)
terminología que podría usarse para indicar los valores de los y [17](marco de trabajo para conducir casos de estudio que cuenta
atributos para caracterizar una técnica o herramienta. con múltiples instanciaciones en la industria), por lo que constituye
Entre los métodos revisados, se abordan algunos de los problemas una base escalable y adaptable para el desarrollo de otros esquemas
arriba mencionados, por ejemplo: Porantim [5] no pide los pesos de caracterización para contextos genéricos específicos en futuros
de los atributos a los testers, los obtiene a partir de un estudio trabajos.
realizado con investigadores, estos pesos fueron obtenidos como Se han encontrado catálogos de técnicas de testing de software
parte de la construcción del esquema de caracterización. Sin construidos mediante revisión de literatura técnica haciendo
embargo el punto de vista de los investigadores podría no ser un referencia a múltiples tipos de evidencia (pruebas de concepto,
representativo de los profesionales de testing de software en la experiencia industrial, experimentación, especulación), sin
industria; respecto a la diversidad de terminología, en [13] se ha embargo no se han encontrado disponibles aún catálogos o
desarrollado una herramienta Thesaurus, para normalizar la repositorios sistematizados cuyas evidencias se hayan generado
terminología utilizada en la caracterización de las herramientas de mediante un mismo marco de trabajo o protocolo. No obstante, el
testing en cuanto a actividades, tareas y conceptos utilizados en el framework presentado en [17]cuenta con múltiples instanciaciones
proceso de desarrollo de software, cuyas equivalencias deben ser en la industria, por lo que podría emplearse en más organizaciones
mantenida por un experto del dominio. a fin de implementar bases de conocimiento sistematizadas sobre
las técnicas y herramientas de testing utilizadas en sus proyectos,
lo cual permitiría conducir estudios secundarios en pro de una
selección informada de técnicas y herramientas de testing de
software; incluso sería posible la colaboración entre
organizaciones dado que el marco de trabajo caracteriza no solo la [8] E. Engstrom, P. Runeson, and M. Skoglund, "A systematic
técnica si no el contexto (proyecto, sistema a probar, entre otros review on regression test selection techniques," in
aspectos) en que se instancia. Information and Software Technology, 2010, pp. 14-30.
Los métodos y herramientas encontrados para asistir la toma de
decisiones en la selección y evaluación de técnicas de testing, [9] Nelly Condori Fernández et al., "Analyzing the
utilizan esquemas de caracterización para: (1) adquirir información
Applicability of a Combinatorial Testing Tool in an
sobre los proyectos y/o software a probar, y (2) para
catalogar/evaluar las técnicas de testing; y entre las técnicas usadas Industrial Environment," in EASE’14, Londres, 2014.
en los métodos de selección y evaluación de técnicas de testing, de
manera análoga a la selección de tecnología en otros dominios, [10] Paul Jaccard, "Étude comparative de la distribution florale
destacan AHP, TOPSIS y MAUT, lo cual se condice con la dans une portion des Alpes et des Jura," Bulletin del la
naturaleza multiatributo de las técnicas de testing de software y los Société Vaudoise des Sciences Naturelles, no. 37, pp. 547-
proyectos en los que son instanciadas. 579, 1901.
Si bien es cierto los métodos de selección de técnicas y
herramientas de testing encontrados han logrado demostrar su [11] Kazeem Olorisade Babatunde, Sira Vegas, and Natalia
eficacia y eficiencia frente a métodos tradicionales como el uso de Juristo, "Determining the effectiveness of three software
libros, es importante tener en cuenta que estos métodos requieren evaluation techniques through informal aggregation,"
del mantenimiento y actualización de su base de conocimiento o Information and Software Technology, pp. 1590–1601,
repositorio, por lo que es necesario encontrar maneras de hacerlo 2013.
de tal modo que sean transferibles y sostenibles para las
organizaciones en la industria.
[12] Basar Oztaysi, "A decision model for information
technology selection using AHP integrated TOPSIS-Grey:
REFERENCIAS The case of content management systems," Knowledge-
[1] E Brosse, A Bagnato, Tanja Vos, and N Condori, Based Systems, 2014. [Online].
"Evaluating the FITTEST automated testing tools in http://dx.doi.org/10.1016/j.knosys.2014.02.010
SOFTEAM: an industrial case study," Utrecht University,
2014. [13] Marina Pilar, Jocelyn Simmonds, and Hernán Astudillo,
"Semi-automated Tool Recommender for Software
[2] Nelly Condori Fernández, Peter M Kruse, Tanja E.J. Vos, Development Processes," Electronic Notes in Theoretical
Etienne Brosse, and Alessandra Bagnato, "Combinatorial Computer Science, pp. 95–109, 2014.
Testing in an Industrial Environment–Analyzing the
Applicability of a Tool," in 9th International Conference on [14] Zhongsheng Qian, Huaikou Miao, and Hongwei Zeng, "A
the Quality of Information and Communications practical web testing model for web application testing," in
Technology, 2014. Third International IEEE Conference on Signal-Image
Technologies and Internet-Based Systems, Shanghai, 2007,
[3] Domenico Cotroneo, Roberto Pietrantuono, and Stefano pp. 434-441.
Russo, "Testing techniques selection based on ODC fault
types and software metrics," Journal of Systems and [15] Sira Vegas, "Characterization schema for selecting software
Software, 2012. testing techniques," Universidad Politécnica de Madrid,
Madrid, PhD Thesis 2002.
[4] Arilo Claudio Dias-Neto and Guilherme Horta Travassos,
"Model-based testing approaches selection for software [16] Sira Vegas and V.R. Basili, "A characterization schema for
projects," Information and Software Technology, 2009. Software Testing Techniques," Journal of Empirical Softw.
Engineering, pp. 437-466, 2005.
[5] Arilo Claudio Dias-Neto and Guilherme Horta Travassos,
"Supporting the Combined Selection of Model-Based [17] Tanja Vos, Beatriz Marin, Maria Jose Escalona, and
Testing Techniques," IEEE TRANSACTIONS ON Alejandro Marchetto, "A methodological framework for
SOFTWARE ENGINEERING, 2014. evaluating software testing techniques and tools," in 12th
International Conference on Quality Software, Xi’an,
[6] ARILO C. DIAS-NETO and GUILHERME H. China, 2012, pp. 230–239.
TRAVASSOS, "A Picture from the Model-Based Testing
Area: Concepts, Techniques, and Challenges," ADVANCES [18] Tanja Vos et al., "Evaluating Software Testing Techniques
IN COMPUTERS, pp. 45-120, 2010. and Tools," in XVI. JISBD, 2011, pp. 531–536.

[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.

View publication stats

También podría gustarte