Cantata Logo - unit and integration testing tool for C/C++


FLEXIBLE
TESTING TECHNIQUES


One tool for all your embedded
unit and integration testing needs

Cantata es una herramienta de pruebas dinámicas para la unidad C/C++ y las pruebas de integración. Su conjunto flexible de capacidades de automatización de pruebas permite a los desarrolladores cumplir con los requisitos de prueba de las normas de seguridad del software e implementar las mejores prácticas de la industria.

 

La automatización de pruebas de Cantata le permite seleccionar la combinación más efectiva y eficiente de técnicas de pruebas dinámicas para adaptarse a sus estilos de implementación de códigos C y C++.

 

Las pruebas de Cantata pueden extenderse directamente en cualquier editor de código y proporcionar flexibilidad a cualquier cosa posible en el lenguaje de programación C/C++.

Flexibilidad Centrada

Ningún paquete de herramienta única puede ser compatible con todos los estilos de pruebas, y Cantata no es una excepción. Cantata se centra en la unidad y los requisitos de pruebas de integración de las pruebas dinámicas de códigos C y C++ conformes a las normas en sistemas integrados.

 

Con el conjunto de herramientas flexible de Cantata, puede elegir qué combinación de capacidades de pruebas automatizadas es la adecuada para realizar sus pruebas de unidades, pruebas de integración o para mejorar sus pruebas de nivel superior.

Cantata is focused on the unit and integration testing requirements of standard compliant dynamic testing C and C++ code on embedded systems

Capacidades de Cantata mediante la técnica de pruebas

Requirements driven testing - Cantata verifying that software does as it is supposed to - Requirements data - Test information - Requirements management tools

PRUEBAS BASADAS EN REQUISITOS

 

Cantata es compatible con las pruebas basadas en requisitos para comprobar que el software haga lo que debe hacer (derivado de requisitos, especificaciones o modelos de bajo nivel).

 

El arnés de pruebas de Cantata dirige el código que se analiza a través de un script de pruebas que llama a una función con entradas seleccionadas (parámetros y datos) y automatiza la verificación del comportamiento real frente al comportamiento esperado.

 

Los requisitos importados en el IDE de Cantata facilitan la definición de casos de pruebas y los requisitos de seguimiento con scripts de prueba o casos de pruebas.

 

(Véase también la sección Trazabilidad de requisitos de Cantata).

PRUEBAS DE RESISTENCIA

 

Cantata es compatible con las pruebas de resistencia dinámica para comprobar que el código puede hacer frente a condiciones anómalas mediante el uso de técnicas recomendadas por todas las normas de seguridad del software, como:

  • inicialización anómala del sistema
  • entradas y datos no válidos
  • gestión del modo de fallo
  • valores límite
  • condiciones aritméticas
  • restricciones de tiempo
  • asignación de memoria
  • siembra de errores

Las pruebas de resistencia son más sencillas con el Conjunto de reglas de resistencia de Cantata que utilizan valores predefinidos para tipos de datos básicos, en casos de pruebas de bucles. Todos los datos globales accesibles también se comprueban automáticamente para detectar cambios accidentales. Los scripts de prueba de Cantata y su envoltorio facilitan la creación de condiciones de pruebas anómalas previas e inyectan errores durante la ejecución de la prueba. (Véase también la sección Control de llamadas de Cantata)

Robustness testing image - abnormal system initialization - invalid inputs & data - failure mode handling - Boundary values - arithmetic edge condition - Timing constraints - memory allocation - error sending - Cantata flexible testing techniques - wall of code
Structural testing identifies source code untested by requirements driven and robustness tests - Cantata code coverage will find any unexecuted code - flow chart template

PRUEBAS ESTRUCTURALES

 

Las pruebas estructurales identifican el código fuente no probado por las pruebas basadas en requisitos y de resistencia y abordan esas brechas.

 

La cobertura del código de Cantata (utilizada dentro o fuera de las pruebas de Cantata) localiza los elementos de código no ejecutados en contextos concretos o en todos los contextos. Las brechas se pueden resolver mediante la adición de nuevos casos de pruebas basados en requisitos, documentación de los motivos por los que el código no debe ejecutarse en un contexto concreto, o eliminación del código redundante.

 

AutoTest de Cantata genera automáticamente scripts de prueba completos o casos de pruebas adicionales para alcanzar una cobertura estructural del 100% para el código C. (Véase también la sección Cobertura de código de Cantata y AutoTest de Cantata & Cantata AutoTest).

PRUEBAS DE CAJA NEGRA

 

Las pruebas de caja negra verifican el código solo a través de sus interfaces públicas y no requieren tener conocimiento de la implementación del código interno para comprobar el comportamiento correcto.

 

Cantata fortalece a esta técnica con pruebas de bucle parametrizadas seleccionadas por el usuario o predefinidas, por lo que se pueden llamar las mismas funciones con grandes conjuntos de datos de parámetros de entrada o valores de datos. La secuencia de las llamadas esperadas y los valores de retorno esperados pueden variar en función de los conjuntos de datos de entrada, junto con las salidas de datos globales comprobadas durante la ejecución de la prueba.

 

Los conjuntos de datos de prueba dirigidos por la tabla de Cantata también se pueden importar/exportar a través de CSV. Un calculador de efectos combinatorios de la GUI ayuda a seleccionar el vector de prueba. La optimización de cobertura automática de Cantata identifica el conjunto preciso de vectores de casos de prueba necesarios para alcanzar los objetivos de cobertura.

Black-box testing verifies code only via its public interfaces, and does not require knowledge of internal code implementation for checking correct behavior - Cantata brings power to black box testing
Cantata uses white box testing to verify code by granting access to the encapsulated code internals

PRUEBAS DE CAJA BLANCA

 

Las pruebas de caja blanca verifican el código mediante la concesión de acceso a las partes internas del código encapsulado (datos y funciones privadas/estáticas).

 

Cantata otorga este acceso directo a los evaluadores sin contaminar el código de producción con la compilación condicional, con una instrumentación de accesibilidad completamente automática solo durante las pruebas. Los scripts de prueba pueden llamar directamente a funciones privadas o estáticas y establecer/comprobar parámetros y datos declarados privados o estáticos a un archivo o función local.

 

Las pruebas de caja blanca de Cantata pueden configurar las condiciones de activación y comprobar directamente los valores o el comportamiento interno de manera más eficiente que con las pruebas de caja negra.

 

El control de llamadas de Cantata también se puede utilizar en llamadas dentro del límite de compilación para las pruebas de caja blanca.

 

PRUEBAS DE PROCEDIMIENTOS Y MÁQUINAS DE ESTADO

 

Las pruebas de procedimiento de Cantata comprueban la lógica de procesamiento o los algoritmos en las funciones que utilizan conjuntos apropiados de entradas de parámetros/datos y comprueban que el orden de llamada real, la lectura/escritura de datos y los valores de retorno sean los esperados. Cantata analiza el código fuente para generar scripts de prueba con los ganchos de prueba necesarios en los parámetros de la función y datos accesibles que los usuarios deberán configurar y comprobar.

 

Las máquinas de estado se prueban mediante el establecimiento de condiciones de activación y con la creación de eventos para comprobar las transiciones de estado correctas. Las pruebas de caja blanca de Cantata hacen que esto sea especialmente eficiente gracias al acceso directo a datos estáticos de la función local que almacenan el estado de la máquina.

 

La cobertura del código de contexto definido por el usuario de Cantata también se puede utilizar para comprobar que el código se haya probado en diferentes estados. (Véase también la sección Cobertura del código de Cantata). 

 

 

 

Procedural and state machine testing diagram - Cantata procedural tests verify the processing logic or algorithms in functions - flow chart
Parallel inheritance hierarchy diagram - Cantata Object oriented testing - makes C++ isolation testing easy

PRUEBAS ORIENTADAS A OBJETOS

 

Las pruebas de estilo orientadas a objetos de Cantata se implementan como clases para los métodos de prueba, plantillas o grupos de clases. Cuentan con las siguientes funciones automatizadas:

  • reutilización de casos de pruebas a través de una jerarquía de herencia paralela
  • estructura de herencia de clase de prueba para clases heredadas
  • implementación concreta de clases abstractas (ABC) o métodos virtuales puros (PVM)

Para romper la cadena de dependencia de clase y facilitar las pruebas de aislamiento de C++, Cantata encuentra y resuelve automáticamente dependencias en referencias no definidas a las que el software analizado no llama directamente. (Véase también la sección Control de llamadas de Cantata). 

PRUEBAS DE UNIDADES DE AISLAMIENTO

 

Cantata no dicta qué elemento de código se prueba como una unidad ni hasta qué punto está aislada (desacoplada) cada unidad del resto del sistema. La flexibilidad completa radica en la generación configurable automática de stubs y aislamientos para simular, además de envoltorios para interceptar llamadas realizadas tanto externa como internamente por la unidad analizada. El procesamiento interno correcto y el uso correcto de las interfaces (parámetros y datos) se pueden comprobar con Cantata como un ejecutable aislado en cuanto se compila una unidad, sin la necesidad del resto del sistema.

 

Cantata genera un caso de prueba ejecutable inicial para cada función/método en los archivos de origen seleccionados analizados. Los casos de pruebas de unidades de Cantata llaman a una función, mediante la inicialización de todos los parámetros de entrada/salida, los datos accesibles y el orden de llamada esperada. Las pruebas de casos son independientes entre sí y la plataforma en la que se ejecutan, con lo que se evita una cadena de dependencias.

Cantata uses Isolation unit testing of C/C++ - Automatic configurable generation of stubs and isolates to simulate, and wrappers to intercept calls made both externally and internally by the unit under test
Cantata driven integration tests are just large unit tests for C/C++ - Cantata Test script - global data

PRUEBAS DE LAS UNIDADES DE INTEGRACION

 

Las pruebas de integración dirigidas por Cantata simplemente son pruebas de unidades grandes, pero con un conjunto de unidades múltiples creadas como un solo ejecutable. Dichas pruebas pueden comprobar el mismo comportamiento interno de la unidad, pero lo que es más importante, las interacciones entre unidades como:

  • la asignación de memoria entre unidades
  • el orden de lectura/escritura de datos
  • el orden de llamadas entre unidades

Las pruebas de integración de Cantata ofrecen la posibilidad de elegir puntos de entrada de controladores de scripts de prueba, con simulaciones internas y externas (stubs y aislamientos) o intercepciones (envoltorios) para un uso flexible de las pruebas de integración de arriba hacia abajo, de abajo hacia arriba o completo. Los envoltorios de Cantata también se pueden utilizar donde Cantata no actúa como controlador, lo que supone un valor añadido sobre el control de las pruebas de integración.


 

Las técnicas establecidas anteriormente se pueden aplicar en varias combinaciones con el fin de cumplir con los requisitos de las normas de seguridad del software y las mejores prácticas de la industria. Para obtener información más detallada sobre el diseño de casos de pruebas y los requisitos de una norma específica, consulte nuestro amplio conjunto de recursos.

Start
Trial
QA-Systems