El método del árbol de clasificación es un método para el diseño de pruebas, [1] ya que se utiliza en diferentes áreas del desarrollo de software . [2] Fue desarrollado por Grimm y Grochtmann en 1993. [3] Los árboles de clasificación en términos del método del árbol de clasificación no deben confundirse con los árboles de decisión .
El método del árbol de clasificación consta de dos pasos principales: [4] [5]
- Identificación de aspectos relevantes de la prueba (las llamadas clasificaciones ) y sus valores correspondientes (llamadas clases ), así como
- Combinación de diferentes clases de todas las clasificaciones en casos de prueba .
La identificación de los aspectos relevantes de la prueba generalmente sigue la especificación (funcional) (por ejemplo , requisitos , casos de uso ...) del sistema bajo prueba . Estos aspectos forman el espacio de datos de entrada y salida del objeto de prueba.
El segundo paso del diseño de prueba sigue los principios del diseño de prueba combinatoria. [4]
Si bien el método se puede aplicar con un lápiz y un papel, la forma habitual implica el uso del Editor del árbol de clasificación , una herramienta de software que implementa el método del árbol de clasificación. [6]
Solicitud
Los requisitos previos para aplicar el método del árbol de clasificación (CTM) es la selección (o definición) de un sistema sometido a prueba . El CTM es un método de prueba de caja negra y es compatible con cualquier tipo de sistema bajo prueba. Esto incluye (pero no se limita a) los sistemas de hardware , sistemas de hardware y software integrados, sencillos sistemas de software , incluyendo software embebido , interfaces de usuario , sistemas operativos , programas de análisis , y otros (o subsistemas de los sistemas mencionados).
Con un sistema seleccionado bajo prueba, el primer paso del método del árbol de clasificación es la identificación de los aspectos relevantes de la prueba. [4] Cualquier sistema sometido a prueba puede describirse mediante un conjunto de clasificaciones, con parámetros de entrada y salida. (Los parámetros de entrada también pueden incluir estados del entorno , condiciones previas y otros parámetros poco comunes). [2] Cada clasificación puede tener cualquier número de clases disjuntas, que describen la ocurrencia del parámetro. La selección de clases sigue típicamente el principio de partición de equivalencia para casos de prueba abstractos y análisis de valor límite para casos de prueba concretos. [5] Juntas, todas las clasificaciones forman el árbol de clasificación. Con fines semánticos, las clasificaciones se pueden agrupar en composiciones .
El número máximo de casos de prueba es el producto cartesiano de todas las clases de todas las clasificaciones en el árbol, lo que rápidamente da como resultado un gran número de problemas de prueba realistas. El número mínimo de casos de prueba es el número de clases en la clasificación con más clases de contenido.
En el segundo paso, los casos de prueba se componen seleccionando exactamente una clase de cada clasificación del árbol de clasificación. La selección de casos de prueba originalmente [3] era una tarea manual que debía realizar el ingeniero de pruebas .
Ejemplo
Para un sistema de base de datos , se debe realizar un diseño de prueba. Aplicando el método del árbol de clasificación, la identificación de los aspectos relevantes de la prueba da las clasificaciones: Privilegio del usuario , Operación y Método de acceso . Para los privilegios de usuario , se pueden identificar dos clases: usuario regular y usuario administrador . Hay tres Operaciones : Agregar , Editar y Eliminar . Para el método de acceso , nuevamente se identifican tres clases: herramienta nativa , navegador web , API . La clase de navegador web se refina aún más con el aspecto de prueba Marca ; aquí se incluyen tres clases posibles: Internet Explorer , Mozilla Firefox y Apple Safari .
El primer paso del método del árbol de clasificación ahora está completo. Por supuesto, hay otros aspectos de prueba posibles para incluir, por ejemplo, velocidad de acceso de la conexión, número de registros de la base de datos presentes en la base de datos, etc. Usando la representación gráfica en términos de un árbol, los aspectos seleccionados y sus valores correspondientes pueden ser rápidamente revisado.
Para las estadísticas, hay 30 casos de prueba posibles en total (2 privilegios * 3 operaciones * 5 métodos de acceso). Para una cobertura mínima, 5 casos de prueba son suficientes, ya que hay 5 métodos de acceso (y el método de acceso es la clasificación con el mayor número de clases disjuntas).
En el segundo paso, se han seleccionado manualmente tres casos de prueba:
- Un usuario habitual agrega un nuevo conjunto de datos a la base de datos utilizando la herramienta nativa.
- Un usuario administrador edita un conjunto de datos existente utilizando el navegador Firefox.
- Un usuario normal elimina un conjunto de datos de la base de datos mediante la API.
Mejoras
Fondo
La marca comunitaria introdujo las siguientes ventajas [2] sobre el método de partición por categorías [7] (CPM) de Ostrand y Balcer:
- Notación : CPM solo tenía una notación textual, mientras que CTM usa una representación gráfica en forma de árbol.
- Mejoras La selección de un representante puede influir en la aparición de otros representantes.
- CPM solo ofrece restricciones para manejar este escenario.
- CTM permite el modelado de refinamientos jerárquicos en el árbol de clasificación, también llamados dependencias implícitas .
- Soporte de herramientas : la herramienta presentada por Ostrand y Balcer solo admitía la generación de casos de prueba, pero no la partición en sí.
- Grochtmann y Wegener presentaron su herramienta, el Classification Tree Editor (CTE) que admite tanto la creación de particiones como la generación de casos de prueba. [6]
Método de árbol de clasificación para sistemas integrados
El método del árbol de clasificación primero estaba destinado al diseño y la especificación de casos de prueba abstractos. Con el método de árbol de clasificación para sistemas integrados, [8] también se puede realizar la implementación de pruebas. Varias características adicionales están integradas con el método:
- Además de los casos de prueba atómicos, se pueden especificar secuencias de prueba que contienen varios pasos de prueba.
- Se puede especificar un tiempo concreto (por ejemplo, en segundos, minutos ...) para cada paso de prueba.
- Se pueden especificar transiciones de señal (por ejemplo , lineal , spline , sinusoidal ...) entre clases seleccionadas de diferentes pasos de prueba.
- Se puede modelar una distinción entre evento y estado , representada por diferentes marcas visuales en una prueba.
La herramienta de prueba de módulos y unidades Tessy se basa en esta extensión.
Reglas de dependencia y generación automatizada de casos de prueba
Una forma de modelar las restricciones es utilizar el mecanismo de refinamiento en el método del árbol de clasificación. Sin embargo, esto no permite modelar restricciones entre clases de diferentes clasificaciones. Lehmann y Wegener introdujeron las reglas de dependencia basadas en expresiones booleanas con su encarnación del CTE. [9] Otras características incluyen la generación automatizada de conjuntos de pruebas utilizando un diseño de prueba combinatorio (por ejemplo , pruebas de todos los pares ).
Generación de casos de prueba priorizada
Las mejoras recientes al método del árbol de clasificación incluyen la generación de casos de prueba priorizados : Es posible asignar ponderaciones a los elementos del árbol de clasificación en términos de ocurrencia y probabilidad de error o riesgo. Estos pesos se utilizan luego durante la generación de casos de prueba para priorizar los casos de prueba. [10] [11] Las pruebas estadísticas también están disponibles (por ejemplo, para pruebas de desgaste y fatiga ) interpretando los pesos de los elementos como una distribución de probabilidad discreta .
Generación de secuencia de prueba
Con la adición de transiciones válidas entre clases individuales de una clasificación, las clasificaciones se pueden interpretar como una máquina de estado y, por lo tanto, todo el árbol de clasificación como un diagrama de estado . Esto define un orden permitido de usos de clases en los pasos de prueba y permite crear automáticamente secuencias de prueba. [12] Hay diferentes niveles de cobertura disponibles, como cobertura estatal , cobertura de transiciones y cobertura de pares de estados y pares de transición.
Restricciones numéricas
Además de las reglas de dependencia booleanas que se refieren a las clases del árbol de clasificación, las Restricciones Numéricas permiten especificar fórmulas con clasificaciones como variables, que evaluarán la clase seleccionada en un caso de prueba. [13]
Editor de árbol de clasificación
El Editor del árbol de clasificación (CTE) es una herramienta de software para el diseño de pruebas que implementa el método del árbol de clasificación. [14] [15] [16] [17]
Con el tiempo, han aparecido varias ediciones de la herramienta CTE, escritas en varios lenguajes de programación (en ese momento populares) y desarrolladas por varias empresas.
CTE 1
La versión original de CTE se desarrolló en las instalaciones de Daimler-Benz Industrial Research [6] [16] en Berlín. Apareció en 1993 y fue escrito en Pascal . Solo estaba disponible en sistemas Unix .
CTE 2
En 1997 se llevó a cabo una importante reimplementación que condujo a CTE 2. El desarrollo se realizó nuevamente en Daimler-Benz Industrial Research. Fue escrito en C y disponible para sistemas win32 .
El CTE 2 recibió la licencia de Razorcat en 1997 y es parte de la herramienta de prueba unitaria TESSY . El editor de árbol de clasificación para sistemas embebidos [8] [15] también se basa en esta edición.
Razorcat ha estado desarrollando el CTE desde 2001 y CTE ha registrado una marca en 2003.
La última versión CTE 3.2 se publicó con la herramienta TESSY 4.0 en 2016. Observe la tabla de Versiones a continuación.
CTE 4
El CTE 4 se implementó en TESSY 4.1.7 como un complemento de Eclipse en 2018. La última versión de CTE 4 aún se está desarrollando como parte de TESSY 4.3 en 2021.
CTE XL
En 2000, Lehmann y Wegener introdujeron las Reglas de dependencia con su encarnación del CTE, el CTE XL (eXtended Logics). [9] [14] [17] [18] Otras características incluyen la generación automatizada de conjuntos de pruebas utilizando un diseño de prueba combinatorio (por ejemplo , pruebas de todos los pares ). [19]
El desarrollo fue realizado por DaimlerChrysler . CTE XL fue escrito en Java y fue compatible con sistemas win32. CTE XL estaba disponible para descargar de forma gratuita.
En 2008, Berner & Mattner adquirió todos los derechos sobre CTE XL y continuó el desarrollo hasta CTE XL 1.9.4.
CTE XL Profesional
A partir de 2010, Berner & Mattner desarrolló CTE XL Professional. [10] Se realizó una reimplementación completa, nuevamente usando Java pero esta vez basado en Eclipse . CTE XL Professional estaba disponible en sistemas win32 y win64 .
Los nuevos desarrollos incluyeron:
- Generación de casos de prueba priorizados: es posible asignar ponderaciones a los elementos del árbol de clasificación en términos de ocurrencia y probabilidad de error o riesgo. Estos pesos se utilizan luego durante la generación de casos de prueba para priorizar los casos de prueba. [10] [20] También se encuentran disponibles pruebas estadísticas y basadas en riesgos .
- Generación de secuencias de prueba [12] mediante sistemas de agentes múltiples
- Restricciones numéricas [13]
TESTONA
En 2014, Berner y Mattner comenzaron la liberación de su editor de árbol de clasificación bajo la marca nombre Testona .
Una edición gratuita de TESTONA todavía está disponible para descargar de forma gratuita, sin embargo, con funcionalidad reducida.
Versiones
Versión | Fecha | Comentario | Escrito en | SO |
---|---|---|---|---|
CTE 1.0 | 1993 | Versión original, [6] [16] limitada a 1000 casos de prueba (¡arreglo!) | Pascal | Unix |
CTE 2.0 | 1998 | Versión de Windows, [15] número ilimitado de casos de prueba | C ++ | win32 |
CTE 2.1 | 2003 | Versión del sistema integrado de Razorcats que forma parte de la herramienta TESSY . | C ++ | win32 |
CTE XL 1.0 | 2000 | Reglas de dependencia, generación de casos de prueba [9] [14] [17] | Java | win32 |
CTE XL 1.6 | 2006 | Última versión de Daimler-Benz [18] | Java | win32 |
CTE XL 1.8 | 2008 | Desarrollo de Berner & Mattner | Java | win32 |
CTE XL 1.9 | 2009 | Última versión solo de Java | Java | win32 |
CTE XL Professional 2.1 | 2011-02-21 | Primera versión basada en Eclipse , generación de casos de prueba priorizados, [10] generación de casos de prueba determinista , seguimiento de requisitos con DOORS | Java 6 , Eclipse 3.5 | win32 |
CTE XL Professional 2.3 | 2011-08-02 | Integración de QualityCenter , análisis de cobertura de requisitos y matriz de trazabilidad , API | Java 6, Eclipse 3.6 | win32 |
CTE XL Professional 2.5 | 2011-11-11 | Anotación de resultado de prueba, importación de MindMap | Java 6, Eclipse 3.6 | win32, win64 |
CTE XL Professional 2.7 | 2012-01-30 | Lanzamiento de corrección de errores | Java 6, Eclipse 3.6 | win32, win64 |
CTE XL Professional 2.9 | 2012-06-08 | Modo de marca implícita, clases predeterminadas, interfaz de línea de comandos | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.1 | 2012-10-19 | Evaluación posterior de la prueba (por ejemplo, para el análisis de la causa raíz ), generación de la secuencia de prueba, [12] Restricciones numéricas [13] | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.3 | 2013-05-28 | Análisis de cobertura de pruebas, gestión de variantes (por ejemplo, como parte de la ingeniería de familia de productos ), pruebas de clases de equivalencia | Java 6, Eclipse 3.7 | win32, win64 |
CTE XL Professional 3.5 | 2013-12-18 | Asistente de análisis de valor límite, importación de modelos AUTOSAR y MATLAB | Java 7 , Eclipse 3.8 | win32, win64 |
TESTONA 4.1 | 2014-09-22 | Lanzamiento de corrección de errores | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 4.3 | 2015-07-08 | Generación de scripts de prueba ejecutables ( generación de código ), importación de resultados de prueba [21] | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 4.5 | 2016-01-21 | Instalaciones de exportación mejoradas, mejoras de GUI | Java 7, Eclipse 3.8 | win32, win64 |
TESTONA 5.1 | 2016-07-19 | Versión de corrección de errores, cambio a Java 8 , Eclipse 4.5 | Java 8 , Eclipse 4.5 | win32, win64 |
CTE 4.0 | 2018-08-01 | Nueva implementación de Razorcat como complemento para la herramienta TESSY 4.1 basada en Eclipse . Soporte en la creación de casos de prueba (basados en modelos). | Java | win32 win64 |
Ventajas
- Representación gráfica de aspectos relevantes de la prueba [2]
- Método tanto para la identificación de aspectos de prueba relevantes como para su combinación en casos de prueba [4]
Limitaciones
- Cuando el diseño de prueba con el método de árbol de clasificación se realiza sin una descomposición de prueba adecuada, los árboles de clasificación pueden volverse grandes y engorrosos.
- Los nuevos usuarios tienden a incluir demasiados aspectos de prueba (especialmente irrelevantes), lo que resulta en demasiados casos de prueba.
- No existe un algoritmo ni una guía estricta para la selección de los aspectos relevantes de la prueba. [22]
Referencias
- ^ Bath, Graham; McKay, Judy (2008). El manual del ingeniero de pruebas de software: una guía de estudio para los certificados de nivel avanzado de analista de pruebas y analista de pruebas técnicas de ISTQB (1ª ed.). Santa Bárbara, CA: Rocky Nook. ISBN 9781933952246.
- ^ a b c d Hass, Anne Mette Jonassen (2008). Guía de pruebas de software avanzadas . Boston: Casa Artech. págs. 179-186. ISBN 978-1596932869.
- ^ a b Grochtmann, Matthias; Grimm, Klaus (1993). "Árboles de clasificación para pruebas de partición". Pruebas, verificación y confiabilidad de software . 3 (2): 63–82. doi : 10.1002 / stvr.4370030203 .
- ^ a b c d Kuhn, D. Richard; Kacker, Raghu N .; Lei, Yu (2013). Introducción a las pruebas combinatorias . Crc Pr Inc. págs. 76–81. ISBN 978-1466552296.
- ^ a b Henry, Pierre (2008). La red de pruebas es un enfoque integral para las actividades de prueba en grandes proyectos de software . Berlín: Springer. pag. 87. ISBN 978-3-540-78504-0.
- ^ a b c d Grochtmann, Matthias; Wegener, Joachim (1995). "Diseño de casos de prueba utilizando árboles de clasificación y el editor de árboles de clasificación CTE" (PDF) . Actas de la 8ª Semana Internacional de la Calidad del Software (QW '95), San Francisco, EE . UU . Archivado desde el original (PDF) el 24 de septiembre de 2015 . Consultado el 12 de agosto de 2013 .
- ^ Ostrand, TJ; Balcer, MJ (1988). "El método de partición de categorías para especificar y generar pruebas funcionales". Comunicaciones de la ACM . 31 (6): 676–686. doi : 10.1145 / 62959.62964 .
- ^ a b Conrad, Mirko; Krupp, Alexander (1 de octubre de 2006). "Una extensión del método de árbol de clasificación para sistemas embebidos para la descripción de eventos" . Notas electrónicas en informática teórica . 164 (4): 3-11. doi : 10.1016 / j.entcs.2006.09.002 .
- ^ a b c Lehmann, Eckard; Wegener, Joachim (2000). "Diseño de casos de prueba mediante el CTE XL" (PDF) . Actas de la 8ª Conferencia Internacional Europea sobre Pruebas, Análisis y Revisión de Software (EuroSTAR 2000) . Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 12 de agosto de 2013 .
- ^ a b c d Kruse, Peter M .; Luniak, Magdalena (diciembre de 2010). "Generación de casos de prueba automatizada mediante árboles de clasificación". Profesional de Calidad de Software . 13 (1): 4–12.
- ^ Franke M, Gerke D, Hans C. und andere. Generación de casos de prueba basados en métodos para la verificación funcional del sistema. Actas ATOS. Porcelana de Delft. 2012. P.36-44.
- ^ a b c Kruse, Peter M .; Wegener, Joachim (abril de 2012). Generación de secuencia de prueba a partir de árboles de clasificación . Pruebas, verificación y validación de software (ICST), Quinta Conferencia Internacional de IEEE 2012 en . págs. 539–548. doi : 10.1109 / ICST.2012.139 . ISBN 978-0-7695-4670-4.
- ^ a b c Kruse, Peter M .; Bauer, Jürgen; Wegener, Joachim (abril de 2012). Restricciones numéricas para pruebas de interacción combinatoria . Pruebas, verificación y validación de software (ICST), Quinta Conferencia Internacional de IEEE 2012 en . págs. 758–763. doi : 10.1109 / ICST.2012.170 . ISBN 978-0-7695-4670-4.
- ^ a b c Internacional, SAE (2004). De la electrónica del vehículo a la movilidad digital: la próxima generación de convergencia; actas del Congreso Internacional de Electrónica del Transporte de 2004, Convergencia 2004, [Cobo Center, Detroit, Michigan, EE. UU., 18 al 20 de octubre de 2004] . Warrendale, Pa .: Sociedad de Ingenieros Automotrices. págs. 305-306. ISBN 978-0768015430.
- ^ a b c [editado por] Gomes, Luís; Fernandes, João M. (2010). Modelado de comportamiento para aplicaciones de tecnologías y sistemas embebidos para diseño e implementación . Hershey, PA: Information Science Reference. pag. 386. ISBN 978-1605667515.CS1 maint: texto adicional: lista de autores ( enlace )
- ^ a b c [editado por] Zander, Justyna; Schieferdecker, Ina; Mosterman, Pieter J. (15 de septiembre de 2011). Pruebas basadas en modelos para sistemas integrados . Boca Ratón: CRC Press. pag. 10. ISBN 978-1439818459.CS1 maint: texto adicional: lista de autores ( enlace )
- ^ a b c [editado por] Rech, Jörg; Bunse, Christian (2009). Desarrollo de software basado en modelos que integra el aseguramiento de la calidad . Hershey: Referencia de la ciencia de la información. pag. 101. ISBN 978-1605660073.CS1 maint: texto adicional: lista de autores ( enlace )
- ^ a b Olejniczak, Robert (2008). Systematisierung des funktionalen Tests eingebetteter Software (PDF) . Tesis doctoral: Universidad Técnica de Munich. págs. 61–63. Archivado desde el original (PDF) el 6 de marzo de 2016 . Consultado el 10 de octubre de 2013 .
- ^ Caín, Andrés; Chen, Tsong Yueh; Grant, Doug; Poon, Pak-Lok; Tang, Sau-Fun; Tse, TH (2004). Un sistema automático de generación de datos de prueba basado en la metodología de árbol de clasificación integrado . Primera Conferencia Internacional, SERA 2003, San Francisco, CA, EE. UU., 25 al 27 de junio de 2003, artículos revisados seleccionados . Apuntes de conferencias en informática. 3026 . págs. 225–238 . doi : 10.1007 / 978-3-540-24675-6_18 . hdl : 10722/43692 . ISBN 978-3-540-21975-0. Consultado el 10 de octubre de 2013 .
- ^ Franke, M .; Gerke, D .; Hans, C; y otros: Generación de casos de prueba basados en métodos para la verificación funcional del sistema, el transporte aéreo y el simposio de operaciones 2012; p.354-365. Actas ATOS. Delft 2012.
- ^ Berner y Mattner. "Comunicado de prensa: Implementación de casos de prueba con TESTONA 4.3" .
- ^ Chen, TY; Poon, P.-L. (1996). Tabla de jerarquía de clasificación: una metodología para construir el árbol de clasificación . Conferencia Australiana de Ingeniería de Software, 1996., Actas de 1996 . págs. 93-104. doi : 10.1109 / ASWEC.1996.534127 . ISBN 978-0-8186-7635-2.
enlaces externos
- Pruebas sistemáticas