• Nenhum resultado encontrado

4.4 Resultados Experimentais

4.4.2 Ocorrência no MPEG4

Em relação à descoberta de novos critérios de cobertura, o principal resultado obtido foi na integração de blocos de projeto do sistema MPEG 4. Na integração envolvendo os blocos

Bitstream e PIACDC/QI, foi possível melhorar os critérios de coberturas e fazer com que

novos cenários de simulação fossem exercitados. Esta integração está ilustrada nas figuras 4.4 e 4.5. A Figura 4.4 é a ilustração dos ambientes de verificação de cada um dos blocos. No item a da Figura 4.5, que foi obtida a partir da Figura 4.1, é possível perceber que PIACDC e QI constituem dois blocos separados do MPEG 4. De fato existem estes dois blocos codifi- cados em RTL. No entanto, não existe um modelo de referência para cada um deles. Não foi possível decompor o código do Xvid para que houvesse um modelo de referência para cada um deles. Assim, na prática, a verificação funcional dos blocos PIACDC e QI ocorre como se os dois tivessem sido integrados em único bloco.

O ambiente de verificação da integração dos blocos Bitstream e PIACDC/QI fica como no item b da Figura 4.5. Por parte do bloco PIACDC/QI, dois componentes do tipo TDriver são perdidos. Por parte do bloco Bitstream, dois componentes do tipo TMonitor são perdidos. Além disso, parte do gerador de estímulos do PIACDC/QI é eliminada, pois o bloco vizinho passa a fazer a geração de tais estímulos.

A análise dos componentes que são descartados na integração revelou que certos cenários de simulação não foram considerados na verificação funcional do bloco PIACDC. O incre- mento na especificação da verificação do bloco PIACDC foi avaliado por meio de cobertura estrutural. Usando a ferramenta gcov para programas C, três baterias de verificação funcional foram realizadas. Em cada uma delas, mediu-se a cobertura de linha de código e cobertura de ramificação. A primeira bateria foi realizada usando-se o ambiente de verificação original

Figura 4.4: Ambientes de verificação de blocos do MPEG 4: a) bloco Bitstream e b) bloco PIACDCQI.

Figura 4.5: Integração dos blocos Bitstream e PIACDCQI: a) diagrama de blocos obtido a partir da Figura 4.1 e b) ambiente de verificação.

do bloco PIACDC/QI. A segunda bateria considerou não apenas o bloco PIACDC/QI, mas a integração deste com o Bitstream, tal como ilustrado no item b da Figura 4.5. A terceira foi realizada com o bloco PIACDC/QI, mas com o novo ambiente de verificação funcional. Os números da análise de cobertura de linhas de código e de ramificação obtidos em cada uma das baterias estão na Tabela 4.2.

Tabela 4.2: Resultados experimentais usando análise de cobertura estrutural para os blocos QI e PIACDC do MPEG 4.

Cobertura de Linha de Código Cobertura de Ramificação

Spec. Original Integração Spec. Nova Spec. Original Integração Spec. Nova

QI 78,93 71,85 82,37 48,91 43,06 50,77

PIACDC 97,83 91,97 99,28 82,87 76,36 84,11

Os piores valores de cobertura estrutural foram obtidos com o ambiente de verificação da integração dos blocos. Estes valores são de certa forma esperados porque diversos compo- nentes que podem conter critérios de cobertura não são reusados. No entanto, quando estes componentes que não são reusados são considerados para melhorar especificação de cada bloco isoladamente, obteve-se uma cobertura maior que a obtida usando-se a especificação original de cada bloco.

A análise de cobertura estrutural somente através do percentual de cobertura obtido pode ocultar uma informação importante para a validação do trabalho proposto. Embora a verifi- cação funcional com o ambiente de verificação da integração dos blocos tenha produzido os piores valores de cobertura estrutural, existe a possibilidade de que a parte coberta na inte- gração seja justamente a parte que não foi coberta na verificação isolada dos blocos. Neste caso, a verificação isolada de cada bloco e a verificação da integração de ambos estariam funcionando de forma complementar, como se cada uma fosse responsável por cobrir uma parte do código.

Ao analisar em detalhes as partes cobertas em cada bateria de verificação, percebe-se que a verificação da integração não cobre as partes do código que ficaram descobertas na verificação individual de cada bloco. As figuras 4.6 e 4.7 representam graficamente as partes cobertas nos blocos QI e PIACDC respectivamente. Existem três barras horizontais em cada figura, uma para cada especificação utilizada na verificação funcional. A primeira barra é

referente à verificação funcional do bloco com sua especificação original. A segunda barra é referente à verificação do bloco com a especificação que permanece nos componentes reu- tilizados na verificação da integração. A terceira barra diz respeito à verificação com as especificações que foram obtidas pela aplicação da abordagem proposta neste documento. Os números abaixo de cada barra representam o número da linha do bloco de projeto. Os trechos em branco em cada barra representam partes do código que não foram exercitadas. A partir do alinhamento das três barras, é possível perceber que todas as partes cobertas com o ambiente de verificação da integração são também cobertas na verificação individual de cada bloco. Novos trechos de código são exercitados quando se utiliza a nova especificação, obtida pela análise dos componentes que são descartados na construção do ambiente de ve- rificação da integração. Os resultados obtidos na verificação da integração após aplicação da abordagem proposta são os mesmos obtidos na verificação da integração antes da aplicação da abordagem proposta. Isto porque a análise dos componentes descartados revelou novas especificações para os blocos PIACD e QI, enquanto as especificações para o bloco Bitstream permaneceram as mesmas. Conseqüentemente, para este caso, o ambiente de verificação da integração não se altera após aplicação da abordagem proposta.

Figura 4.7: Representação gráfica da análise de cobertura de código do bloco PIACDC.