*
Teste e Manutenção de Software
Grupo:
Matheus Souza Silva
Thiago Gonçalves
*
O Software está cada vez mais presente na vida das
pessoas, seja no celular, nos bancos, nos automóveis e entre
outros. Com isso, ele estão se tornando cada vez mais
complexos e exigem um grau mais elevado de responsabilidade
na processo de produção. A maioria das pessoas já passaram
por uma experiência ruim com algum software que não funciona
corretamente e não inspiram confiança ao usuário. Para evitar
esse tipo de problema, a empresa produtora do software deverá
investir em Teste de Software, pois reduzem a ocorrência de
erros no ambiente de produção. Mas o que é Teste de Software?
*
Teste de Software é um processo da Engenharia de Software que é
realizado pelo testador a fim de fornecer informações sobre sua
qualidade no contexto onde ele deve operar.
*
Existem várias técnicas que o testador pode utilizar para realizar o Teste
de Software, as principais são:
Caixa Branca
Caixa Preto
Vamos Explicar cada uma delas!
*
A técnica Caixa Branca testa a parte interna do software, ou seja,
essa técnica trabalha diretamente com o código-fonte do componente
de software. Essa técnica irá avaliar : teste de condição, teste de
fluxo de dados, teste de ciclos, teste de caminhos lógicos e os códigos
nunca executados.
*
 Critérios baseados em Fluxo de Controle
Fluxo de Controle é a ordem em que as instruções ou expressões de
funções são executadas ou avaliadas em um software.
 Critérios baseados em Fluxo de Dados
Fluxo de Dados é quando valor de todas as variáveis do software
mudam decorrente da mudança de uma única variável
*
 Os valores de entradas são selecionados de modo que os caminhos
são selecionados sejam executados;
 Os valores de saídas são determinados;
 Os casos de testes são construídos;
 As saídas obtidas são comparadas com as saídas esperadas;
 Um relatório é gerado para avaliar o resultado do teste;
*
 Os critérios da técnica Caixa Branca podem ser usados em qualquer
fase do teste;
 São comuns nos testes de unidade;
 Diferentes caminhos dentro de um produto em teste;
*
 É possível garantir que partes importantes do programa sejam
executadas;
 Facilidade de encontrar valores de entradas úteis para o teste,
otimizando o sistema;
*
 O número de caminhos a serem executados podem ser infinitos,
tornando o teste exaustivo;
 Caminhos não executáveis podem ser determinados;
 Dificuldade de automatização;
*
O nome Caixa Preta vem do sentido de que nesse teste, não exige
conhecimento da estrutura interna do software. Esse teste é
usado para verificar a saída dos dados usando de entrada vários
valores, tais entradas não são escolhidas conforme estrutura do
programa.
*
 Particionamento de Equivalências
Procura definir um caso de teste que descubra classes de erros,
reduzindo o número total de casos de teste que devem der resolvidos.
 Teste de Paridade
É um teste que permite que você reduza um conjunto grande de
entradas do casos de teste para um conjunto bem menor.
*
 A especificações de requisitos é analisada;
 Entradas válidas são testadas para determinar se o software está
funcionando dentro do contexto;
 Os casos de teste são construídos;
 O conjunto de testes são executados;
 Os relatórios são gerados para avaliar os testes;
*
 Pode ser aplicado em todas as fases de teste;
 A complexidade de aplicação aumenta de fase em faz
*
 Pode ser utilizado em todas as fases de testes;
 Pode ser utilizado independente do paradigma de programação;
 Eficaz em detectar determinados tipos de erro;
*
 O teste depende de uma boa especificação de requisitos, o que~,
em geral, não é bem feito;
 Não é possível garantir que partes essenciais dos software sejam
executadas;
 Para encontrar todos os defeitos utilizando o teste Caixa Preta é
necessário o teste exaustivo;
*
 Teste de Unidade:
Essa fase testa as menores unidades de software desenvolvidas. Esse
teste encontra falhas de funcionamento dentro de uma pequena parte
do sistema;
 Teste de Integração:
O objetivo é encontrar falhas na integração interna dos componentes de
um software.
 Teste de Sistema:
No Teste de Sistema o objetivo é executar o software sob o ponto de
vista do usuário final, fazendo os teste de interface, ambiente de
software e massa de dados.
 Teste de Aceitação:
O Teste de aceitação é realizado por um grupo de usuários finais, que
simulam rotinas diárias que eles iram realizar, para verificar se o
software está funcionando de acordo com o contexto.
 Teste de Operação:
O Objetivo desse teste é realizar a entrada do software no ambiente
produtivo, testando a instalação e a segurança dos banco de dados.
 Teste Alfa:
É o uso do sistema no ambiente produtivo, mas com a supervisão do
desenvolvedor, registrando erros e problemas no uso contínuo do
software.
 Teste Beta:
O Teste Beta é realizado sem a presença do desenvolvedor, fazendo
com que o cliente analise os erros, e em intervalos regulares, passar
esses erros para o desenvolvedor. Com os resultados, os engenheiro
fazem as modificações e liberam o produto para seus clientes.
*
 Planejamento:
Nesta faze é elaborada a maneira como o teste será realizados eé
criado o Plano de Teste e a Estratégia de Teste.
 Preparação:
O objetivo desta fase é preparar o ambiente de teste, ou seja,
equipamentos, equipe, ferramentas e etc.
 Especificação:
Revisar os casos de teste e elaborar roteiros de teste.
 Execução:
É nessa fase que os testes serão realizados e os relatórios serão
gerados para analisar os resultados.
 Entrega:
É nessa fase que o projeto é finalizado e a documentação é arquivada
*
O JUnit é uma ferramenta open-source que facilita a criação de código
para a automação de testes com apresentação dos resultados. Com
ele, pode ser verificado se cada método de uma classe funciona da
forma esperada, exibindo possíveis erros ou falhas podendo ser
utilizado tanto para a execução de baterias de testes como para
extensão.
*
*
Manutenção de Software é uma etapa da
Engenharia de Software, que é responsável pelo
melhoria e otimização de um software já
desenvolvido.
*
Manutenção de Software envolve:
 Mudança no software para corrigir problemas e deficiências que
foram encontrados pelo usuário final;
 Aprimoramento do software, adicionando novas funcionalidades
para melhor a sua usabilidade;
*
Corretiva – Realiza a manutenção das
deficiências do Software
Adaptativa – Ocorre quando há alguma
mudança do ambiente
Aperfeiçoadora – Melhoria na qualidade
do software
*
 A maioria dos problemas encontrados na fase da Manutenção, são
causados por falta de planejamento e por seu mal desenvolvido;
 Grande parte das alterações não são documentadas, dificultando a
evolução do software;
 Documentação inexistente ou desatualizada;
 Grande parte dos softwares desenvolvidos, não foram projetados
para receberem alterações;
*
*
 Teste de Software, Emerson Rios – Altas Book
http://www.submarino.com.br/produto/1/186943/teste+de+software
 Teste e Análise de Software, Michael Young - Artmed
http://www.submarino.com.br/produto/1/21392919/teste+e+analise+
de+software
 Manutenção de Software, David Bellin – Makron Books
http://www.estantevirtual.com.br/seboprazeremler/David-BellinManutencao-de-Software-30590289
*
http://testesdesoftware.blogspot.com.br/
http://pt.wikipedia.org/wiki/Manuten%C3%A7%C3%A3o_de_software
http://www.devmedia.com.br/artigo-engenharia-de-softwareintroducao-a-teste-de-software/8035
http://pt.wikipedia.org/wiki/Teste_de_caixa-branca
http://www.ic.unicamp.br/~ranido/mc626/Manutencao.pdf
http://www.univasf.edu.br/~ricardo.aramos/disciplinas/ESI2009_2/
Aula021_Manutencao.pdf
*
trabalhoictesteemanutencao.xpg.com.br
Download

do ppt