Você está na página 1de 21




ƵƌƐŽĚĞ
&ƵŶĚĂŵĞŶƚŽƐĞŵdĞƐƚĞĚĞ^ŽĨƚǁĂƌĞ


 DſĚƵůŽƐϭĞϮ
 dƵƚŽƌ͗ZĞŐŝƐůĂŶĐŽͬ&ŝĂŵŵĂƵƐƚſĚŝŽ



hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

1.1 O quê é Teste de Software?

Segundo Myers (1979), o teste consiste em executar um programa com


a intenção de encontrar erros. Tendo como principais objetivos descobrir
defeitos, servir como métrica para medição da qualidade do software e
juntamente com isso, auxiliar na prevenção de erros.

1.2 O Surgimento das Atividades de Teste de


Software

Em um passado, não tão distante, a tarefa de teste de software era


considerada um processo a parte, no qual não se deveria perder muito tempo,
tão pouco investir grandes quantias. As atividades de teste eram executadas,
na maioria das vezes, pelo próprio desenvolvedor, sendo muitas vezes
inclusive encarada como castigo para a equipe de desenvolvimento.

Com a expansão da tecnologia e a globalização, o mercado de software


cresceu, e em paralelo com esse crescimento, a competição entre empresas
tornou-se mais acirrada. Produzir o software já não era o diferencial. O Novo
desafio era mantê-lo no mercado.

Sistemas cada vez mais complexos, e ambientes cada vez mais


dependentes de TI (Tecnologia da Informação) exigiam profissionais
qualificados para a garantia da qualidade. O estopim para que o Conceito de
testes fosse repensado.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Em 1979, Myers conceituo teste de software como sendo “o processo


no qual um programa é executado, com o objetivo de encontrar erros”.

A partir daí, o processo de teste tomou força, e deixou de ser uma


simples tarefa, sendo encarado por grandes empresas como uma necessidade
para a vida do software no mercado.

Hoje, século XXI, cada vez mais as empresas as empresas investem no


aprimoramento do processo de desenvolvimento e na qualificação das equipes,
o que requer profissionais cada vez mais qualificados para atender as
demandas de qualidade exigidas pelo mercado.

Conheça a seguir a motivação para o desenvolvimento de uma equipe


de teste de software.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

2.1 Por que Testar?

Para responder a esta pergunta, vamos considerar algumas das


famosas leis de Murphy.

• Se uma coisa pode sair errado, sairá;

• Toda solução cria novos problemas;

• Se tudo parece estar indo bem, é porque você não olhou direito;

• A natureza sempre está a favor da falha oculta.

A partir daí, podemos refletir sobre outras questões.

• O ser humano é falho, logo a sua criação também será;

• Pessoas têm pontos de vista diferentes. A visão de um


desenvolvedor é totalmente diferente da visão do usuário;

• Podemos considerar que um sistema de controle de tráfego aéreo


e um sistema de vendas de uma padaria têm a mesma
complexidade?

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

A atividade de testes, fazer parte do nosso dia-a-dia, em diversas


situações. Inclusive:

• Ao consertar o chuveiro;

• Ao instalar um novo eletrodoméstico;

• Ao preparar um bolo.

Então, por que não testar Software?

Conforme vimos anteriormente, devido à complexidade dos atuais


sistemas e à grande dependência do mercado em relação à área de TI, o
processo de teste cada vez mais tem sido refinado e aprimorado, muitas vezes
servindo como estratégia para as empresas. Manter um software no mercado
requer que o mesmo atenda às características mínimas de qualidade, o que
muitas vezes é um diferencial para o negócio.

Testes podem prevenir e diminuir radicalmente retrabalhos no software,


normalmente relacionados a mudanças de requisitos, ou até mesmo a
manutenções corretivas. Além de servirem como métricas para itens como
segurança e confiabilidade dos sistemas, necessários para softwares de alta
complexidade, como sistemas de tráfego aéreo e equipamentos médicos.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Vejamos um conhecido exemplo:

São Paulo, 25 de junho de 1998

“Resultado de três anos de investimentos em pesquisa, o Windows 98 chega


ao mercado com mais de 30 mil melhorias em relação ao seu antecessor. Mais
de mil funcionários da Microsoft participaram diretamente no desenvolvimento
do produto, que possui cerca de 16 milhões de linhas de código. "Nosso novo
sistema operacional tem melhor desempenho, está mais estável, totalmente
integrado às tecnologias da Internet e preparado para novos dispositivos de
hardware, como os periféricos que utilizam a interface Universal Serial Bus e os
drives tipo DVD". Informa Mauro Muratório Not, diretor geral da Microsoft
Brasil.”. Fonte: http://www.microsoft.com/brasil/pr/windows98.htm.

Fato:

Lançamento do Windows 98

Durante sua apresentação em lançamento mundial, o Windows 98 travou ao


vivo. Exibindo tela azul após demonstração de reconhecimento de novos
dispositivos.

Ainda se pergunta por que testar?

É fato que nunca teremos um sistema 100% livre de defeitos, mas o foco
do teste de software é justamente descobrir o máximo de erros possíveis,
trabalhando na prevenção destes, a fim de entregar um produto com mais
qualidade ao usuário final e assim diminuir riscos do negócio como um todo.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

2.2 O Custo da Qualidade

Podemos definir o custo da qualidade como um investimento que tem o


objetivo a obtenção de um nível de qualidade desejado para o software. O
custo da qualidade pode ser mensurado a partir de dois grupos de custos, os
Custos de Conformidades e os Custos de Inconformidades. Veja a seguir.

Custos de Conformidades

Os custos de conformidades referem-se aos custos alocados para os


recursos que têm como objetivo a obtenção de qualidade. Veja abaixo alguns
exemplos de custos de conformidades:

• Equipe Técnica;

• Planejamento;

• Testes;

• Processos;

• Treinamentos, e etc.


ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Custos de Inconformidades

Os custos de inconformidades referem-se aos custos alocados para as


correções de falhas e reparos. Os reparos e falhas podem ser provenientes
não somente do código fonte em si, mas também de requisitos mal
especificados. Veja abaixo alguns exemplos de custos de inconformidades.

• Retrabalho. Quando o caminho proposto não chegaria ao


objetivo final;

• Mudança de Requisitos. Por motivo de inconformidades e


correção de defeitos;

• Ações Corretivas e Preventivas;

• Planos de Contingência. Planos de ação para minimizar


sintomas de defeitos já existentes;

Sabemos que uma equipe de testes de software completa e qualificada


tem um elevado custo, envolvendo remuneração dos profissionais, os custos
com ambientes de teste e ferramentas de apoio e auxílio, utilizadas para a
automação de testes, gestão das suítes de testes, análise de métricas e etc.
em um primeiro momento pode-se observar que a equipe de testes eleva o
custo do projeto de desenvolvimento, e por conseqüência o custo do software.

Sob esta premissa, muitas empresas ainda encaram o teste de software


como uma atividade secundária, não dando o devido valor à atividade.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

A Regra 10 de Myers

Em 1979, Glenford Myers em seu livro “The Art of Software Testing” (A


Arte do Teste de Software), trazia à luz do dia o conceito que mais tarde foi
denominado A Regra 10 de Myers, que indica que quanto mais tarde um
defeito for encontrado, maior será o custo de sua correção. Segundo Myers, o
custo de correção de um defeito tem um crescimento exponencial, numa
proporção de 10 vezes para cada estágio em que o projeto de desenvolvimento
avança.

Veja a seguir um gráfico representativo da Regra de 10 de Myers.

Imagem 2.3. O Custo da Qualidade

Seguindo esta lógica, podemos facilmente observar que se um defeito


encontrado na fase de especificação de requisitos tem um custo de 1 para ser

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

corrigido, caso o mesmo defeito venha a ser encontrado na fase de


Codificação, o seu custo de correção aumenta para 10, caso o mesmo erro
venha a ser encontrado na fase de testes de sistema, o custo de correção
aumenta para 100, e assim progride exponencialmente até a detecção em fase
de produção, jê em ambiente de usuário final.

Testar é caro, reparar o erro é mais caro ainda!

Os fatos comprovam o quanto é necessário o processo de teste de


software para um projeto de desenvolvimento, veja a seguir dois exemplos de
grandes empresas que tiveram elevados custos para a correção de defeitos em
momentos tardios.

Intel

“Em 1994, ouve um erro de vírgula flutuante no processador Pentium. A


correção do defeito custou à empresa 475 milhões de dólares. O reparo teria
um custo insignificante, caso o defeito fosse descoberto na fase de
especificação.” Fonte: Computer Science, Springer Verlag – 1995.

Apple

“Apple admite falha na antena do Iphone 4, que perde sinal dependendo


da forma como o usuário segura o aparelho.” Fonte: HTTP://www.apple.com

Mesmo com toda a estrutura das gigantes Apple e Intel, erros


acontecem. Estas situações provam que não existem sistemas livres de
defeitos, bem como reforçam a importância do teste para o negócio.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

2.3 Riscos do Projeto de Software

Segundo o dicionário de língua portuguesa, risco é definido como “a


probabilidade de insucesso de determinado empreendimento, em função de
acontecimento eventual, incerto, cuja ocorrência não depende exclusivamente
da vontade dos interessados”.

No mundo dos negócios definiríamos risco como sendo o resultado da


multiplicação da probabilidade de acontecimento de um determinado evento e
seu impacto.

Risco = Probabilidade x Impacto (Conseqüência)

Análise de Riscos

A Análise de riscos é a verificação dos pontos críticos que possam vir a


apresentar inconformidades durante a execução de um determinado objetivo.

A análise Consiste no processo de identificação de possíveis ofensores do


projeto, análise de seus impactos, planejamento e controle dos mesmos.

Conforme vimos anteriormente, com o avanço da tecnologia e os


sistemas cada vez mais complexos, as empresas estão investindo cada vez
mais em qualidade. E inserido neste contexto a análise de riscos ganha
grandes proporções.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

O interesse das organizações em saber seu grau de exposição a


situações que poderiam colocar em risco o negócio é crescente, e ainda maior
na área de desenvolvimento de Software.

O teste, além de apontar defeitos, também serve como métrica para a


qualidade do produto e muitas vezes apontando problemas, ou identificando
riscos para o projeto, uma vez que através deste, vulnerabilidades podem ser
descobertas, assim como falhas que poderiam comprometer o funcionamento
do sistema como um todo.

Riscos x Teste de Software

Você pode estar se perguntando qual a relação de riscos do projeto com o


teste de software. Vamos lá!

Já sabemos que um dos objetivos do teste de software é encontrar o maior


número de defeitos possível, auxiliando na prevenção dos mesmos.

Conheça os requisitos mínimos de qualidade de um software, de acordo com a


Norma ISO 9126.

Funcionalidade. O software funciona de acordo com a sua especificação;

Confiabilidade. O software é seguro com relação aos dados manipulados;

Usabilidade. O software é fácil de ser utilizado, é intuitivo;

Eficiência. O software atende às necessidades do cliente;

Manutenibilidade. O software possui fácil manutenção;

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Portabilidade. O software é fácil de ser instalado, implementado ou adaptado a


diferentes plataformas.

Encontrar defeitos, com o objetivo de garantir a qualidade do software


também pode sofrer com riscos. Vejamos alguns exemplos que poderão
representar riscos relacionados à área de testes:

• Custos elevados;
• Ambiente de testes;
• Tecnologias novas;
• Requisitos mal especificados;
• Gerência de Configuração;
• Entrega do sistema.
• Elevados custos;

Planejamento do Gerenciamento de Riscos

O Planejamento do Gerenciamento de Riscos é o processo que define


como será conduzido o gerenciamento de riscos do projeto.

Veja a seguir a imagem que representa os processos de gerenciamento


de riscos, de acordo com o PMBOK (2009).

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Imagem 2.3. Processos de Gerenciamento de Riscos, segundo o PMBOK.

Identificação dos Riscos

São os processos nos quais serão identificados os principais riscos


referentes ao projeto. Os riscos serão identificados de várias formas, dentre as
quais destacamos as principais formas de identificação dos riscos do projeto.

• Técnicas de diagramas (causa e efeito);


• Revisões da documentação;
• Estimativas de tempo;
• Aplicação da Fórmula de risco (Risco = Probabilidade x
Impacto).

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Análise Qualitativa de Riscos

A análise qualitativa de riscos avalia a prioridade dos riscos identificados


de acordo com a probabilidade de ocorrência, e os impactos que seriam
causados por este.

Análise Quantitativa de Riscos

A análise quantitativa de riscos é feita com base nos riscos priorizados


pela análise Qualitativa. Expressando numericamente os impactos decorrentes
do risco.

Planejamento de retorno dos Riscos

Definir qual o plano a ser tomado com o objetivo de reduzir os riscos do


projeto.

Monitoramento e Controle de Risco

Rastreamento dos riscos identificados, monitoramento, identificação de


novos riscos, execução dos planos de resposta aos riscos e avaliação dos
resultados ao longo do ciclo de vida do projeto.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

2.4 Visibilidade do Teste de Software no


Mercado

Há algum tempo atrás, quando um estagiário ou menor aprendiz entrava


em uma empresa de desenvolvimento de softwares, geralmente era alocado na
área de teste e qualidade. Os motivos das empresas para exercitar esta prática
se resumiam em proporcionar ao novo membro do time a familiarização com os
sistemas, tanto em funcionalidades quanto em configurações de ambientes,
atividades estas que não exigiam nenhum envolvimento com o código-fonte.

Analisando friamente a situação mencionada, podemos perceber o baixo


nível de importância que era aplicado à qualidade do produto, visto que os
profissionais da área de testes não possuíam experiência e desta forma a
responsabilidade pela qualidade das entregas era do desenvolvedor.

Em micros e pequenas empresas esta cultura ainda vigora, embora as


empresas de médio e grande porte já tenham mudado a sua mentalidade a
respeito deste conceito, devido à grande concorrência que se instalou na área
de TI, e a crescente necessidade de conquistar e manter clientes. Desta forma
a profissionalização passou a fazer parte definitiva dos setores de teste e
qualidade de software, exigindo a qualificação para os profissionais da área.

Cada vez mais o mercado exige a criação de meios para qualificar os


profissionais de teste e qualidade, existem diversas certificações disponíveis e
a formação de engenheiros de teste tornou-se constante.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Veja a seguir algumas das características que o mercado busca em


Engenheiros e Analistas de Testes.

• Capacidade Crítica de Análise de Processos;

• Facilidade de gerar e gerenciar documentação;

• Facilidade de comunicação interpessoal, entre vários departamentos

e níveis hierárquicos, na empresa e fora dela.

"Uma novidade é que estão aparecendo cada vez mais vagas específicas para
testador de software, o que não era tão comum há alguns anos. Isso reflete a
maturidade do mercado e a preocupação cada vez maior das empresas em
entregar produtos de qualidade atestada".

Se observarmos o mercado de desenvolvimento de softwares de perto,


ainda encontramos situações assustadoras em termo de qualidade, e isto nos
leva a não acreditar na maturidade do mercado. Porém, facilmente percebemos
que falhas de software que afetam o grande público são motivo de notícia de
domínio público, já que apresentam riscos à população e na imagem das
empresas e instituições.

Percebe-se dentro das empresas a crescente demanda por profissionais


de teste, e inclusive a pressão para que os desenvolvedores incorporem os
testes em suas atividades diárias. E esta é uma tendência que não poderá
mais retroceder.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Neste capítulo fomos apresentados à Motivação para implementar um


processo de teste de software. Tivemos a oportunidade de observar que o teste
de softwares é importante para entregar um produto de qualidade, e embora a
implementação de um processo de teste tenha elevados custos, ao final do
projeto percebe-se que ocorre a diluição destes custos, com a redução do
retrabalho.

Verificamos que o mercado está necessitando de profissionais de testes


e qualidade de software, e que a tendência para a procura dos profissionais é
crescente.

Continue a sua jornada de aprendizagem! Efetuar os exercícios da


seção Pratique! é um grande passo para a preparação à prova final do curso.

Boa sorte!

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Olá Aluno!

Seja bem-vindo à seção Pratique.

Para reforçar o seu aprendizado, elaboramos algumas questões


relacionadas aos módulos de Introdução e de Motivação. Esta é uma
oportunidade para que você fixe o conteúdo e assim prepare-se para a
avaliação final do curso.

Fique a vontade para relembrar o conteúdo, retornando às seções do


capítulo. Leia e releia, quantas vezes julgar necessário, mas lembre-se:
Somente após responder as perguntas propostas, consulte a seção de
respostas.

Questões propostas:

Quais os fatores que influenciaram o desenvolvimento das atividades de teste


de software?

Cite alguns motivos que levam as empresas a cada vez mais “testar” os
softwares em desenvolvimento, antes de entregá-los aos clientes.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

Explique o que é a análise de riscos de um projeto de testes, e cite dois


requisitos mínimos da qualidade, conforme a Norma ISO 9126.

Atualmente percebe-se o aumento da importância dada pelas empresas à área


de teste e qualidade de software, bem como o crescente investimento
disponibilizado pelas empresas. Explique o motivo pela qual é cada vez mais
importante o crescimento e / ou implementação de uma área de qualidade e
teste de software bem definida nas empresas.

ttt͘d/Ϯϰyϳ͘KD͘Z 
hZ^K&hEDEdK^Dd^d^K&dtZ
DſĚƵůŽϭ͗/ŶƚƌŽĚƵĕĆŽͬDſĚƵůŽϮ͗DŽƚŝǀĂĕĆŽ

REFERÊNCIAS BIBLIOGRÁFICAS

PEZZÈ, Mauro; YOUNG, Michael. Teste e análise de software: Processos,


princípios e conceitos. 1 ed. Porto Alegre: Bookman, 2008.

MOREIRA FILHO, Trayahu Rodrigues; RIOS, Emerson; SOUZA, Aderson;


CRISTALLI, Ricardo. Base de conhecimento em teste de software. 2 ed.
Martins, 2007.

MYERS, Glen ford. The art of software testing. 2 ed.Wiley, 2004.

ZELLER, Andreas. Why programs fail: A guide to sistematyc debugging. San


Francisco: Morgan Kaufman, 2005.

PMI - Project Management Institute. PMBOK: Um guia do conhecimento em


gerenciamento de projetos. 4 ed. Global Standard, 2008.

INTERNATIONAL ORGANIZATION STANDARDIZATION. ISO/IEC TR 9126:


Software Enginnering – Product Quality – Quality in use metrics. 2004.

ASSOCIAÇÃO LATINO AMERICANA DE TESTE DE SOFTWARE. Disponível


em http://www.alats.org.br/. Acesso em outubro de 2010.

QUALITY ASSURANCE INSTITUTE. Disponível em


http://www.qaiglobalinstitute.com/innerpages/Default.asp. Acesso em outubro
de 2010.

INTERNATIONAL SOFTWARE TESTING QUALIFICATIONS BOARD.


Disponível em http://istqb.dedicated.adaptavist.com/display/ISTQB/Home.
Acesso em outubro de 2010.

ttt͘d/Ϯϰyϳ͘KD͘Z 

Você também pode gostar