>
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. 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