
Teste de Software

Definições de teste de Software:
Teste de Software
Validar Aplicações para encontrar erros.
Validar softwares para saber se estão de acordo com o documento especificado.
Validar softwares para que os bugs sejam encontrados antes dos clientes, pois, quanto mais cedo encontrarmos erros, mais barato fica a correção
É necessário em qualquer tamanho de sistema. Até em sistemas de pequeno e médio porte.
Testes devem começar desde o início do projeto, para que a avaliação da documentação seja feita antes do desenvolvimento do software e nós evitaremos a programação de itens duvidosos.
O teste de software faz parte do ciclo de desnv. do projeto de software, mas, dentro da equipe de teste, existe o processo de desenvolvimento de teste. Neste processo são produzidos os artefatos necessários para atender o projeto ou cliente.
É preciso uma equipe treina para a realização do teste. Para testar não basta a visão do usuário, mas a visão técnica de como um campo deve se comportar e, principalmente de como NÃO deve se comportar.
É preciso um profissional específico para a área, com conhecimento nas técnicas e tipos de teste para que a qualidade seja garantida.
Desenvolvedor não testa software como a equipe de Teste. O teste de desnv é o unitário, onde ele debuga seu código e valida as funções do código.
VERIFICAÇÃO – De documentos – artefatos – UC, ERS, RGN
VALIDAÇÃO – De sistema – executar o teste das telas
Definições de teste Funcional – Caixa PRETA
Teste Funcional Caixa Preta
Teste sem visão interna - acesso ao código
Teste na visão do usuário
Teste que precisa de documentação para comparação do que foi pedido com o que foi desenvolvido.
Definições de TIPOS de teste Funcional – Caixa PRETA
Teste Funcional/ Teste de Funcionalidade
Dentro da Técnica de Teste Cx Preta, é o teste da funcionalidade do sistema - regra de negócio e principais funções do sistema
Validação das Funcionalidades
Teste Funcional/ Teste Integração
Dentro da Técnica de Teste Cx Preta, é o teste das partes que foram desenvolvidas separadamente e, integradas para que o sistema seja completo
O sistema pode ser desenvolvido em Módulos, e, ao final de cada módulo, um novo grupo de telas são integradas. Este teste garante a integralidade entre as telas do sistema
Teste Funcional/ Teste Regressão
Testar de Novo
Validar se uma alteração ou correção não danificou o que já estava funcionando
Muitas vezes poderá ser pontual, dependendo da urgência do projeto ou da decisão gerencial
Pode ser automatizado, caso o código seja estável e as variáveis não sejam modificadas após a alteração.
A automação de um teste de regressão serve para que ele seja executado mais rapidamente já que, a previsão é que não haja erros em telas que já passaram pelo teste e foram homologadas
Automação de teste de regressão dentro do escopo caixa preta - testes manuais - não valida a estrutura interna - desempenho, performance, robustez, mas, ajuda:
- Garantir que uma vez aquele script rodou e toda a tela funcionou
- Ao salvar o script dos testes, e houver a necessidade de uma validação rápida para garantir o funcionamento, ele pode ser usado
Teste Funcional/ Teste Usabilidade
Teste Manual - técnica caixa preta que valida fatores externos do sistema
Expectativa do cliente quanto a navegabilidade do software
Validação das ajudas contextuais do sistema - hint, labels, frases coerentes, apresentação de registros em grades de dados, leitura de registros em campos como combo boxes.
Links que não tem marcação e podem gerar dúvidas ao usuário
Teste Funcional/ Teste Ortografia
Validação da ortografia do sistema. Nem sempre o erro é a palavra escrita incorretamente, mas, escrita de uma forma voltada pra TI e não para linguagem do usuário.
Um exemplo são os títulos das grades de dados que, vem geralmente: Tipo Aluno, e na verdade o correto é "Tipo de Aluno".
Pontuação das mensagens, acentuação.
Validação de termos estrangeiros que, caso o sistema precise ter, é necessário a escrita correta.
Teste Funcional/ Teste Interface
Validação da apresentação da tela do sistema. Validação do Layout.
Títulos sobrepostos, Grade de dados com registros que não cabe na célula apresentada,
Cores intercaladas na apresentação de uma grade de dados
Ferramentas pro teste Caixa Preta – automação dos testes manuais
Selenium
Plugin do FireFox para automação de testes MANUAIS. Teste de aplicações WEB de forma automatizada.
Ferramenta que grava a ação do usuário e pode ser reproduzido novamente, automaticamente.
Gera um script que pode ser alterado para que os valores das variáveis sejam alteradas de acordo com a necessidade do testador
Ela aparece em três formas:
Selenium IDE, Selenium RC e Selenium Grid.
A IDE é um plugin para o navegador Firefox, bem prático e leve, com ele podemos criar e editar testes de forma bem simples.
O RC serve para rodar um grupo de testes de forma automática, e em navegadores diferentes de Firefox, por exemplo podemos rodá-los no Safari, podendo ser usada com linguagens de programação como Java, PHP, Python, etc, podendo também se rodada em navegadores distintos (sabemos que alguns navegadores se comportam de forma diferente com mesmas regras),
O Grid, que serve para paralelizar os testes, é bom para quando temos uma massa grande de testes e, quando rodada de forma linear, consome muito tempo para o término.
Por que automatizar um teste Manual se é só ir lá e testar manualmente de novo? Por que usar o Selenium IDE?
- Ter um script que comprova o funcionamento de uma tela/Funcionalidade com a massa de teste usada
- Para agilizar testes de telas que não foram modificadas, mas que, é necessário validar se a funcionalidade não foi impactada por alterações em outras partes do sistema
Massa de Dados: - Registros incluídos no sistema. Registros que são pesquisados, alterados e manipulados para execução de teste.
OUTROS:
Testes Funcionais em Aplicações WEB
Watir - http://wtr.rubyforge.org
BadBoy - http://www.badboy.com.au
actiWATE - http://www.actiwate.com
Canoo WEBTest - http://WEBtest.canoo.com
Apodora - http://www.apodora.org
Definição de Teste Caixa Preta – Syllabus
Resolvi fazer uma análise destes conceitos. E cheguei a conclusão do que já falei em sala, várias vezes....
Está escrito diferente, mas se, analisarmos palavra a palavra, vemos que é o que eu falei em uma linguagem mais, digamos, acessível.
No Caixa Branca, ele explica o que é e quais as possibilidades de teste pra ele, sabemos inclusive que tem outros tipos.... e nem diz qual equipe que faz. É só conceito mesmo
Definições de TIPOS de teste Estrutural – Caixa BRANCA
Os testes estruturais, ou "testes caixa-branca" levam em consideração a estrutura do código fonte para identificar a implementação e se os diferentes caminhos estão sendo cobertos por algum tipo de teste. Assim, os testes serão elaborados para: testar as decisões logicas (verdadeiro/falso), testar os "loops" até o limite, as variáveis estáticas e dinâmicas, dentre outros.
O teste de caixa-branca não substitui o teste de caixa-preta, e vice-versa. Eles são utilizados em conjunto; cada um com um objetivo distinto.
Tipos de Teste caixa Branca:
Conformidade – valida padrões e procedimentos
Contingência – como o sistema se recupera após uma falha
Stress - limite de execução
Segurança – Acesso indevido
Teste de Desempenho
-
Contenção – demandas de vários atores ao mesmo tempo
-
Carga – valida limites operacionais com cargas de trabalho variáveis
-
Perfil de Desempenho -perfil de andamento do sistema – execução, acesso a dados e chamadas de função e de sistema. Identificar gargalos de desempenho e processos ineficientes
Teste de Confiabilidade
-
Integridade -Teste do sistema para resistência a falhas, valida a robustez do sistema.
-
Estrutura -adequação a seu designe sua formação, ex.: links conectados a páginas corretas, etc..
-
Stress -cargas de trabalho extremas
Teste de Suportabilidade
-
Configuração – sistema funciona em diferentes configurações de hardware e software
-
Instalação – sistema funciona em configurações diversas e sob diferentes condições – espaço insuficiente, interrupção de energia, etc.
Teste de Função
-
Valida as funções do sistema – unidades integradas, aplicativos e sistemas
Ferramentas pro teste caixa branca:
Testes de Desempenho
JMeter - http://jakarta.apache.org/jmeter
Tutorial para teste de performance: http://www.devmedia.com.br/usando-o-jmeter-para-teste-de-performance/20302
BUGS – REGISTRO E CLASSIFICAÇÃO
Quando um defeito pode ser detectado
Pode ser detectado através da análise dos documentos que foi elaborado para construção do sistema
Pode ser detectado através do teste de sistema – validando na visão do usuário
Defeito – passo processo ou definição de dados incorretos
Engano – Ação humana que produz um resultado incorreto
Falha -desvio entre o resultado/comportamento
Gestão de defeitos
Prevenção -planejamento de contingências
Linha de base entregável -baselines que estão prontas pra entrega
Identificação do defeito -técnicas necessárias para encontrar, reportar e classificar os defeitos
Solução do defeito -definição do processo de correção e classificação das prioridades
Melhoria do processo -análise de métricas
Relatório de gestão -relatórios com dados relevantes para acompanhar o progresso dos testes – Sumário de Teste
Ciclo de vida de um defeito
Encontrado pelo analista > classificado, registrado e atribuído > analisado pelo desenvolvedor > corrigido >devolvido para o reteste-status: resolvido>status: fechado ou reaberto
Ferramentas para Gestão de DEFEITOS
Gestão de Defeitos
Bugzilla - http://www.bugzilla.org
Mantis - http://www.mantisbt.org
Redmine - http://www.redmine.org
Jira - http://www.atlassian.com/software/jira
Classificação de BUGS
Gravidade: ( )Travamento/Obstáculo( )Grande ( )Pequeno ( )Mínimo
Prioridade: ( )Baixa ( )Normal ( )Alta ( )Imediato/Urgente
Categoria: ( )Funcionalidade ( )Especificação ( )Texto/Ortografia ( )Interface/Layout ( )Usabilidade
Boas Práticas na descrição de um erro:
-
SEMPRE INCLUIR E EVIDÊNCIA: doc, ppt, jpg, etc...
Metodologia Ágil - Scrum
Metodologia: Forma de executar os passos para desenvolver um projeto.
Ágil: Agilidade no processo de desenvolvimento
Scrum Master - papel de gerente
PO Product Owner - é o interessado - o cliente
Backlog - Lista de atividades que a equipe deve fazer. quem prioriza é o PO
Reunião Diária - daily meeting - Reunião, em pé de 15 minutos, a equipe fala: o que fez, o que está fazendo e o que vai fazer
Scrum - uma das metodologias ágeis que, foca na entrega do produto e não da documentação. A equipe ágil deve estar integrada para que as informações sobre o produto não se percam, já que, não há documentação das regas.
A documentação criada é chamada de User Story - história do usuário, com um esboço do que o usuário quer
O tempo de desenvolvimento é dividido em Sprints, que podem durar uma semana ou, no máximo, duas semanas.
Vantagem do método ágil são entregas rápidas, frequentes e com a participação do usuário no processo de desenvolvimento.
Desvantagem: os projetos perdem a rastreabilidade e as informações já que não é valorizada a documentação do sistema
Utiliza como gerenciamento o quadro KanBan - quadro que contém três divisões:
A fazer - atividades selecionadas para a sprint
Em andamento - atividades que já estão sob responsabilidade de alguém da equipe
Feito - Tarefas finalizadas
Teste Ágil
Teste que se adapta a metodologia ágil. A técnica de teste - cx branca ou cx preta será estipulada pela empresa que utiliza o método. Os tipos de teste são os mesmos pois, os sistemas, independente da metodologia, devem ser validados criteriosamente.
Perfil do testador no método Ágil
Perfil Pró-Ativo e não Reativo
Deve se adaptar a falta de documentação procurar informações sobre o sistema para a validação - com usuários, analistas de sistemas, desenvolvedores auto gerenciamento - guardar as informações do resultado dos testes e das regras de negócios para um caso de manutenção
Controle próprio das usas atividades, horário, entrega.
Comprometimento.
Execução de Teste
Todo o processo de teste converge para excelência da Execução do teste do sistema
Validação do sistema de acordo com a técnica necessária
Observação de um sistema na visão do usuário. Além dos bugs que ocorrem por que a documentação descreve uma coisa e a tela faz outra, a execução deve melhorar a vida do usuário, validar a navegabilidade, a apresentação dos registros, as expectativas do cliente.
Executar teste - com técnica caixa preta - Tipos de teste: Funcionalidade, Integração, Regressão, Usabilidade, Ortografia, Interface. Ir Além: Expertise do Testador de pensar em casos que não estão descritos.
Executar teste - com técnica caixa branca - tipos de teste e validações: Carga, Estresse, Desempenho, Performance. Este tipo de teste depende um robô - ferramenta de automação e deve ter seu escopo definido pela equipe de requisitos e gerente de projetos. O teste caixa branca não é feito em todo o sistema mas nos itens mais críticos, como cálculos. O investimento em treinamento, ferramenta e infraestrutura é considerável e por isso, a decisão da empresa oferecer esse tipo de teste deve vir da necessidade do cliente e do projeto em questão.
-
No processo de teste devemos:
-
O software não está adequado para testes;
-
Recurso e prazos insuficientes;
-
Problemas importantes não serão revelados durante os testes;
-
Atenção com o que vai ser testado.
PREOCUPAÇÃO DO TESTADOR:
-
O software não está adequado para testes;
-
Recurso e prazos insuficientes;
-
Problemas importantes não serão revelados durante oS testes;
-
Atenção com o que vai ser testado.
Descrição das Atividades
1) Realizar Testes
De acordo com a abordagem definida no Plano de Teste, o Testador realiza os testes nos Builds aplicando os instrumentos específicos de cada abordagem descritos no Roteiro de Teste e seguindo o fluxo abaixo:
-
Será comunicado por meio de e-mail a disponibilização do build para a execução dos testes;
-
Inicia a execução dos testes, conforme o cronograma.
2) Registrar Resultados dos Testes
O Testador registra o comportamento do Build frente aos testes realizados. Ao encontrar uma falha (Interno), o Testador deve registrá-lo na ferramenta de Controle de Defeito.
O Testador notifica o Gerente de teste e o Analista de Testes dos defeitos encontrados para que estes planejem as atividades de correção.
Analista de Qualidade -
Independente das distribuições de papéis existentes dentro de uma equipe de testes, todos os profissionais envolvidos com a execução de testes são testadores e devem ter orgulho de serem assim chamados.
Todos possuem o mesmo comprometimento com a qualidade dos testes e dos produtos a serem entregues pela equipe, empresa ou instituição.
Todos os membros de uma equipe de teste devem ser capazes de planejar e executar teste no sistema com o objetivo de encontrar defeitos ou falhas.
“Não existe um bom analista, arquiteto, automatizador ou gerente de teste que não tenha sido antes um bom executor de teste (Testador)”
Habilidades
-
Detalhista
-
Atento
-
Criativo
-
Diplomático
-
Claro e objetivo na escrita
-
Possuidor de boa lógica
-
Insistente
-
Persistente
-
Paciente
-
Conhecedor da aplicação e regras do negócio
-
Conhecedor de ferramentas de teste
-
Conhecedor de métodos de teste
-
Investigativo
-
Não indutivo
-
Testador deve ser parceiro do desenvolvedor.
-
Testador deve ser qualificado.
-
Testes precisam de investimento.
-
Testes precisam de planejamento.
-
Testes precisam de ferramentas.
-
Testes precisam de apoio.
-
Testes precisam de gerência.
Técnicas x Tipos x Níveis
Processo de Teste
Técnicas e Ferramentas
Técnicas e Ferramentas
Gerenciador Eletrônico de Serviços (ProjectServer)
Ferramenta de Controle de Versões (SVN)
Ferramenta de Controle de Defeitos (Mantis)
Ferramenta de Planejamento (TestLink)
Ferramenta de Automação (BadBoy)
Definição de Papéis
PLUS
LEGENDA: CP – CAIXA Preta
CB – caixa branca
O teste de Integração vai depender do contexto –
Se for integração do desenv – será caixa Branca, já q ele testa o código
Se for na visão do usuário – Caixa Preta, pq nós testamos na visão do usuário a integração das telas
Testes de Segurança –
CP – Quando nós tentamos pelo sistema acessar dados com um perfil não permitido
CB – Quando com um robô tentamos invadir um sistema, inventando senhas, e tentando quebrar a página de alguma forma
Resumo de Ferramentas
Testes Funcionais em Aplicações WEB
Selenium - http://seleniumhq.org
Watir - http://wtr.rubyforge.org
BadBoy - http://www.badboy.com.au
actiWATE - http://www.actiwate.com
Canoo WEBTest - http://WEBtest.canoo.com
Apodora - http://www.apodora.org
Testes de Desempenho
JMeter - http://jakarta.apache.org/jmeter
Gestão de Casos de Teste
TestLink - http://www.teamst.org
TestMaster - http://testmaster.sourceforge.net
Gestão de Defeitos
Bugzilla - http://www.bugzilla.org
Mantis - http://www.mantisbt.org
Redmine - http://www.redmine.org
Jira - http://www.atlassian.com/software/jira
Testes Unitários:
PHPunit – geralmente alguma ferramenta de cobertura de testes como o Emma para java.
JUnit (http://junit.sourceforge.net/)
Umas das ferramentas mais difundidas de testes unitários, para aplicações Java.
TestNG (http://testng.org)
Ótima framework para testes unitários.
NUnit (http://www.nunit.org/)
Framework para teste unitário para aplicações que utiliza a tecnologia dotNet.














