Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

www.devmedia.com.br 
[versão para impressão]
 Link original: https://www.devmedia.com.br/processo-de-teste-de-software/23795
Processo de Teste de Software
Nesta artigo vamos explicar como a utilização de um Processo de Teste pode melhorar a efetividade dos
testes, controlando as atividades e garantindo mais credibilidade e valor ao produto.
De que se trata o artigo:
Explicar como a utilização de um Processo de Teste pode melhorar a efetividade dos testes, controlando as atividades e garantindo mais
credibilidade e valor ao produto.
Em que situação o tema é útil:
Para evitar que o teste seja uma mera etapa do ciclo de desenvolvimento, a implantação de um processo relacionado a este garante um
maior controle das atividades de teste e, consequentemente, mais qualidade ao software.
Resumo DevMan:
Nesse artigo apresentamos o Processo de Teste de Software com as suas principais etapas e respectivos artefatos gerados. Abordamos
também os papéis e as responsabilidades de cada membro da equipe envolvida. Por fim, citamos algumas boas práticas que podem
contribuir para obter sucesso na utilização de um Processo de Teste.
Autores: Renata Eliza e Vivian Lagares
Ao contrário do que muitos imaginam, testar um software vai muito além de executar testes explorando as funcionalidades de um sistema já
desenvolvido. Na realidade, para que seja possível avançar diante desse estigma, o primeiro obstáculo a ser enfrentado é fazer com que o
Processo de Teste e o Processo de Desenvolvimento sejam executados em paralelo, desde o início do ciclo de vida do software.
Um Processo de Teste de Software tem como objetivo estruturar as etapas, as atividades, os artefatos, os papéis e as responsabilidades do
teste, permitindo organização e controle de todo o ciclo do teste, minimizando os riscos e agregando valor ao software.
A estruturação do processo tem o propósito de reduzir o número de erros apresentados no projeto. Mas para que isso seja possível, a
definição dos objetivos do teste deve ser bem clara, as melhores técnicas devem ser selecionadas, e uma equipe de pessoas treinadas e
qualificadas deve estar apta para desempenhar os respectivos papéis dentro do processo.
Após estruturar os objetivos, o próximo passo é implantar o processo. A implantação permite que o teste deixe de ser tratado como uma
atividade secundária, passando a ser um processo próprio, condutor do fluxo das atividades do teste e gerador de artefatos que tornam
possível a avaliação da qualidade do software.
Neste contexto, apresentaremos nesse artigo as principais fases do ciclo de vida do Processo de Teste, com os referentes artefatos gerados
por cada uma delas. Abordaremos também a hierarquia e a definição dos papéis envolvidos no teste, com suas respectivas
responsabilidades. Por fim, serão listadas algumas práticas que podem contribuir para a melhoria do software com a implantação do
processo.
Ciclo de Vida do Processo de Teste
O ciclo de vida consiste em uma série de etapas dependentes, consideradas como o esqueleto do Processo de Teste, que visam estruturar
as atividades definindo como os testes serão conduzidos no projeto.
Essas etapas podem variar de acordo com a metodologia utilizada, e conforme apresentado na Figura 1, serão demonstradas nesse artigo
as principais etapas do ciclo de vida de um processo de teste.
Figura1. Ciclo de Vida do Processo de Teste de Software.
Conforme indicado na Tabela 1, a execução de cada etapa do ciclo de vida tem um tempo estimado de duração. Assim, é recomendável
seguir essa estimativa para que seja possível executar todas as fases do processo, minimizando riscos e consequentemente garantindo mais
qualidade ao software.
Etapa
Do Processo de Teste
Distribuição
do Tempo Estimado
Planejar Testes 10%
Projetar Testes 40%
Executar Testes 45%
Entregar 5%
Tabela 1. Estimativa de tempo para cada etapa do ciclo.
A seguir, serão apresentadas as principais etapas do ciclo, juntamente com as suas respectivas responsabilidades dentro do Processo de
Teste:
a) Planejar: esta é a atividade inicial do processo, onde é definido o objetivo dos testes, registrado através do artefato Plano de Teste. Essa
etapa também é responsável pela identificação das técnicas de teste que serão aplicadas ao projeto, como por exemplo:
· Teste de Conformidade;
· Teste de Contingência;
· Teste de Desempenho;
· Teste de Estresse;
· Teste de Funcionalidade;
· Teste de Integração;
· Teste de Regressão;
· Teste de Segurança;
Durante o Planejamento são executadas as seguintes atividades:
· Definição do Escopo dos Testes;
· Definição dos Métodos e Técnicas de Teste;
· Planejamento das Atividades de Teste;
· Planejamento do Ambiente de Testes;
· Designação dos Recursos envolvidos no Teste;
· Definição dos Riscos do Projeto de Teste;
· Definição das métricas para monitorar e controlar os Testes.
b) Projetar: depois de realizado o planejamento, o próximo passo é colocar em prática tudo que foi especificado. É o momento de projetar os
Casos de Teste, Roteiros de Teste e Procedimentos de Teste do Software.
Durante a segunda etapa do ciclo são executadas as seguintes atividades:
· Identificação dos requisitos planejados;
· Elaboração (e revisão) dos Casos de Teste;
· Elaboração dos Scripts de Teste;
· Preparação do Ambiente de Teste;
· Preparação da Gestão de Defeitos;
· Refino das Estimativas de Teste;
· Preparação da Massa de Teste;
· Acompanhamento dos riscos do projeto de Teste.
c) Executar: o objetivo dessa fase é colocar em prática tanto o que foi planejado quanto o que foi projetado no processo. É o momento de
executar os testes. Um cuidado especial deve ser tomado antes de iniciar essa etapa. É preciso verificar se o ambiente está propício e
estável, para que a execução dos testes seja possível.
Conforme programado nas primeiras etapas do ciclo, utilizar uma ferramenta de Gestão de Defeitos durante a execução dos testes é
fundamental. Afinal, ela possibilitará o registro coerente dos problemas encontrados, condizentes com a sua categoria (melhoria, erro ou
sugestão), prioridade (baixa, normal ou urgente) e claro, gravidade (trivial, média ou obstáculo). Além disso, a Gestão de Defeitos
proporcionará uma visualização completa de todo o escopo do projeto, permitindo que sejam extraídos indicadores e rastreadas todas as
mudanças aplicadas ao software.
Durante a terceira etapa do ciclo são executadas as seguintes atividades:
· Execução dos Casos de Teste;
· Execução dos Scripts de Teste;
· Gestão de Defeitos;
· Atualização da Massa de Teste;
· Avaliação do Plano de Teste;
· Avaliação dos Resultados do Teste;
· Formalização da Evidência dos Testes.
d) Entregar: o objetivo da última etapa é assegurar que os testes foram executados conforme projetado, permitindo assim que o sistema
esteja apto para entrega e garantindo que os objetivos planejados foram alcançados.
Essa etapa conta com a participação direta do cliente, que tem a função de executar os testes de aceitação, validando se o que foi
desenvolvido realmente atende ao que foi solicitado.
Nesse momento provavelmente surgirão defeitos, fazendo com que seja necessário continuar utilizando a ferramenta para controle de bugs.
A Gestão de Defeitos nessa fase permitirá que os problemas encontrados pelo cliente sejam analisados e corrigidos por prioridade.
Durante a última etapa do ciclo são executadas as seguintes atividades:
· Elaboração e Análise dos Indicadores de Teste;
· Elaboração do Sumário de Teste;
· Entrega do Sistema para o Cliente;
· Apoio ao Cliente na Execução dos Testes de Aceitação;
· Gestão de Defeitos;
· Momento de aprendizado para utilizar o conhecimento adquirido em novos projetos.
Artefatos
Os artefatos são produzidos durante a execução das respectivas etapas do ciclo de vida do processo, com o propósito de registrar e
acompanhara evolução do projeto, e inclusive verificar se os resultados obtidos estão de acordo com o que foi especificado.
A Figura 2 destaca os principais artefatos gerados por todas as etapas apresentadas do processo: Planejar, Projetar, Executar e Entregar.
Figura 2. Artefatos de um Processo de Teste de Software.
a) Planejar: a primeira fase do ciclo gera como artefato o Plano de Teste. Vejamos uma análise sobre ele:
· Plano de Teste: é o documento que define o nível de cobertura, completo ou reduzido, que deverá ser alcançado pelos testes. Tem como
finalidade fornecer uma visão geral do projeto, contendo as diretrizes que possibilitarão a execução do Processo de Teste. Ele é responsável
pela definição de todo o escopo dos testes, possibilitando que os mesmos possam ser repetidos e controlados.
Esse artefato representa todo o planejamento para a execução do teste, incluindo os recursos (pessoas, software, hardware), estratégias,
cronograma das atividades e as funcionalidades que serão testadas.
Ao passar dos anos algumas normas surgiram com o objetivo de definir padrões para a documentação de um Plano de Teste, estipulando a
estrutura e as seções que este artefato deve conter, por exemplo: QAI, PMBOK e IEEE829. A mais utilizada é a norma IEEE829, que possui
as seções relacionadas na Tabela 2.
Seções da Norma IEEE829
1) Identificador 6) Introdução 11) Itens de Teste
2) Features a testar 7) Abordagem
12) Critérios de
Liberação
3) Critérios de
Suspensão 8) Entrega do Teste 13) Tarefas do Teste
4) Ambiente 9) Responsabilidades 14) Treinamentos
5) Cronograma
10) Risco e
Contingência 15) Aprovação
Tabela 2. Seções da Norma IEEE829
Para elaborar um Plano de Teste, verifique as seções sugeridas pelas normas e guias, e monte o modelo que mais se enquadra às
necessidades do seu projeto.
b) Projetar: é a fase onde testes são criados, sendo responsável pela geração dos artefatos discutidos a seguir:
· Casos de Teste: é um conjunto de entradas, saídas e resultados esperados que tem como objetivo identificar as condições que serão
verificadas e validadas no projeto. Em outras palavras, é o artefato que estabelece o que será testado no software.
Os Casos de Teste são utilizados basicamente para listar um número adequado de testes que englobem as principais funcionalidades do
software, e possuem basicamente a seguinte estrutura:
o Título: nome sucinto que define o que será executado no Caso de Teste;
o Pré-Condição: estado obrigatório do sistema antes do início do teste. Isto é, o que precisa ser realizado para que seja possível colocar em
prática os “Passos” e chegar ao “Resultado Esperado”;
o Passos: são as ações que deverão ser executadas para verificar se o software cumpre com o que foi especificado;
o Resultado Esperado: é o resultado que se deseja obter ao final da execução dos passos do Caso de Teste.
· Massa de Teste: é um conjunto de valores inserido na base de dados que propicia um ambiente apto para a execução dos testes. Esta
massa pode ser inserida manualmente ou automaticamente, através da utilização de scripts de carga;
· Roteiro de Teste: é formado pela organização de um ou mais Casos de Teste que devem ser executados em uma sequência lógica. É
recomendável que para cada Especificação de Caso de Uso um roteiro seja elaborado. Além disso, cada Caso de Teste representado no
Roteiro de Teste deve exibir o seu respectivo Resultado Esperado, para que o testador confronte com o resultado obtido na execução dos
testes.
c) Executar: durante a execução da terceira fase do ciclo de vida do processo são gerados os artefatos Relatório de Bugs e Resultado do
Teste, detalhados a seguir:
· Relatório de Bugs: é utilizado para registrar qualquer ocorrência no projeto de teste que requeira algum tipo de investigação. O uso mais
comum desse relatório é para controlar os defeitos ocorridos durante os testes, e deve ser encaminhado para a equipe de desenvolvimento
tomar as providências cabíveis;
· Resultado do Teste: utilizado para a formalização dos resultados obtidos na execução dos testes a cada iteração do ciclo de
desenvolvimento do sistema.
d) Entregar: na última etapa do ciclo, as informações relevantes extraídas durante a execução dos testes são armazenadas através do
artefato comentado a seguir:
· Sumário de Teste: este artefato organiza e apresenta uma análise resumida dos Resultados do Teste, juntamente com as principais
medidas para revisão e avaliação do projeto. Normalmente esse relatório finaliza os testes.
Durante a execução das atividades do Processo de Teste, os artefatos produzidos devem ser armazenados em um repositório único,
acessível a todos os envolvidos no projeto. Isso possibilitará um acompanhamento da evolução dos trabalhos realizados por todos os
participantes da equipe testes.
Papéis
A área de Teste de Software possui nomenclaturas definidas para os principais papéis envolvidos no Processo de Teste, como pode ser
verificado na Figura 3.
Figura 3. Hierarquia dos Papéis do Processo de Teste de Software.
Os papéis têm a função de organizar as responsabilidades de execução de cada atividade, além de definir quem irá gerar os artefatos do
teste. No entanto, para que seja possível colocar em prática todas as atividades do processo, é importante levar em consideração as
habilidades exigidas por cada um. Façamos uma análise sobre eles:
· Gerente de Teste: é o responsável por todos os assuntos relacionados ao Teste de Software. Normalmente é quem define a política de
teste adotada na organização, incluindo planejamento, documentação, controle e monitoramento dos testes, aquisição de ferramentas,
participação em inspeções e revisões do trabalho de teste. Para exercer esse papel algumas características são fundamentais, como por
exemplo:
o Bom conhecimento dos aspectos do Processo de Teste de Software;
o Habilidades de planejamento e gerenciamento de atividades.
· Líder de Teste: também intitulado Coordenador de Teste, é o profissional responsável pela organização dos testes. É ele quem estima os
esforços, os recursos e o tempo de teste. É também quem cria e mantém o artefato Plano de Teste e atribui as tarefas para os demais
membros da equipe. Para exercer esse papel algumas características são fundamentais, como por exemplo:
o Experiência em liderança e vasto conhecimento sobre técnicas e ferramentas de teste;
o Habilidades interpessoais, principalmente diplomacia e defesa.
· Arquiteto de Teste: também chamado de Engenheiro de Teste, é responsável pela criação e manutenção de toda a infraestrutura de teste,
que inclui o ambiente, a arquitetura e as ferramentas. Para exercer esse papel algumas características são fundamentais, como por exemplo:
o Capacidade em diagnosticar e resolver problemas do ambiente;
o Conhecimento sobre a instalação e configuração das ferramentas voltadas para o Teste.
· Automatizador: conhecido também como Analista de Teste de Automação, é quem transforma os Casos de Teste elaborados pelo Analista
de Teste em scripts automatizados. Além de automatizar os testes funcionais, também é responsável pelos testes de desempenho,
performance e carga. Para exercer esse papel algumas características são fundamentais, como por exemplo:
o Domínio sobre linguagens de programação;
o Conhecimento de diversas técnicas e tipos de teste.
· Analista de Teste: também intitulado Analista de Homologação ou Projetista de Teste, tem como premissa ser mais experiente que o
Testador, ou seja, chega a ser primordial que tenha exercido a função inicial da hierarquia do teste. É ele quem elabora os Casos de Teste
que serão executados pelo Testador. Em alguns casos, põe a mão na massa e executa os testes. Para exercer esse papel algumas
características são fundamentais, como por exemplo:
o Boa capacidade de visualizar, articular e resolver problemas;
o Conhecimento em falhas comuns em softwares.
· Testador: tambémconhecido como Homologador ou Tester, é o profissional que tem como responsabilidade principal executar os testes
planejados pelo Analista de Teste e, se for o caso, reportar os erros encontrados. Para exercer esse papel algumas características são
fundamentais, como por exemplo:
o Conhecimento das abordagens e das técnicas de teste;
o Capacidade para diagnosticar e resolver problemas.
A definição dos papéis é bem clara, mas é válido frisar que os papéis do Teste de Software são adaptáveis à realidade das empresas. Além
disso, apesar de não ser recomendável, não existe objeção para que uma pessoa assuma mais de um papel no projeto.
Responsabilidades
A definição das responsabilidades de execução das atividades de teste vem logo após a seleção dos papéis participantes do ciclo de vida do
processo. O objetivo é determinar as atribuições de cada componente da equipe.
Essa estruturação permite que as atividades estejam bem divididas entre o time do teste. A Tabela 3 lista a matriz de responsabilidades de
acordo com cada papel do Processo de Teste.
Papel Responsabilidade
Testador
- Executar os Casos de Teste
- Registrar os bugs
- Elaborar o relatório dos defeitos encontrados
Analista de Teste
- Identificar o objetivo do teste
- Elaborar os Casos de Teste e o Roteiro de Teste
- Preparar a Massa de Teste
Automatizador - Elaborar os Scripts de Teste
Arquiteto de Teste - Definir e manter a Arquitetura de Automatização dos
Testes
- Identificar os mecanismos de Testabilidade
- Preparar e manter o Ambiente de Teste
Gerente de Teste
- Elaborar o Plano de Teste
- Assegurar o Gerenciamento e o Planejamento apropriados
para os testes
- Elaborar o Sumário de Teste
Tabela 3. Matriz de Responsabilidades dos Papéis do Processo de Teste.
Uma grande vantagem de atribuir a responsabilidade a cada papel é evitar incertezas na execução das atividades por parte dos envolvidos.
Pensando nisso, a Tabela 4 apresenta a responsabilidade de cada papel distribuída pelas fases do ciclo de vida do Processo de Teste.
Papel
Etapas
Planejar Projetar Executar Entregar
Testador Apóia Apóia Executa Apóia
Analista Apóia Executa Executa Apóia
Automatizador Apóia Executa Executa Apóia
Arquiteto Executa Executa Apóia Apóia
Gerente Executa Apóia Apóia Executa
Tabela 4. Papéis responsáveis pela execução das etapas.
Ademais, para que seja possível obter sucesso, a equipe envolvida nos Testes deve ser devidamente capacitada para exercer a função
definida. A competência técnica precisa ser avaliada e determinada de acordo com o nível e a complexidade do projeto. Caso contrário,
poderá impactar negativamente no resultado final do processo.
Melhores Práticas
Determinadas práticas são consideradas boas ou até mesmo mais úteis que outras, no entanto, essa definição depende diretamente do
contexto do projeto. Em função disso, visando à melhoria do processo, a busca pelas melhores práticas deve ser contínua e permanente.
Para exemplificar, foram selecionadas algumas boas práticas já carimbadas no mercado de teste que podem ser úteis em diferentes
realidades de projeto, como demonstradas a seguir:
· Checklists: ao longo de todo o Processo de Teste de Software, a utilização de um checklist pode trazer grandes vantagens, agregando
qualidade e tornando mais fácil a realização dos testes. O objetivo é evitar o esquecimento, os erros e as falhas durante a execução das
tarefas atribuídas;
· Estimativas: apesar de muitos taxarem como uma atividade complexa de se realizar, a estimativa tem fundamental importância dentro do
Processo de Teste. Afinal, para garantir a execução dos testes é necessário que haja tanto um planejamento quanto um gerenciamento dos
mesmos. Para isso é importante que seja definida uma estimativa mais próxima do tempo realmente necessário para realização dos testes, o
que irá propiciar um melhor gerenciamento das atividades, possibilitando um maior controle do processo;
· Metodologias: busque agregar a utilização de normas, técnicas, modelos e metodologias no Processo de Teste. Isso irá contribuir bastante
na busca pela melhoria contínua;
· Análise de Riscos: analisar os possíveis riscos do processo envolve a identificação das ameaças mais prováveis em conjunto com o
exame das vulnerabilidades relacionadas ao software. Combina a probabilidade de ocorrência de uma falha com a gravidade e o grau de
prejuízos que os danos poderão acarretar. Visando minimizar os possíveis problemas, a utilização da análise de riscos pode reduzir os custos
do projeto e garantir mais qualidade ao software, ao priorizar os testes nos pontos mais relevantes;
· Gestão de Defeitos: para um bom desempenho dos testes, um importante fator é o registro e o acompanhamento dos bugs. Porém,
apenas descobrir os defeitos não é suficiente, é preciso administrá-los. Utilizar o gerenciamento de defeitos no Processo de Teste possibilita
que os riscos sejam minimizados, controlados, evidenciados e o seu impacto não seja grande para o projeto;
· Equipe: deixe os papéis e responsabilidades claramente definidos dentro do processo, para que cada membro do time saiba a sua função.
Além disso, lembre-se das características que um profissional de teste deve ter. Algumas delas são fundamentais para o desempenho de um
bom trabalho. Priorize os profissionais com perfil investigador, criativo, questionador, detalhista, proativo e comprometido;
· Lições Aprendidas: realizar um balanço geral dos testes executados, analisando as conquistas e desafios, possibilita que as lições
aprendidas e armazenadas sejam utilizadas em projetos futuros, evitando que os erros sejam repetidos e permitindo que os acertos sejam
aprimorados, aumentando a qualidade e diminuindo os custos e os riscos do software.
Conclusão
A utilização de um Processo de Teste contribui para melhorar a efetividade e eficiência do teste em um projeto, agregando confiança e
credibilidade ao software. No entanto, para que seja possível colher esses frutos, é preciso um acompanhamento próximo de todas as fases
do ciclo de vida.
Pode ser que mesmo conduzindo de perto os testes, surjam pressões que impactarão diretamente no rumo do processo implantado. Essa
situação possivelmente fará com que nem todas as atividades planejadas sejam executadas. Para amenizar o impacto na qualidade final do
projeto, a análise de riscos e a definição de estimativas tornam-se imprescindíveis.
Aprender com os erros, aprimorar os acertos, adotar uma gestão de defeitos, ter uma equipe qualificada, utilizar técnicas e ferramentas
voltadas para a necessidade do projeto, também são fatores fundamentais para obter o sucesso no processo.
É válido ressaltar que independente dos percalços encontrados ao longo do caminho, a implantação de um Processo de Teste contribui
bastante para a melhoria do software, tornando o teste organizado e controlado através da definição de um escopo próprio.
No entanto, para que seja possível garantir o êxito, além de caminhar em paralelo com o ciclo de desenvolvimento, o processo deve ser
revisto continuamente. O objetivo é ampliar a sua atuação e aprimorar as lições aprendidas, possibilitando cada vez mais controle das
atividades de teste no projeto.
Livro
BASTOS, Anderson; RIOS, Emerson; MOREIRA, Trayahú. “Base de Conhecimento em Teste de Software”. 2ª Edição São Paulo: Martins
Editora Livraria Ltda, 2007.
Links
http://asespecialistas.blog.com/2010/10/05/jobs
 A Adequação dos Cargos da Área de Teste à Realidade das Empresas.
http://www.testexpert.com.br/?q=node/101
 Formando Equipes Eficientes de Teste de Software.
http://www.unieuro.br
 O Processo de Teste e o Ciclo de Desenvolvimento de Software.
http://asespecialistas.blog.com/2010/07/16/testplan
 Plano de Teste

Mais conteúdos dessa disciplina