Engenharia de Software 1 - Aula 7 - Teste OO
Engenharia de Software 1 - Aula 7 - Teste OO
Engenharia de Software 1 - Aula 7 - Teste OO
O objetivo de qualquer teste de software encontrar o maior nmero de erros possveis, com um mnimo de esforo aplicado.
medida que a programao orientada a objeto cresce, mais reuso de padres ser utilizado. Ento, isso minimiza a necessidade de testar completamente sistemas O.O?
Uma diferena importante do teste de programas procedimentais em relao aos modelos orientados a objetos encontra-se no fato que as aplicaes orientadas a objetos no so executadas seqencialmente. A menor unidade de teste para sistemas orientados a objetos a classe, pois onde encontramos uma coleo de declaraes de variveis e funes.
Classes abstratas: no possvel test-las diretamente, pois no so instanciveis. Herana: uma mudana numa subclasse pode impactar todas as subclasses.
Polimorfismo: muitas vezes no possvel dizer qual cdigo ser executado quando da utilizao de uma funo polimrfica.
Encapsulamento: impossibilita a visualizao do contedo dos atributos, dificultando o teste.
A estratgia clssica para testar software comea com o teste em pequena escala e trabalho em direo ao teste em larga escala.
Isto significa, comearmos com o teste de unidade, depois progredirmos para o teste de integrao, validao e do sistema.
Testes de unidade
Testes de integrao
Os mdulos do sistema devem ser testados em conjunto. os requisitos estabelecidos so testados para a verificao se o sistema corresponde ao que o cliente pediu.
So verificadas a segurana, desempenho, etc. do sistema.
Testes de validao
Teste de Sistema
Quando considerado o software orientado a objetos, o conceito de unidade se modifica. Cada classe e cada objeto empacotam os atributos (dados) e as operaes (mtodos). Ao invs de testar um programa individual, testa-se a classe.
Possibilita o teste de mtodos de cada classe uma tcnica caixa-branca, onde o conhecimento da estrutura interna do sistema deve ser conhecida Necessita de um bom planejamento de testes A utilizao de ferramentas fundamental A utilizao de testes automatizados pr-requisito para a realizao de testes de regresso.
Teste de integrao
Uma estratgia para esse tipo de teste a integrao de classes necessrias e teste baseado no caminho de execuo para responder a uma entrada ou evento do sistema.
Testes de validao
No nvel de validao, o testador deve se apoiar nos casos de uso que so parte do modelo de anlise. O caso de uso fornece um cenrio que tem uma alta probabilidade de descobrir erros nos requisitos de interao com o usurio.
Teste de sistema
Deve ser utilizado os mesmos testes de segurana, estresse, etc. como no modelo clssico.
Para avaliar a consistncia, cada classe e suas conexes com outras classes devem ser examinadas.
O modelo classe-responsabilidade colaborao (CRC) pode ser usado para facilitar essa atividade.
O modelo CRC composto por fichas ou cartes. Cada ficha lista o nome da classe, suas responsabilidades (operaes) e suas colaboraes (outras classes para as quais ela envia mensagens e das quais ela depende para a satisfao de suas responsabilidades).
A modelagem classe-responsabilidadecolaborao (CRC) fornece um meio para identificar e organizar as classes que so relevantes aos requisitos do sistema. O modelo CRC uma coleo de fichas de indexao que representam classes. As fichas so divididas em trs partes.
Colaboradores
operaes
Revisitar o modelo CRC. Fazer uma verificao cruzada para garantir que todas as colaboraes implicadas pelo modelo OOA esto representadas adequadamente. Inspecionar a descrio de cada ficha CRC para determinar se uma responsabilidade parte da definio da colaborao. Exemplo: para entrar com o montante de uma compra a crdito, necessrio ler primeiramente o carto de crdito. Determinar se responsabilidades muito solicitadas poderiam ser combinadas em uma nica responsabilidade. Por exemplo, ler carto de crdito e obter autorizao ocorrem em toda situao.
2.
3.
Colaboradores
Carto de crdito Autoridade de crdito
Registro da venda
Gerar nota de venda Nota de venda
A configurao do ambiente fundamental Test Driven Development: testes so escritos antes da implementao
Prtica XP, sendo uma de suas atividades mais importantes Importante em nveis iniciais do CMMI e do MPS.BR Testar uma tarefa custosa, portanto, o seu planejamento fundamental
Referncias
PARASOFT CORPORATION. Negcios integrados. Disponvel em: <http://www.ni.com.br/produtos/f_parasoft.html> Acesso em 8 de junho 2006. DELAMARO, Mrcio Eduardo; MALDONADO, Jos Carlos; JINO, Mario. Introduo ao Teste de Software. Campus, 2007. PRESSMAN, Roger. Engenharia de Software. So Paulo: Makron Books, 2002. SOMMERVILLE, Ian. Engenharia de Software. So Paulo: Pearson Adilson Wesley, 2003.