SlideShare uma empresa Scribd logo
LoTuS - TCG
Uma 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 Anotado
Propósito de Teste e Similaridade de
Caminhos
MaTeLo
Cadeias 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 PLTS
Todas 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;
Apresentação comsolid 2016
#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
Apresentação comsolid 2016
✓ 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

Mais conteúdo relacionado

PDF
Seminário sobre GO
PPTX
Introdução a tdd
PPT
Junit 4.0
PPT
PPTX
TDD (Resumo)
PPT
Testes de Sofware
PPTX
Apresentação lições aprendidas
Seminário sobre GO
Introdução a tdd
Junit 4.0
TDD (Resumo)
Testes de Sofware
Apresentação lições aprendidas

Mais procurados (12)

PPTX
Apresentação lições aprendidas
PDF
Palestra Testes Unidade Com JUnit
PDF
PDF
Estratégias e Técnicas de Testes - Parte 2
PDF
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
PPT
Introdução a testes unitários automatizados com JUnit e NUnit
PPTX
Introdução a testes unitários com jUnit
PPTX
Testes Unitários
PDF
Padrões para Desenvolvimento de Software Guiado por Testes
PPT
2 controle fluxo
PDF
Validação e Testes de Software - MOD2
Apresentação lições aprendidas
Palestra Testes Unidade Com JUnit
Estratégias e Técnicas de Testes - Parte 2
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
Introdução a testes unitários automatizados com JUnit e NUnit
Introdução a testes unitários com jUnit
Testes Unitários
Padrões para Desenvolvimento de Software Guiado por Testes
2 controle fluxo
Validação e Testes de Software - MOD2
Anúncio

Destaque (12)

PDF
BT ZTE MF667 Mobile Broadband Dongle
PDF
PDF
How To Amp Up Your Employee Engagement
PDF
1dia logros aprendizaje_pela
DOCX
Instalacion de office
PPT
Attracting audience
PPTX
Etika dan profesionalisme wartawan
PDF
Programming Without Coding Technology (PWCT) - Functions and Procedures
PDF
IMC campaign final
PPT
Java básico - Módulo 05 - Estruturas de Repetição
DOCX
Master Slave Robotic Arm Using Wireless Transmission Of electricity
BT ZTE MF667 Mobile Broadband Dongle
How To Amp Up Your Employee Engagement
1dia logros aprendizaje_pela
Instalacion de office
Attracting audience
Etika dan profesionalisme wartawan
Programming Without Coding Technology (PWCT) - Functions and Procedures
IMC campaign final
Java básico - Módulo 05 - Estruturas de Repetição
Master Slave Robotic Arm Using Wireless Transmission Of electricity
Anúncio

Semelhante a Apresentação comsolid 2016 (14)

PDF
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
PDF
Introdução a Programação Orientada a testes
PDF
TDD: A Essência do Mantra
PPTX
Teste baseado em modelos
PDF
PDF
A cadeia de Markov na análise de convergência do algoritmo genético quando...
PPTX
Machine Learning para diagnostico de falhas em redes
PDF
PPT
Introdução a Desenvolvimento Orientado a Testes ( TDD )
PDF
Um framework para validação automática de modelos aplicado ao subsistema de e...
PPTX
TDD - A Verdadeira Face do Teste
PDF
Geração Aleatória de Dados Para Programas Orientados a Objetos.
PDF
Khomp testes complexos!
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Introdução a Programação Orientada a testes
TDD: A Essência do Mantra
Teste baseado em modelos
A cadeia de Markov na análise de convergência do algoritmo genético quando...
Machine Learning para diagnostico de falhas em redes
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Um framework para validação automática de modelos aplicado ao subsistema de e...
TDD - A Verdadeira Face do Teste
Geração Aleatória de Dados Para Programas Orientados a Objetos.
Khomp testes complexos!

Apresentação comsolid 2016

  • 1. LoTuS - TCG Uma Ferramenta para Geração e Seleção de Casos de Testes Funcionais e Estatísticos
  • 2. ✓ 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
  • 3. ✓ Introdução ✓ Fundamentação Teórica ✓ Trabalhos Relacionados ✓ LoTuS ✓ TCG - Test Case Generation ✓ Estudo de Caso ✓ Conclusão Agenda
  • 4. ✓ 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
  • 5. ✓ 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
  • 6. ✓ 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
  • 7. ✓ 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
  • 8. ✓ 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
  • 9. ✓ 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
  • 10. ✓ 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
  • 11. ✓ 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
  • 12. ✓ 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
  • 13. ✓ 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
  • 14. ✓ 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
  • 15. ✓ 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
  • 16. ✓ 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
  • 17. ✓ 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
  • 18. ✓ 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
  • 19. #trabalhos_relacionados Ferramenta Modelo Técnicas Abordadas TGV IOLTS Propósito de Teste LTS-BT Diagrama de Sequência e LTS Anotado Propósito de Teste e Similaridade de Caminhos MaTeLo Cadeias 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 PLTS Todas as técnicas abordadas neste trabalho.
  • 20. #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;
  • 22. #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.
  • 23. ✓ 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
  • 24. ✓ 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
  • 26. ✓ 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
  • 27. ✓ 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
  • 28. ✓ 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
  • 29. ✓ 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
  • 30. ✓ 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
  • 31. ✓ 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
  • 33. #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.
  • 34. #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.
  • 35. #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.
  • 36. #estudo_de_caso 3. Parar a aplicação (stopMsg) Indica que o paciente decidiu encerar o serviço de Tele Assistência (TA)
  • 37. #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:
  • 38. #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.
  • 39. #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.
  • 40. ✓ 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
  • 41. ✓ 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
  • 42. ✓ 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