Buscar

Teste de Software

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Por Tainã Souza
Analista de Teste de Software – SESEG
Teste de Software
Experiência Profissional
Atribuições: Elaboração de cenário de teste e casos de testes, execução de testes funcionais, testes de sistema, teste de regressão, teste exploratório, e teste aceitação, sugestões de melhorias operacionais e interface, registro e acompanhamento de correções de erros identificados no sistema, comunicação de resultados, evidência de testes, homologação, criação de documentação e processos. 
Conhecimento: nas ferramentas (Jira e TestLink); em metodologias Ágeis como Scrum.
Importância do Teste de Software
O teste de software é uma das atividades que buscam contribuir para a melhoria da qualidade do software. O teste revela a presença de defeitos no software e atende as exigências de qualidade de software.
“Qualidade de software é a conformidade a
requisitos funcionais e de desempenho
explicitamente estabelecidos, a padrões de
desenvolvimento explicitamente
documentados, e a características implícitas
que são esperadas de todo software
desenvolvido profissionalmente”
História clássica... 
Pra que testar?
Software é testado para descobrir erros que foram feitos inadvertidamente (sem querer) no momento em que foi projetado e construído.
Um bom teste é aquele que tem alta probabilidade de encontrar um erro.
Quem faz?
Uma estratégia de teste de software geralmente é desenvolvida por um especialista em teste.
Um bom teste não deve ser muito simples nem muito complexo.
Por que temos que ter cuidado?
O teste frequentemente responde por mais esforço de projeto que qualquer outra atividade de engenharia de software.
Ele tem que ser conduzido de forma planejada para que tempo não seja desperdiçado e para que novos erros não se infiltrem sem serem descobertos.
Qual o produto do trabalho?
Uma Especificação de Teste documenta a abordagem da equipe de software para o teste, definindo um plano que descreve uma estratégia global, e um procedimento que define quais testes serão conduzidos e quais passos para cada teste.
Quais são os passos?
Os teste são realizados de uma forma bottom-up:
Os primeiros testes focalizam um único componente ou um pequeno grupo de componentes relacionados, a fim de descobrir erros nos dados e na lógica de processamento. Depois de testados são integrados ao sistema, e novos testes são realizados para descobrir erros na satisfação de requisitos do cliente.
Teste de Software
O teste é um conjunto de atividades que devem ser planejadas antecipadamente e conduzidas sistematicamente.
Diferentes técnicas são adequadas em diferentes momentos.
Como os passos da estratégia de teste ocorrem quando a pressão do prazo de entrega começa a crescer, o progresso deve ser mensurável e os problemas devem aparecer tão cedo quanto possível.
Desenvolvimento X Testes
Tipos de Teste de Software
Teste de Unidade: Teste em um nível de componente ou classe. É o teste cujo objetivo é um “pedaço do código”.
Teste de Integração: Garante que um ou mais componentes combinados (ou unidades) funcionam. Podemos dizer que um teste de integração é composto por diversos testes de unidade.
Teste Operacional: Garante que a aplicação pode rodar muito tempo sem falhar.
Teste Positivo-negativo: Garante que a aplicação vai funcionar no “caminho feliz” de sua execução e vai funcionar no seu fluxo de exceção. 
Tipos de Teste de Software
Teste de regressão: Toda vez que algo for mudado, deve ser testada toda a aplicação novamente.
Teste de caixa-preta: Testar todas as entradas e saídas desejadas. Não se está preocupado com o código, cada saída indesejada é visto como um erro.
Teste caixa-branca: O objetivo é testar o código. Às vezes, existem partes do código que nunca foram testadas.
Teste Funcional: Testar as funcionalidades, requerimentos, regras de negócio presentes na documentação. Validar as funcionalidades descritas na documentação (pode acontecer de a documentação estar inválida).
Tipos de Teste de Software
Teste de Interface: Verifica se a navegabilidade e os objetivos da tela funcionam como especificados e se atendem da melhor forma ao usuário.
Teste de Performance: Verifica se o tempo de resposta é o desejado para o momento de utilização da aplicação.
Teste de carga: Verifica o funcionamento da aplicação com a utilização de uma quantidade grande de usuários simultâneos.
Teste de aceitação do usuário: Testa se a solução será bem vista pelo usuário. Ex: caso exista um botão pequeno demais para executar uma função, isso deve ser criticado em fase de testes. (aqui, cabem quesitos fora da interface, também).
Tipos de Teste de Software
Teste de Volume: Testar a quantidade de dados envolvidos (pode ser pouca, normal, grande, ou além de grande).
Testes de stress: Testar a aplicação sem situações inesperadas. Testar caminhos, às vezes, antes não previstos no desenvolvimento/documentação.
Testes de Configuração: Testar se a aplicação funciona corretamente em diferentes ambientes de hardware ou de software.
Testes de Instalação: Testar se a instalação da aplicação foi OK.
Testes de Segurança: Testar a segurança da aplicação das mais diversas formas. Utilizar os diversos papéis, perfis, permissões, para navegar no sistema.
Testes automatizados
Soluções para realização de testes que oferecem uma variedade de recursos e que podem reduzir significativamente os custos de teste.
Um workbench de testes de software e um conjunto integrado de ferramentas para apoiar o processo de teste.
Além dos frameworks de testes de software que apoiam a execução de testes automatizados, um workbench pode incluir ferramentas para simular outras partes do sistema a fim de gerar dados de teste.
Ferramentas de teste automatizadas:
Gerenciadores de testes: Mantem o acompanhamento dos dados de teste, resultados esperados e os recursos de programa testado.
Gerador de dado de teste: Gera a massa de dados para o teste.
Analisador dinâmico: Adiciona código ao programa para contar o número de vezes em que cada declaração foi executada.
Comparador de arquivos: Compara o resultado dos testes de programa com resultados anteriores e relata a diferença entre eles.
Ferramentas para testes automatizados:
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
Certificações em Teste de Software 
International Software Testing Qualification Board (ISTQB)
Certificações no Brasil:
CTFL : Certified Tester, Foundation Level 
CTAL-TA: Advanced Level Test Analyst
CTAL-TM: Advanced Level Test Manager
CTAL-TTA: Advanced Level Technical Test Analyst
Certificações em Teste de Software 
Quality Assurance Institute (QAI)
Certificações no Brasil:
CAST : Certified Associate in Software Testing
CSTE : Certified Software Tester
CSQA : Certified Software Quality Analyst
CSPM : Certified Software Project Manager
Certificações em Teste de Software 
Associação Brasileira de Teste de Software (ALATS)
Certificações no Brasil:
CBTS : Certificação Brasileira de Teste de Software
Considerações
Nunca acredite que o teste “pegará” todos os erros que ocorrem por causa de praticas inconsistentes de engenharia de software.
Enfatize qualidade e detecção de erros ao longo de todo o processo de software.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais