• Nenhum resultado encontrado

Estudo de Caso

7.1 Trabalhos Relacionados

várias simplificações e abstrações inerentes ao modelo formal utilizado por ATG para gerar os testes. Apesar das simplificações na especificação CSP, comparando a cobertura e a redun- dância entre os dois grupos de teste (geração manual e geração automática), foi verificado que, para um mesmo caso de uso, testes que são funcionalmente equivalentes, possuem a mesma co- bertura e nível de redundância estrutural, sejam eles gerados automáticos ou gerados manuais. Outros fatores bastante positivos do estudo foi a redução de esforço para gerar testes devido a adoção da ferramenta ATG, e, a facilidade observada para gerar os casos automaticamente em comparação com os testes manuais. A geração automática de testes guiada por propósitos CSP permitiu realizar uma seleção dos requisitos especificados pelos propósitos de teste fornecidos como entrada.

7.1

Trabalhos Relacionados

Em [RW05], considerando um processo CSP que especifica o comportamento de diagramas de seqüência UML, CSP e FDR são utilizados para verificar a presença ou ausência de cenários (seqüências de eventos fornecidas) no comportamento da especificação. Expressões de refina- mento entre processos (utilizando modelo de traces, de falhas e divergências) são empregadas para verificar propriedades de liveness (se dado cenário eventualmente ocorre na especificação) e safety (se dado cenário de erro não ocorre na especificação). Entretanto, nenhum dos traba- lhos anteriores, que se tem conhecimento, utiliza CSP e FDR como únicas ferramentas para geração de testes, sejam dirigidas ou não por propósitos de teste.

Técnicas de geração de teste peculiares a outros formalismos empregam propósitos de tes- tes para descrever propriedades particulares do sistema a ser testado como em [SEG00], que utiliza MSC, ou [JJ05], que utiliza IOLTS, ou como [Hol04], que emprega Lógica Temporal. Os dois primeiros formalismos são usados geralmente para especificar propriedades de live-

ness, enquanto lógica temporal especifica tanto propriedades de safety quanto propriedades de liveness. Propósitos de teste CSP especificam apenas propriedades de liveness, não consideram

propriedades de safety como deadlock e deadlock durante a geração de testes e na elaboração do modelo de execução de testes. Isto se deve a simplicidade do modelo de CSP adotado, o modelo de traces.

A técnica que utiliza refinamento de traces entre processos apresentada neste trabalho lem- bra o princípio utilizado para obtenção de seqüência de teste a partir de propriedades em Lógica Temporal. Enquanto nossa abordagem utiliza refinamentos para obtenção de contra-exemplos (cenários de teste) da especificação, que possuem as propriedades especificadas pelo propósito de teste CSP, técnicas de Lógica Temporal empregam a verificação da negação de uma pro- priedade temporal (descrita como uma fórmula temporal) para obter traces de contra-exemplos onde aquela propriedade é verdade na especificação. Enquanto as fórmulas da Lógica Temporal descrevem as propriedades dos testes a serem obtidos em termos do valor das variáveis encon- tradas nos estados da especificação, propósitos de teste CSP descrevem propriedades (cenários) com respeito à ocorrência de eventos na especificação.

7.1.1 A ferramenta TGV

Nossa abordagem baseia-se na relação de implementação cspioco , cuja hipótese é que a IUT possa ser modelada por um processo CSP. A ferramenta TGV (Test Generation with Verifi-

cation) baseia-se na relação ioco e na Teoria de Testes de Tretmans [Tre96a], projetada es-

pecificamente para testar sistemas reativos (onde a IUT nunca rejeita as entradas fornecidas pelo teste), cuja hipótese é que a IUT possa ser modelada via um IOLTS. Portanto, claramente existem alguns pontos correlatos entre TGV e nossa abordagem, no que diz respeito às teorias utilizadas.

• O modelo de execução de um teste com a IUT em nossa abordagem é montado como

a composição paralela do processo que representa a IUT com o processo do caso de teste. Neste modelo de execução, a comunicação entre teste e implementação é síncrona: saídas do teste sincronizam nas saídas do sistema e as entradas do teste nas entradas do sistema. Os veredictos da execução são alcançados quando o teste comunica um dos eventos de veredicto, o que provoca um deadlock que sinaliza o fim da execução do teste. Teste e implementação podem ocasionalmente entrar em deadlock em alguns pontos onde nenhum veredicto está definido. Já em TGV, a execução é entendida como a execução paralela de dois IOLTS (IUT e teste), onde as saídas do caso de teste sincronizam com as entradas da implementação, e as saídas da implementação sincronizam com as entradas do caso de teste. Sempre que ocorrer um deadlock na execução do teste, um estado de veredicto do teste é alcançado; e,

• Os veredictos que podem ser alcançados por um caso de teste CSP em nossa teoria são:

passou, falhou e inconclusivo. Os veredictos da teoria de teste de Tretmans são os mes- mos, com excessão do significado para inconclusivo, que é diferente. Na nossa teoria, o veredicto inconclusivo acontece quando, durante a execução do teste, a implementa- ção apresenta um comportamento especificado, porém diferente do comportamento do cenário de teste. Na Teoria de Tretmans, inconclusivo ocorre quando se especifica, no propósito de teste, um comportamento que deve ser desconsiderado da seleção e, durante a execução do teste contra a IUT, a IUT se comporta de acordo com o comportamento a desconsiderado.

Também existem vários pontos correlatos nas técnicas utilizadas para obter testes CSP, a partir de propósitos de teste CSP, e das técnicas empregadas para geração de testes IOLTS, a partir de propósitos IOLTS utilizado por TGV [JJ05] :

• A especificação CSP possui uma separação sintática dos alfabetos de entrada e saída (dois

conjuntos são definidos para especificar tal separação); já IOLTS em TGV possui uma separação semântica dos eventos de entrada e saída (faz parte da definição de IOLTS);

• Os propósitos de teste CSP são determinísticos e completos (aceitam todos os eventos do

alfabeto da especificação em qualquer momento) e os propósitos IOLTS também o são;

• Na medida em que propósitos de teste CSP são equipados com eventos de demarcação

para aceitação (canal accept) e recusa (canal refuse), TGV emprega estados de aprisio- namento (trap states) para aceitação e recusa; e,