>

capaSQL16.JPG

Clique aqui para ler todos os artigos desta edição

Desenvolvimento de aplicações orientadas a objeto apoiado por tecnologias Java

Parte V – Teste e Implantação

por Arilo Cláudio Dias Neto e Rafael Ferreira Barcelos

Leitura Obrigatória: SQL Magazine 12, artigo Desenvolvimento de aplicações orientadas a objeto apoiado por tecnologias Java Parte I.

Leitura Obrigatória: SQL Magazine 13, artigo Desenvolvimento de aplicações orientadas a objeto apoiado por tecnologias Java Parte II – Análise.

Leitura Obrigatória: SQL Magazine 14, artigo Desenvolvimento de aplicações orientadas a objeto apoiado por tecnologias Java Parte III – Projeto.

Leitura Obrigatória: SQL Magazine 15, artigo Desenvolvimento de aplicações orientadas a objeto apoiado por tecnologias Java Parte IV – Codificação.

 

Ao longo desta série de artigos, apresentamos fase a fase a execução de um processo de desenvolvimento de software incremental, onde se adotou uma abordagem orientada a objeto, e que ocorreu através do acompanhamento de um estudo de caso para um sistema de vídeo-locadora. Durante esta série, procuramos mostrar e explicar de forma prática conceitos e abordagens que estão por trás do paradigma de orientação a objetos e da linguagem Java.

Após a realização das fases de análise, projeto e codificação, o passo seguinte consiste na realização de testes nos módulos desenvolvidos minimizando a possibilidade de falhas após a entrega do sistema aos seus usuários finais. Após os erros identificados terem sido solucionados, simulamos o término do desenvolvimento e chegamos na tarefa final do processo, a sua disponibilização para o usuário.

Ao longo desse artigo será descrita a fase de teste (Figura 1). Utilizaremos um framework Java que apóia a realização de testes de unidades em softwares orientados a objetos. Além dos testes dos módulos desenvolvidos, serão apresentadas também as funcionalidades oferecidas pela plataforma Java para que a equipe de desenvolvimento possa disponibilizar o sistema, ou apenas um módulo funcional, ao usuário final.

 

 image002.gif

Figura 1. Etapa do processo abordada neste artigo.

Realizando testes

Teste de software consiste na análise dinâmica do produto, ou seja, na sua execução com o objetivo de verificar a presença de defeitos e desta forma minimizar efeitos negativos em sua confiabilidade. Devemos nos conscientizar que o desenvolvimento de software é uma atividade humana e desta forma é passível de erros, o que torna fundamental a realização de testes durante seu desenvolvimento.

 

Teste de software orientado a objetos

Apesar do paradigma orientado a objetos (OO) permitir construir softwares de melhor qualidade e proporcionar rapidez no desenvolvimento, a realização de testes nesse paradigma é mais complexa devido à hierarquia de classes, encapsulamento, polimorfismo, etc. Existem, principalmente, duas técnicas para a realização de teste em software: estrutural e funcional.

 

Teste estrutural

O teste estrutural também é conhecido como teste caixa-branca (white-box). Nesse tipo de teste, os casos de teste (Nota 1) são realizados a partir da análise da estrutura interna do programa. O objetivo dos casos de teste é causar a execução de caminhos identificados no programa (possibilidades de utilização), baseados no fluxo de controle e/ou no fluxo de dados.

 

Teste funcional

O teste funcional também é conhecido como teste de caixa preta (black box). Os métodos de teste de caixa preta concentram-se nos requisitos funcionais do software. As técnicas de teste funcional derivam os casos de teste a partir da análise da funcionalidade (dados de entrada/saída e especificação) do programa, sem levar em consideração sua estrutura interna.

A abordagem funcional tem o objetivo de complementar a abordagem que as técnicas do teste estrutural apresentam. As categorias de erros mais evidenciadas pelo teste funcional são: erros de interface, funções incorretas ou ausentes, erros nas estruturas de dados ou no acesso a bancos de dados externos, erros de desempenho e erros de inicialização e término.

 

Nota 1. Casos de Teste

Casos de Teste são pontos essenciais na execução dos testes em um software. Um caso de teste descreve uma condição particular a ser testada e é definido por um conjunto de valores de entrada e um resultado esperado. Esse resultado esperado deverá ser comparado com o resultado obtido durante a realização dos testes, o que indicará se o sistema se comportou da forma esperada ou não.

Imaginemos o exemplo de um teste que queira verificar uma função que dado um dia do ano, devolva o dia da semana correspondente. Neste exemplo, um possível caso de teste seria:

Caso de Teste:

Valor de Entrada: 13/09/1982

Resultado esperado: Segunda-feira

 

Ao executar este caso de teste, o valor obtido pela função deverá ser “Segunda-feira”. Caso contrário, o sistema possui um defeito.

No framework JUnit, casos de testes são simplesmente métodos das classes de teste criadas.

Etapas de teste de software

A atividade de teste é divida em etapas. Basicamente, existem três fases: unidade, integração e de sistema.

O teste de unidade tem por objetivo explorar a menor unidade do projeto, procurando identificar erros de lógica e de implementação em cada módulo do sistema separadamente. Em softwares orientados a objeto, pode-se ver a menor unidade a ser testada como sendo o método de uma classe.

O teste de integração objetiva descobrir erros associados às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.

...

Quer ler esse conteúdo completo? Tenha acesso completo