• Nenhum resultado encontrado

6 Exemplos de Utilização dos Critérios de Teste

6.3 Resultados dos Exemplos de Utilização

6.3.2 Teste de Integração Inter-Modular

A integração inter-modular é realizada com base nas dependências de dados entre as tabelas e os Módulos da aplicação. Várias associações inter-modular são requeridas pelos critérios para o exemplo de aplicação.

Nos módulos Mod1, Mod2, Mod3 e Mod6, existem várias combinações de

associações com relação a diferentes variáveis tabela. Para continuar a ilustrar o critério inter-modular, apresenta-se uma associação entre os Módulos Mod3 e Mod6 em relação à

variável Employee. A Figura 6.6 mostra uma tela do teste de integração inter-modular dos Módulos Mod3 e Mod6 (envolvendo as Unidades InsEmp (3001) do Módulo Mod3 e a

Capítulo 6 – Exemplos de Utilização dos Critérios de Teste

O Exemplo 6.9 apresenta os elementos requeridos do critério todos os t-usos-ciclo1- inter para a tabela Employee e Módulos Mod3 e Mod6.

ASSOCIACOES REQUERIDAS PELOS CRITERIOS DE INTEGRACAO TODOS_T_USOS INTER_MODULAR: MOD3 X MOD6 -- CICLO1 - MESMA TUPLA - EMPLOYEE Associacoes originadas de Insemp (3001)

01- <3001, <3,4>, 6002, (2,3),EMPLOYEE> 02- <3001, <3,4>, 6002, (5,6),EMPLOYEE> . . .

06- <3001, <3,4>, 6004, (5,6),EMPLOYEE> Associacoes originadas de Delemp (3006) 07- <3006, <3,4>, 6002, (2,3),EMPLOYEE> 08- <3006, <3,4>, 6002, (5,6),EMPLOYEE> . . .

12- <3006, <3,4>, 6004, (5,6),EMPLOYEE> Associacoes originadas de Updemp (3011) 13- <3011, <3,4>, 6002, (2,3),EMPLOYEE> 14- <3011, <3,4>, 6002, (5,6),EMPLOYEE> . . .

18- <3011, <3,4>, 6004, (5,6),EMPLOYEE>

Exemplo 6.9: Arquivo dtuassoc_emp.tes;

Elementos requeridos do critério todos os t-usos-ciclo1-inter.

Este é um exemplo montado para exercitar a integração das unidades do Módulo Mod6, que não têm nenhuma definição persistente das variáveis tabela referenciadas neste

Módulo. Sendo assim, não existe nenhum elemento requerido pelos critérios de integração intra-modular para o Módulo Mod6. Com a integração inter-modular foi possível exercitar

as unidades do Módulo Mod6 integrando-o com outros Módulos (Mod2 e Mod3). A POKE-

TOOL não apóia o teste de integração; para executar o teste de integração inter-modular o programa pokeexec foi substituído pelo programa pokeexec_inter, que executa os casos de teste para a integração inter-modular. O programa pokeexec_inter é decomposto em dois programas, visando a satisfazer os critérios de ciclo1 e ciclo2 para o teste inter-modular. Os critérios todos os t-usos-ciclo1-inter e todos os dtu-caminhos-inter foram aplicados através do programa pokeexec_inter_1 e o critério todos os t-usos-ciclo2-inter foi aplicado através

do programa pokeexec_inter_2. O Exemplo 6.10 mostra os arquivos de saída pathint.tes e keyint.tes, gerados pela execução dos casos de testes.

Esses arquivos são usados na avaliação da cobertura dos critérios todos os t-usos- ciclo1-inter e todos os dtu-caminhos-inter.

Os arquivos para a avaliação desses critérios são organizados da mesma forma que os arquivos para avaliação do teste de integração (intra-modular), referente aos mesmos critérios.

Os critérios todos os t-usos-ciclo1-inter e todos os t-usos-ciclo2-inter (Mod3xMod6)

para a variável tabela EMPLOYEE requerem 18 (dezoito) associações. Para satisfazer essas associações foram necessários 18 casos de testes, sendo 9 para executar o Módulo Mod3 e 9

Employee 3 4 y r e 7 8 e w 1 y u f r 5 7 3 4 5 R R d 5 7 t q 4 r d j e 7 8 0 5 4 F F c 3 6 r t 6 w s b h 9 3 1 2 3 G R b 2 5 s r 5 w y s g 6 7 4 7 2 T F h 7 2 d u 4 r j c n 5 5 1 6 7 Y R j 8 8 t q 4 r n j e 7 8 0 8 8 N F k 1 9 r t 6 w s b h 9 3 1 9 9 H R l 3 0 f i 5 r x s g 3 3 1 0 7 J T q 2 1 h o 6 w v c n 2 2 2 2 0 M r w 5 2 t q 4 r D j e 7 8 0

Figura 6.6: Teste de Integração inter-modular: Unidade Insemp do Módulo Mod3 e

Capítulo 6 – Exemplos de Utilização dos Critérios de Teste

para Mod6 no ciclo1 (associações apresentadas no Exemplo 6.9); para o ciclo2 foram

necessários 27 casos de testes, sendo 18 para o Mod3 e 9 para o Mod6 (associações

apresentadas no Exemplo 6.10).

O principal objetivo do teste estrutural de programas de aplicação é detectar a presença de defeitos relacionados à implementação. Contudo, existem situações em que o teste em ABDR exercita: i) a consistência nos comandos de manipulação da SQL em relação a um atributo das variáveis tabela (por exemplo: se, no comando UPDATE, o programador permitisse uma alteração de um atributo que é chave estrangeira de outra tabela – acusaria o erro de consistência); ii) se a segurança das transações entre os comandos de manipulação da base de dados está correta (exemplo: um comando que removesse uma tupla que tem uma regra relacionada a outra tabela – o sistema não deveria permitir a exclusão da tupla). Isso foi observado após a execução dos casos de testes na

#1 3001 1 2 3 4 5 #1 6002 1 2 3 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 8 4 9 10 #2 3011 1 2 3 4 5 #2 6002 1 2 3 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 7 8 4 5 6 8 4 9 10 #3 3001 1 2 3 4 5 #3 6003 1 2 3 4 5 6 7 8 4 5 6 8 4 9 10 #4 3011 1 2 3 4 5 #1 3001 EMPLOYEE: 1920 #1 6002 DEPARTAMENTO: 400 EMPLOYEE: 1920 #2 3011 EMPLOYEE: 1920 #2 6002 DEPARTAMENTO: 300 EMPLOYEE: 1920 #3 3001 EMPLOYEE: 1901 #3 6003 DEPARTAMENTO: 200 EMPLOYEE: 902 #4 3011 EMPLOYEE: 1576 #4 6003 DEPARTAMENTO: 400 EMPLOYEE: 1576

integração intra-modular e inter-modular. Defeitos em comandos de consultas da SQL (uso de “queries” indevidas) são detectados ao exercitar os elementos requeridos pelos critérios de integração (intra-modular e inter-modular).

Várias associações com dependência múltipla foram detectadas nos Módulos Mod3

e Mod6. Neste caso foi gerado o arquivo dtu_assoc_inter_mod3x6.tes, mostrado no

Exemplo 6.10. Aqui vemos uma situação onde o Módulo Mod6 não possui nenhum

elemento requerido para o teste de integração intra-modular e no entanto ele é exercitado no teste de integração inter-modular.

ASSOCIACOES REQUERIDAS PELOS CRITERIOS DE INTEGRACAO TODOS_T_USOS INTER_MODULAR: MOD3 X MOD6 -- CICLO2 - MESMA TUPLA - EMPLOYEE, SALES_ORDER E DEPARTAMENTO

Associacoes originadas de Insemp(3001),Inssal(3002) e Insdep(3003) 01- <3003,(3,4),3001,(3,4),6002,(2,3),{DEPARTAMENTO,EMPLOYEE}> * 1 02- <3003,(3,4),3001,(3,4),6002,(5,6),{DEPARTAMENTO,EMPLOYEE}> * 1 . . .

06- <3001,(3,4),3002,(3,4),6004,(5,6),{SALES_ORDER,EMPLOYEE}> * 3 Associacoes originadas de Delemp(3006),Delsal(3007) e Deldep(3008) 07- <3006,(3,4),3008,(3,4),6002,(2,3),{DEPARTAMENTO,EMPLOYEE}> 08- <3006,(3,4),3008,(3,4),6002,(5,6),{DEPARTAMENTO,EMPLOYEE}> . . .

12- <3007,(3,4),3006,(3,4),6004,(5,6),{SALES_ORDER,EMPLOYEE}>

Associacoes originadas de Updemp(3011), Updsal(3012) e Upddep(3013) 13- <3013,(3,4),3011,(3,4),6002,(2,3),{DEPARTAMENTO,EMPLOYEE}> 14- <3013,(3,4),3011,(3,4),6002,(5,6),{DEPARTAMENTO,EMPLOYEE}> . . .

18- <3011,(3,4),3012,(3,4),6004,(5,6),{SALES_ORDER,EMPLOYEE}>

Exemplo 6.10: Elementos requeridos pelo critério todos os t-usos-ciclo2-inter.

As comparações apresentadas visam a avaliar a utilização dos critérios de teste propostos. Um dos principais problemas no teste de integração é a geração do grande volume de dados em cada tipo de integração (intra-modular e inter-modular), dificultando a elaboração da análise de cobertura. A cobertura neste caso deve ser observada entre as ocorrências das Unidades envolvidas na definição da variável tabela com a Unidade que usou a variável tabela para a mesma tupla, um exemplo é mostrado no final do Apêndice C.

Capítulo 6 – Exemplos de Utilização dos Critérios de Teste