AutoTest gera automaticamente testes unitários em Cantata que exercitam todo o código C. Pode ser utilizado em projetos novos ou já existentes, facilitando:
O que é o Cantata AutoTest?
O Cantata AutoTest cria scripts de testes unitários ou adiciona casos de teste a scritps Cantata pré-existentes. Efetua uma análise do código para determinar todos os caminhos possíveis, tal como requerido por métricas de cobertura estrutural:
Um algorítmo cria os vetores de teste que exercitam todos os caminhos no código, utilizado as poderosas capacidades “white-box” do Cantata para definir dados, parâmetros e chamadas a interfaces e funções de controlo.
Os vetores de teste guiam o código e verificam os parâmetros passados entre as funções, valores acessíveis globalmente, ordem de chamadas e os valores de retorno.
Casos de teste gerados por AutoTest são editáveis da mesma maneira que os criados pelo utilizador, e cada caso de teste contém uma descrição sobre que elementos e caminhos do código que foi criado para exercitar, facilitando a sua manutenção.
O que me ajuda o AutoTest a fazer?
CONFIGURAÇÃO DA GESTÃO DE TESTES AUTOMÁTICA
As opções de geração AutoTest podem ser configuradas facilmente através da interface gráfica ou linha de comandos:
Seleccionando o conjunto de regras (Rule Set) de cobertura de código, determinará a profundidade (i.e. número de testes necessário para atingir os objetivos). O estilo é determinado pela utilização específica do AutoTest e opções do standard de geração de código do Cantata Workspace.
Isolamento dos testes unitários ou conjunto de testes de integração, utilizando estratégias de teste em “black-box” ou “white-box”, oferecem flexibilidade para inclusão de quaisquer regras iniciais estabelecidas para cuidado e manutenção dos testes, requeridas para reutilização de código.
IDENTIFICAÇÃO DE CÓDIGO COM PROBLEMAS DE TESTABILIDADE
Nas áreas de código onde o AutoTest não consegue gerar testes ou estes estão incompletos, a relatório da geração AutoTest fornece informação útil e assertiva sobre problemas com testabilidade do código fonte.
Mensagens de aviso são escritas no relatório de geração do AutoTest, mostrando onde e porquê não ter sido possível gerar casos de teste, indicado potenciais problemas com o código fonte ou com a capacidade de o testar dinamicamente. Pode por isso ser um suplemento valioso para a revisão de código, mesmo que os testes gerados pelo AutoTest não sejam executados.
GERE TESTES COM COBERTURA TOTAL DO CÓDIGO
O relatório de geração do AutoTest identifica a cobertura de código esperada que será atingida com a execução dos testes gerados. Como os casos de teste inicialemente gerados pelo AutoTest estão programados para “passar”, a única falha que será verificada será relativa ao objetivo de cobertura a atingir definido nas regras de cobertura (Coverage Rule Set).
Atingir cobertura total do código é apenas parte dos objetivos de teste. Os casos de teste gerados pelo AutoTest podem ser revistos e, onde conveniente, mapeados a requisitos (ver Rastreamento de Requisitos em Cantata para mais detalhes). Neste caso, o AutoTest reduz drasticamente o esforço do programador para selecionar os vetores de teste para verificar os requisitos.
ACRESCENTAR CONDIÇÕES FRONTEIRA NA COBERTURA
Onde o código sob teste é complexo, até requisitos detalhados e testes de robustez exaustivos podem deixar caminhos de execução não testados no código, porque as diferentes combinações de vetores de entrada necessárias para a cobertura total são difíceis de identificar. Para esses “casos fronteira”, o AutoTest pode gerar casos de teste para preencher eventuais lacunas na cobertura de código, se o código não for redundante.
O AutoTest pode ser usado apenas em funções selecionadas para gerar um conjunto focado de casos de teste que alcancem 100% de cobertura. A otimização automática de cobertura de código do Cantata pode, com um único clique, apagar/desativar quaisquer casos de teste que não adicionem à cobertura geral de código obtida.
CRIAR UMA REDE DE SEGURANÇA DE TESTES DE REGRESSÃO COMO BASE
O código legado que depende de testes de sistema é muito caro e ineficiente a ser modificado, mas escrever um conjunto abrangente de testes unitários a partir do zero simplesmente não é comercialmente viável. O AutoTest do Cantata gera automaticamente um conjunto de testes unitários para todo o código selecionado. Esses testes podem atuar como uma rede de segurança de base contra futuros erros de regressão à medida que o código é modificado. Isso reduz a dependência de testes de sistema caros e demorados, além de tornar os testes mais exaustivos e precisos na deteção de erros.
O Cantata AutoTest gera um conjunto de “Makefiles” Cantata, que podem ser facilmente integrados com qualquer ferramenta de código aberto ou comercial para permitir testes totalmente automatizados durante o desenvolvimento, a cada integração.
ATUALIZAÇÃO DO LEGADO DAS FERRAMENTAS DE TESTE
Mesmo onde outras ferramentas de testes unitários já estão em uso, poderão existir vantagens reais na atualização para as modernas e poderosas ferramentas de teste disponíveis no Cantata. Especialmente quando as ferramentas legadas não são bem suportadas ou não são qualificadas para as necessidades de certificação de ferramentas com padrões de segurança.
O Cantata AutoTest oferece duas opções, altamente automatizadas, para atualizar as ferramentas de teste de unitário:
Para uma base de código com um nível de qualidade aceitável, os testes existentes podem ser simplesmente substituídos por um conjunto de testes unitários gerados pelo Cantata AutoTest.
Para testes unitários legados escritos em C (e.g. ferramentas xUnit), os testes existentes podem ser incorporados nos scripts de teste Cantata, retendo o investimento em casos de teste legados e aprimorados com recursos adicionais do Cantata, incluindo o AutoTest.
Como Funciona o AutoTest?
O AutoTest pode ser chamado usando um “Test Script Wizard” ou pode gerar casos de teste adicionais com um script de teste existente na vista “Test Script Manager”. Para bases de código maiores, pode ser mais conveniente executar o AutoTest a partir da linha de comando.
O AutoTest analisa o código-fonte e usa as opções do Cantata para gerar:
Os testes gerados são então construídos e executados, produzindo o conjunto padrão de resultados e relatórios Cantata.
ALGORITMO DE GERAÇÃO AUTOTEST
O Cantata AutoTest cria scripts de testes unitários Cantata completos a partir do código-fonte usando um algoritmo que gera automaticamente vetores de teste que exercitam caminhos de código, verificam dados, verificam parâmetros e registram chamadas a funções. Os caminhos de código usados para gerar os casos de teste são determinados selecionando os tipos de métrica (Ponto de Entrada, Declaração, Decisão ou causa exclusiva MC / DC) no Conjunto de Regras (“Rule Set”) de cobertura de código.
Opões estão disponíveis para influenciar o algoritmo de geração do AutoTest, incluindo o nível necessário de cobertura de código, o método de controlo de chamadas, que tipos de dados verificar, como os dados podem ser modificados para forçar caminhos de execução, limites de tempo e muitas outras. Essas opções afetam o estilo dos testes da Cantata e limitam o âmbito de geração de testes.
Os testes podem ser mais ou menos exaustivos e podem usar abordagens “white-box” ou “black-box”. A decisão sobre qual estilo de testes unitários gerar com o Cantata AutoTest dependerá dos objetivos do plano de regressão e de como o código muda. Por exemplo, permitindo flexibilidade para modificações de código de funções estáticas sem quebrar testes de caixa preta.
MENSAGENS DE AVISO E ERRO DO AUTOTEST
Quando a geração do Cantata AutoTest resulta em testes incompletos ou encontra uma qualidade de código suspeita, mensagens de aviso são gravadas no relatório de geração do AutoTest. Essas mensagens de aviso indicam possíveis problemas no código-fonte ou em sua testabilidade dinâmica, portanto, podem ter um valor significativo.
A Cantata AutoTest reportará:
Mais informações sobre o Cantata AutoTest
Para informações mais detalhadas sobre o Cantata AutoTest, consulte: