Apresentação comsolid 2016

43
LoTuS - TCG Uma Ferramenta para Geração e Seleção de Casos de Testes Funcionais e Estatísticos

Transcript of Apresentação comsolid 2016

LoTuS - TCGUma Ferramenta para

Geração e Seleção de Casos de Testes Funcionais e Estatísticos

✓ Graduada em Telemática - Estácio de Sá

✓ Especialista em Engenharia de Software - UECE

✓ Mestranda em Ciências da Computação - UECE

✓ Analista de Sistemas - Brain UP

✓ Pesquisadora do grupo de Engenharia de Software e Sistemas Distribuídos (GESAD) - UECE

○ Artigo no SAST - CBsoft em Alagoas (2014)

○ Artigo no ICEIS em Barcelona (2015)

○ iSys - Revista Brasileira de Sistemas de Informação (2016)

○ Livro - TCG: Uma Ferramenta de Teste Baseado em Modelos (2016)

#laryssa-muniz

✓ Introdução

✓ Fundamentação Teórica

✓ Trabalhos Relacionados

✓ LoTuS

✓ TCG - Test Case Generation

✓ Estudo de Caso

✓ Conclusão

Agenda

✓ Abordagem do Tema

“Testar é um processo concorrente do ciclo de vida da engenharia de software a fim de medir a qualidade da aplicação que está sendo considerada e contribuir para a sua melhoria.” (Craig e Jaskiel)

Porém, devido o aumento da complexidade no softwares torna-se inviável a realização de testes manuais, pois são propícios a erros. Então, recorremos a automação de testes através de algumas técnicas.

#introdução

✓ Problemática

Muitas ferramentas…

● Fornecem apenas um tipo de formalismo;● Fornecem poucas técnicas de geração e seleção;● Não estão disponíveis para download ou são pagas;

#introdução

✓ Objetivo

Apresentar o TCG uma ferramenta para geração e seleção de casos de testes tanto funcionais quanto estatísticos.

● Selecionar um conjunto de técnicas de geração e seleção;● Implementar as técnicas no TCG;● Realizar estudos de casos;

#introdução

✓ Engenharia de Software

Evoluiu bastante procurando estabelecer técnicas, critérios, métodos e ferramentas para a produção de software, em consequência da crescente utilização de sistemas baseados em computação, o que provoca uma crescente demanda por qualidade e produtividade.

#fundamentação_teórica

✓ Teste de Software

É uma das fases do processo de ES que visa atingir um nível superior da qualidade de software, tem como objetivo encontrar defeitos no software, para que estes possam ser corrigidos antes da entrega final.

#fundamentação_teórica

✓ Casos de Teste

Os casos de teste são essenciais no processo de teste para verificar se os requisitos foram atendidos.

Definem basicamente os passos necessários para a execução do teste, possui condição de início e o resultado esperado após a execução, sendo utilizado como base para os testadores.

#fundamentação_teórica

✓ Tipos de Teste

● Caixa Branca - Teste Estrutural:

Desenvolvido analisando o código fonte e elaborando casos de teste que cubram todas as possibilidades do componente do software.

● Caixa Preta - Teste Funcional:

São testes baseados em especificação funcional utilizadas para derivar os casos de teste, onde os casos de teste são gerados sem o código-fonte do software, possui apenas o conhecimento das entradas e saídas possíveis.

#fundamentação_teórica

✓ Tipos de Teste

● Teste Estatístico:

Baseiam-se na utilização de modelos de comportamento do sistema, estes modelos descrevem as iterações do usuário com o sistema através de estados e transições, nas transições são associados probabilidades de ocorrência.

Obs: Testes estatísticos são vistos como complemento para as técnicas existentes, podendo ser utilizado para somar confiabilidade às demais técnicas.

#fundamentação_teórica

✓ Teste Baseado em Modelo (Model-Based Testing)

É uma técnica black-box para geração de casos de teste que consiste em representar as informações de um determinado sistema em um modelo (probabilístico ou não probabilístico).

MBT depende de três elementos principais:

● Modelo para descrever o comportamento do sistema;● Algoritmo de geração e seleção dos casos de testes;● Ferramenta para gerar os casos de testes;

#fundamentação_teórica

✓ Modelos Formais (LTS - PLTS)

O LTS (Sistema de Transição Rotulada) e o PLTS (LTS Probabilístico) são modelos formais que provêem uma descrição integral do conjunto de todos os possíveis comportamentos do sistema.

#fundamentação_teórica

✓ Modelos Formais (LTS - PLTS)

O LTS também é amplamente utilizado como modelo a partir do qual os casos de teste podem ser extraídos.

#fundamentação_teórica

✓ Modelos Formais (LTS - PLTS)

O PLTS estende um LTS acrescentando, para cada transição, uma probabilidade de ocorrência entre 0 e 1 tal que a soma das probabilidades das transições de saídas de um mesmo estado seja sempre 1.

#fundamentação_teórica

✓ Técnicas de Geração

São utilizadas para gerar os casos de testes de acordo com o tipo de teste funcional ou estatístico. No TCG foram abordados as seguintes técnicas:

Teste Funcional / Estatístico

● All Free Loop Paths ● All One Loop Paths● All Paths● All States

#fundamentação_teórica

● All Transitions● Shortest Path● Random Path

Teste Estatístico:

● Probabilistic Random Path

✓ Técnicas de Seleção

São utilizadas para gerar os casos de testes de acordo com o tipo de teste funcional ou estatístico. No TCG foram abordados as seguintes técnicas:

Teste Funcional / Estatístico

● Similaridade de Caminhos● Propósito de Teste

#fundamentação_teórica

Teste Estatístico:

● Rota mais Provável● Similaridade com Pesos● Probabilidade Mínima de Caminho

✓ Técnicas de Seleção

São utilizadas para gerar os casos de testes de acordo com o tipo de teste funcional ou estatístico. No TCG foram abordados as seguintes técnicas:

Teste Funcional / Estatístico

● Similaridade de Caminhos● Propósito de Teste

#fundamentação_teórica

Teste Estatístico:

● Rota mais Provável● Similaridade com Pesos● Probabilidade Mínima de Caminho

#trabalhos_relacionados

Ferramenta Modelo Técnicas Abordadas

TGV IOLTS Propósito de Teste

LTS-BT Diagrama de Sequência e LTS AnotadoPropósito de Teste e Similaridade de

Caminhos

MaTeLoCadeias de Markov, Redes de Autômatos Estocásticos e Máquinas de Estado Finito

(Probabilístico) Caminho Aleatório, Cobertura de transição e Rota mais

Provável

JUMBL Cadeias de Markov(Probabilístico) Caminho Aleatório, Caminho mais Curto e Propósito de

Teste

TCG LTS e PLTSTodas as técnicas abordadas neste

trabalho.

#lotus

✓ Ferramenta LoTuS

Ferramenta para modelagem gráfica do comportamento de sistemas utilizando o modelo LTS. Fornece uma interface gráfica simples e iterativa para a criação e manipulação de LTSs, possibilita também a adição de propriedades nas transições.

● Label: representa o rótulo;● Guard: condição de guarda;● Probability: probabilidade de ocorrência;

#tcg

✓ TCG - Test Case Generation

É um plugin para a ferramenta de modelagem LoTuS que permite gerar e selecionar os casos de testes para os modelos não-probabilísticos e probabilísticos.

O plugin consiste em duas fases: fase de configuração e fase de execução.

✓ Fase de Configuração

1. Selecionar e configurar o Gerador: O usuário deve selecionar uma das oito técnicas de geração.

2. Ajustar o Propósito de Teste (opcional): Como padrão o propósito de teste retorna todos os caminhos possíveis de serem extraídos.

3. Selecionar e configurar o Seletor: O usuário deve selecionar uma das cinco técnicas de seleção.

4. Definir a condição de parada (opcional): Tem como objetivo evitar a execução infinita de casos de testes através do temporizador.

#tcg

✓ Fase de Execução

Utiliza inicialmente o algoritmo de geração escolhido juntamente com o propósito de teste (caso tenha sido configurado). A geração encerra em três situações:

● Quando o algoritmo gerar os casos de testes possíveis;● Quando o usuário adicionar a condição de parada;● Quando o usuário abortar a geração ao clicar no botão stop;

Logo após a geração dos casos de testes, o algoritmo de seleção escolhido é aplicado e os testes são filtrados de acordo com os critérios do algoritmo selecionado, então o TCG retorna o subconjunto.

#tcg

✓ Descrição das Técnicas de Geração

1. All Free Loop Paths: está técnica utiliza uma busca em profundidade para encontrar todos os caminhos do LTS que não contêm ciclo, cada caminho gerado não conterá qualquer estado repetido. Ex: (a, b, d)

2. All Free Loop Paths: está técnica é uma extensão da técnica acima. Retorna todos os caminhos do All Free Loop Paths e também os caminhos que contêm no máximo um ciclo. Ex: (a, b, c, d) ; (a, b, d)

3. All States: retorna um conjunto de caminhos em que a união deles abrange todos os estados do modelo. Ex: (a, b, d)

#tcg

✓ Descrição das Técnicas de Geração

4. All Transitions: retorna um conjunto de caminhos que provê a cobertura de todas as transições do LTS. Ex: (a, b, c, d)

5. Shortest Path: utiliza o algoritmo de busca em largura para retornar o caminho mais curto do LTS. Ex: (a, b, d)

6. Random Path: retorna um número de caminhos aleatórios informados pelo usuário.

7. Probabilistic Random Path: é semelhante ao Random Path, porém a escolha da transição que será expandida é feita de maneira probabilística.

#tcg

✓ Descrição das Técnicas de Geração

8. All Paths: realiza uma busca em largura de maneira exaustiva, gerando um grande número de caminhos, ou seja, cada caminho deve ser percorrido pelo menos uma vez. A fim de evitar a execução infinita, está técnica não expande caminhos que passem por um ciclo de transição mais de uma vez.

Ex: (a, b, c, d) ; (a, b, d)

Obs: Caso o LTS contenha muitas probabilidades de caminhos, é possível ativar a condição de parada que vai limitar o tempo de execução ou abortar a geração, retornando somente os casos de teste gerados até o momento.

#tcg

✓ Descrição das Técnicas de Seleção

1. Probabilidade Mínima do Caminho: dada uma probabilidade “x” de ocorrência de um caminho, esta técnica retorna todos os caminhos cujo as probabilidades sejam maior ou igual a “x”.

2. Caminho mais Provável: retorna o caminho mais provável, a seleção deste caminho baseia-se na probabilidade de execução do caminho. Esta técnica selecionará os caminhos que possuam probabilidade igual a “x”.

#tcg

✓ Descrição das Técnicas de Seleção

3. Similaridade de Caminho: está técnica reduz o conjunto de casos de teste de acordo com a porcentagem de cobertura de caminho. Está técnica remove os caminhos semelhantes, que possuem um alto grau de similaridade. Dado dois caminhos semelhantes, o caminho removido será o que possuir menos transições, caso sejam do mesmo tamanho a remoção é de maneira aleatória.

4. Similaridade com Peso: é semelhante a técnica anterior. Ou seja, dado dois caminhos semelhantes, o caminho que possuir a menor probabilidade será removido.

#tcg

✓ Descrição das Técnicas de Seleção

5. Propósito de Teste: serve para limitar os casos de teste de acordo com o padrão especificado. É composto de duas partes separadas por &: <padrão>&<flag>

● O padrão é um conjunto de rótulos que também pode conter o * asterisco;● A flag pode conter o “ACCEPT” ou “REJECT”. ACCEPT: faz com que os caminhos que

satisfaçam o padrão especificados sejam aceitos. REJECT: recusa os caminhos que satisfaçam o padrão especificado.

Exemplos:

● *a,b&ACCEPT: retorna todos os caminhos que terminem em “a” seguido de “b”.● a*&ACCEPT: retorna todos os caminhos que comecem em “a”.

#tcg

#estudo_de_caso Tele Assistência (TA)

#estudo_de_caso

✓ Tele Assistência - TA

O TA consiste em uma aplicação de serviço web para assistência remota de pacientes que vivem em suas casas. O processo é iniciado pelo paciente e oferece três opções.

#estudo_de_caso

1. Envio de paramêtros vitais do paciente (vitalparam)

Os parâmetros vitais do paciente são enviados para o laboratório, o laboratório é responsável por analisar os dados e em caso de emergência envia um alarme para a equipe de primeiros socorros, cuja tarefa é atender os pacientes em casa, em caso de emergência.

#estudo_de_caso

2. Envio de um alarme de pânico ao pressionar o botão (pButtonMsg)

Quando o paciente aperta o botão de pânico, o sistema também gera um alarme que é enviado para a equipe de primeiros socorros.

#estudo_de_caso

3. Parar a aplicação (stopMsg)

Indica que o paciente decidiu encerar o serviço de Tele Assistência (TA)

#estudo_de_caso

✓ Tele Assistência - TA

A primeira análise consistiu em gerar os casos de teste utilizando as seguintes técnicas de geração sem adicionar técnicas de seleção:

#estudo_de_caso

✓ Tele Assistência - TA

Na segunda análise, iremos considerar que o usuário selecionou a técnica de geração All Paths e gerou os 630 casos de teste. Contudo, o usuário deseja aplicar a técnica de seleção baseada em Similaridade com Peso para obter um conjunto de testes com tamanho igual a 25% do conjunto original.

#estudo_de_caso

✓ Tele Assistência - TA

Após a aplicação da técnica de seleção baseada em Similaridade com Peso com 25% de cobertura de caminhos, dos 630 casos de teste gerados restaram apenas 158.

✓ Resumo TCG

A ferramenta TCG permite a geração e seleção de casos de teste funcionais e estatísticos:

● 8 técnicas de geração;● 5 técnicas de seleção;● Possibilidade de combinar as técnicas de geração e seleção

com o Propósito de Teste;● Possibilidade de definir um temporizador como condição de

parada

#conclusão

✓ Trabalhos em Andamento

A ferramenta TCG está em constante melhoria desde 2014, novas funcionalidades foram adicionadas, tais como:

● Implementado 3 técnicas de priorização;● Implementado nova técnica de geração;

Desenvolvimento de um novo plugin que cria Diagramas de Sequência na ferramenta LoTuS e transformação dos DS em LTS para então extrair novos casos de testes.

#conclusão

✓ Trabalhos Futuros

● Extração de casos de testes para JUnit;● Estender a técnica Propósito de Teste para atender propósitos

de teste que possuam negação e aceitação;

#conclusão

OBRIGADA! PERGUNTAS?

Slide: http://pt.slideshare.net/laryssamuniz/apresentao-comsolid-2016