Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Centro Tecnolgico
Departamento de Informtica
Contedo
1.
Introduo
2.
Processo de Software
3.
4.
Gerncia da Qualidade
5.
6.
Projeto de Sistemas
7.
Implementao e Testes
8.
Entrega e Manuteno
Engenharia de Software
7. Implementao e Testes
Implementao
Consiste na codificao do software .
realizada por programadores.
Programadores, geralmente, trabalham em equipe e precisam integrar, testar e
alterar cdigo produzido por outros.
muito importante que haja padres organizacionais para a fase de
implementao.
Esses padres devem ser seguidos por todos os programadores e devem
estabelecer, dentre outros, padres de nomes de variveis, formato de cabealhos
de programas e formato de comentrios, recuos e espaamento, de modo que o
cdigo e a documentao a ele associada sejam claros para quaisquer membros
da organizao.
Engenharia de Software
7. Implementao e Testes
Testes
Uma vez implementado o cdigo de uma aplicao, ele deve ser testado para
descobrir tantos defeitos quanto possvel, antes da entrega do produto de
software ao seu cliente.
Testes so atividades de verificao e validao.
Mesmo se um teste no detectar defeitos, isso no quer dizer necessariamente
que o produto um produto de boa qualidade. Os testes podem ter sido mal
conduzidos.
Princpios dos Testes:
Teste completo no possvel.
Teste envolve vrios estgios.
Teste deve ser conduzido por terceiros.
Testes devem ser planejados antes de serem realizados.
Engenharia de Software
7. Implementao e Testes
Processo de Testes
Planejamento de Testes: trata da definio das atividades de teste, das estimativas dos
recursos necessrios para realiz-las, dos objetivos, estratgias e tcnicas de teste
a serem adotadas e dos critrios para determinar quando uma atividade de teste
est completa.
Execuo dos testes: consiste na execuo dos casos de teste e registro de seus
resultados.
Engenharia de Software
7. Implementao e Testes
Tcnicas de Testes
Essencialmente, h dois tipos de testes:
Engenharia de Software
7. Implementao e Testes
Testes Caixa Branca
Testes de estrutura de controle
Enfocam as estruturas de controle de um mdulo, tais como comandos,
condies e laos.
Teste de condio um tipo de teste de estrutura de controle que exercita as
condies lgicas contidas em um mdulo.
Um teste de fluxo de dados, por sua vez, seleciona caminhos de teste
tomando por base a localizao das definies e dos usos das variveis nos
mdulos.
Testes de ciclo ou lao focalizam exclusivamente os laos (loops).
Teste de caminho bsico
Define uma medida de complexidade lgica de um mdulo e usa essa
medida como guia para definir um conjunto bsico de caminhos de
execuo.
Engenharia de Software
7. Implementao e Testes
Testes Caixa Preta
Particionamento de equivalncia
Tendo isso em mente, a anlise de valor limite leva seleo de casos de teste
que exercitem os valores limtrofes.
Engenharia de Software
7. Implementao e Testes
Estratgias de Testes
a) Teste de Unidade: tem por objetivo testar a menor unidade do projeto (um
componente de software que no pode ser subdividido), procurando identificar erros
de lgica e de implementao em cada mdulo separadamente.
Engenharia de Software
7. Implementao e Testes
Estratgias de Testes
b)Teste de Integrao: visa a descobrir erros associados s interfaces entre os
mdulos quando esses so integrados para formar estrutura do produto de software.
Engenharia de Software
7. Implementao e Testes
Estratgias de Testes
c) Teste de Sistema: tem por objetivo identificar erros de funes (requisitos
funcionais) e caractersticas de desempenho (requisito no funcional) que no estejam
de acordo com as especificaes. Muitas vezes, so chamados de testes de validao.
Os testes de sistema incluem
diversos tipos de teste,
realizados na seguinte ordem :
Teste funcional
Teste de desempenho
Teste de aceitao
Teste de instalao
Engenharia de Software
7. Implementao e Testes
Testes: algumas questes
O qu e quanto tentar?
Lei de Pareto:
Engenharia de Software
7. Implementao e Testes
Testes: algumas questes
Engenharia de Software
7. Implementao e Testes
Plano de Testes
Um exemplo bem simples
Caso de Teste para a funo Substituir de um editor de teste.
Engenharia de Software
7. Implementao e Testes
Testes automatizados
Exemplo de ferramenta de apoio a testes automatizados: JUnit
Engenharia de Software
8. Entrega e Manuteno
Entrega
No momento da entrega, duas questes so cruciais : treinamento e documentao.
essencial que o treinamento de pessoal seja realizado para que os usurios e
operadores possam operar o sistema adequadamente.
A documentao que acompanha o sistema ser utilizada como material de referncia
para a soluo de problemas ou como informaes adicionais.
Essa documentao inclui, dentre outros, manuais do usurio e do operador, guia
geral do sistema, tutoriais, ajuda (help) - preferencialmente online - e guias de
referncia rpida.
Engenharia de Software
8. Entrega e Manuteno
Manuteno
O desenvolvimento de um sistema termina quando o produto entregue para o cliente e entra
em operao.
A partir da, deve-se garantir que o sistema continuar a ser til e atendendo s necessidades do
usurio, o que pode demandar alteraes no mesmo. Comea, ento, a fase de manuteno.
H muitas causas para a manuteno, dentre elas: falhas no processamento devido a erros no
software, falhas de desempenho, alteraes no ambiente de dados, alteraes no ambiente de
processamento, necessidade de modificaes em funes existentes e necessidade de incluso
de novas capacidades.
O processo de manuteno semelhante (mas no igual) ao processo de desenvolvimento e
pode envolver atividades de levantamento de requisitos, anlise, projeto, implementao e
testes, agora no contexto de um software existente.
Engenharia de Software
8. Entrega e Manuteno
Tipos de Manuteno
Engenharia de Software
Referncias
FALBO, R. A., BARCELLOS, M. P., 2011, Notas de Aula Engenharia de Software Parte II,
Departamento de Informtica, Universidade Federal do Esprito Santo.
MIELKE, I., CARRARETTO, R., HOLZ, H., 2011, Testes de Software, Apresentao realizada na
disciplina Qualidade de Software, Mestrado em Informtica, Departamento de Informtica,
Universidade Federal do Esprito Santo.
Engenharia de Software
10