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 los aspectos relevantes de la prueba (las denominadas clasificaciones ) y sus valores correspondientes (las denominadas clases ), así como
- Combinación de diferentes clases de todas las clasificaciones en casos de prueba .
La identificación de los aspectos relevantes para la prueba suele seguir la especificación (funcional) (por ejemplo, requisitos , casos de uso , etc.) del sistema en prueba . Estos aspectos forman el espacio de datos de entrada y salida del objeto de prueba.
El segundo paso del diseño de pruebas sigue los principios del diseño de pruebas combinatorias. [4]
Si bien el método se puede aplicar usando un bolígrafo y un papel, la forma habitual implica el uso del Editor de á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) son la selección (o definición) de un sistema bajo prueba . El CTM es un método de prueba de caja negra y admite cualquier tipo de sistema bajo prueba. Esto incluye (pero no se limita a) sistemas de hardware , sistemas integrados de hardware y software, sistemas de software simple , incluido el software integrado , interfaces de usuario , sistemas operativos , analizadores sintácticos 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 bajo prueba puede describirse mediante un conjunto de clasificaciones, que contienen parámetros de entrada y salida. (Los parámetros de entrada también pueden incluir estados del entorno , precondiciones 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 generalmente sigue 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. Para 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 del á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 de la clasificación con la mayor cantidad de clases que contienen.
En el segundo paso, se componen los casos de prueba seleccionando exactamente una clase de cada clasificación del árbol de clasificación. La selección de los 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 proporciona las clasificaciones: Privilegio de usuario , Operación y Método de acceso . Para los Privilegios de usuario , se pueden identificar dos clases: Usuario normal 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 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 de árbol de clasificación ya está completo. Por supuesto, hay otros aspectos de prueba que se pueden incluir, por ejemplo, la velocidad de acceso de la conexión, el número de registros de la base de datos presentes en la misma, etc. Utilizando la representación gráfica en forma de árbol, se pueden revisar rápidamente los aspectos seleccionados y sus valores correspondientes.
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, son suficientes 5 casos de prueba, 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
El CTM introdujo las siguientes ventajas [2] sobre el método de partición de categorías [7] (CPM) de Ostrand y Balcer:
- Notación : CPM solo tenía una notación textual, mientras que CTM utiliza una representación gráfica en forma de árbol.
- Refinamientos La selección de un representante podría tener influencia en la aparición de otros representantes.
- CPM solo ofrece restricciones para manejar este escenario.
- CTM permite modelar 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 Editor de Árbol de Clasificación (CTE), que admite tanto la partición 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 se diseñó inicialmente para el diseño y la especificación de casos de prueba abstractos. Con el método del árbol de clasificación para sistemas integrados, [8] también se puede realizar la implementación de pruebas. El método incluye varias funciones adicionales:
- Además de los casos de prueba atómicos, se pueden especificar secuencias de prueba que contengan varios pasos de prueba.
- Se puede especificar un tiempo concreto (por ejemplo, en segundos, minutos, etc.) para cada paso de la prueba.
- Se pueden especificar transiciones de señal (por ejemplo, lineal , spline , senoidal , etc.) entre clases seleccionadas de diferentes pasos de prueba.
- Se puede modelar una distinción entre evento y estado , representándolo mediante diferentes marcas visuales en una prueba.
La herramienta de pruebas unitarias y de módulos Tessy se basa en esta extensión.
Reglas de dependencia y generación automatizada de casos de prueba
Una forma de modelar restricciones es utilizando 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 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 combinatoria (por ejemplo, pruebas de todos los pares ).
Generación de casos de prueba priorizados
Las mejoras recientes al método del árbol de clasificación incluyen la generación de casos de prueba priorizados : es posible asignar pesos a los elementos del árbol de clasificación en términos de ocurrencia y probabilidad o riesgo de error. 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 estados y, por lo tanto, todo el árbol de clasificación como un diagrama de estados . Esto define un orden permitido de usos de clases en pasos de prueba y permite crear automáticamente secuencias de prueba. [12] Hay diferentes niveles de cobertura disponibles, como cobertura de estados , cobertura de transiciones y cobertura de pares de estados y pares de transiciones.
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 se evaluarán en la clase seleccionada en un caso de prueba. [13]
Editor de árbol de clasificación
El Editor de árboles 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 fue desarrollada en las instalaciones de Daimler-Benz Industrial Research [6] [16] en Berlín. Apareció en 1993 y estaba escrita en Pascal . Solo estaba disponible en sistemas Unix .
CTE 2
En 1997 se realizó una importante reimplementación que dio lugar a CTE 2. El desarrollo se llevó a cabo nuevamente en Daimler-Benz Industrial Research. Se escribió en C y estaba disponible para sistemas win32 .
El CTE 2 fue licenciado a Razorcat en 1997 y es parte de la herramienta de prueba unitaria TESSY. El editor de árboles de clasificación para sistemas integrados [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. Tenga en cuenta la tabla de versiones a continuación.
CTE 4
El CTE 4 se implementó en TESSY 4.1.7 como 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 pruebas combinatorias (por ejemplo, pruebas de todos los pares ). [19]
El desarrollo estuvo a cargo de DaimlerChrysler . CTE XL se escribió en Java y era compatible con sistemas win32. CTE XL estaba disponible para su descarga gratuita.
En 2008, Berner&Mattner adquirió todos los derechos de 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 utilizando 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 pesos a los elementos del árbol de clasificación en términos de ocurrencia y probabilidad o riesgo de error. Estos pesos se utilizan luego durante la generación de casos de prueba para priorizar los casos de prueba. [10] [20] También están disponibles las pruebas estadísticas y basadas en riesgos .
- Generación de secuencias de prueba [12] utilizando sistemas multiagente
- Restricciones numéricas [13]
TESTÓN
En 2014, Berner&Mattner comenzó a lanzar su editor de árboles de clasificación bajo la marca TESTONA.
Todavía está disponible para su descarga gratuita una edición gratuita de TESTONA, aunque con funcionalidades reducidas.
Versiones
Ventajas
- Representación gráfica de aspectos relevantes de la prueba [2]
- Método para la identificación de aspectos de prueba relevantes y su combinación en casos de prueba [4]
Limitaciones
- Cuando el diseño de pruebas con el método de árbol de clasificación se realiza sin una descomposición de pruebas 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 genera 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). Manual del ingeniero de pruebas de software: 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.
- ^ abcd Hass, Anne Mette Jonassen (2008). Guía para pruebas de software avanzadas . Boston: Casa Artech. págs. 179–186. ISBN 978-1596932869.
- ^ ab Grochtmann, Matthias; Grimm, Klaus (1993). "Árboles de clasificación para pruebas de particiones". Pruebas de software, verificación y confiabilidad . 3 (2): 63–82. doi :10.1002/stvr.4370030203. S2CID 33987358.
- ^ abcd 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.
- ^ ab Henry, Pierre (2008). La red de pruebas: un enfoque integral para las actividades de prueba en grandes proyectos de software . Berlín: Springer. p. 87. ISBN 978-3-540-78504-0.
- ^ abcd 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 . S2CID 207647895.
- ^ ab 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 .
- ^ abc 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 .
- ^ abcd Kruse, Peter M.; Luniak, Magdalena (diciembre de 2010). "Generación automatizada de casos de prueba mediante árboles de clasificación". Software Quality Professional . 13 (1): 4–12.
- ^ 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. Actas de ATOS. Delft. 2012. P.36-44.
- ^ abc Kruse, Peter M.; Wegener, Joachim (abril de 2012). "Generación de secuencias de prueba a partir de árboles de clasificación". Quinta conferencia internacional sobre pruebas, verificación y validación de software del IEEE de 2012. págs. 539–548. doi :10.1109/ICST.2012.139. ISBN 978-0-7695-4670-4. Número de identificación del sujeto 581740.
- ^ abc Kruse, Peter M.; Bauer, Jürgen; Wegener, Joachim (abril de 2012). "Restricciones numéricas para pruebas de interacción combinatoria". Quinta conferencia internacional IEEE de 2012 sobre pruebas, verificación y validación de software . págs. 758–763. doi :10.1109/ICST.2012.170. ISBN 978-0-7695-4670-4. Número de identificación del sujeto 16683773.
- ^ abc International, SAE (2004). Electrónica de vehículos para la movilidad digital: la próxima generación de convergencia; actas del Congreso Internacional de Electrónica de Transporte de 2004, Convergencia 2004, [Cobo Center, Detroit, Michigan, EE. UU., 18-20 de octubre de 2004] . Warrendale, Pensilvania: Sociedad de Ingenieros Automotrices. págs. 305-306. ISBN 978-0768015430.
- ^ abc [editado por] Gomes, Luís; Fernandes, João M. (2010). Modelado de comportamiento para sistemas embebidos y aplicaciones de tecnologías para diseño e implementación . Hershey, PA: Information Science Reference. p. 386. ISBN 978-1605667515.
{{cite book}}:|last=tiene nombre genérico ( ayuda ) - ^ abc [editado por] Zander, Justyna; Schieferdecker, Ina; Mosterman, Pieter J. (15 de septiembre de 2011). Pruebas basadas en modelos para sistemas integrados . Boca Raton: CRC Press. p. 10. ISBN 978-1439818459.
{{cite book}}:|last=tiene nombre genérico ( ayuda ) - ^ abc [editado por] Rech, Jörg; Bunse, Christian (2009). Desarrollo de software basado en modelos que integra el aseguramiento de la calidad . Hershey: Information Science Reference. p. 101. ISBN 978-1605660073.
{{cite book}}:|last=tiene nombre genérico ( ayuda ) - ^ ab 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 .
- ^ Cain, Andrew; 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". Investigación y aplicaciones de ingeniería de software . Apuntes de clase en informática. Vol. 3026. págs. 225–238. doi :10.1007/978-3-540-24675-6_18. hdl :10722/43692. ISBN 978-3-540-21975-0. Recuperado 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, Air Transport and Operations Symposium 2012; págs. 354-365. Actas ATOS. Delft 2012.
- ^ Berner&Mattner. "Comunicado de prensa: Implementación de casos de prueba con TESTONA 4.3".
- ^ Chen, TY; Poon, P.-L. (1996). "Tabla de clasificación y jerarquía: una metodología para construir el árbol de clasificación". Actas de la Conferencia Australiana de Ingeniería de Software de 1996. págs. 93-104. doi :10.1109/ASWEC.1996.534127. ISBN 978-0-8186-7635-2.S2CID6789744 .
Enlaces externos
- Prueba sistemática