Buscar

Aulas-Unidade-1-Free

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

QUALIDADE E TESTE DE SOFTWARE - CCT0711
1. UNIDADE I - Fornecer uma visão geral de testes e
qualidade de software, entender seus fatores, objetivos e
características.
1.1- Revisão Geral de Testes de SW
O teste é destinado a mostrar que um programa faz o que é proposto a 
fazer e para descobrir os defeitos do programa antes do uso. 
Quando se testa o software, o programa é executado usando dados fictícios. 
Os resultados do teste são verificados à procura de erros, anomalias ou 
informações sobre os atributos não funcionais do programa.
O processo de teste tem dois objetivos distintos:
1. Demonstrar ao desenvolvedor e ao cliente que o software atende a seus 
requisitos. Para softwares customizados, isso significa que deve haver pelo 
menos um teste para cada requisito do documento de requisitos. Para 
softwares genéricos, isso significa que deve haver testes para todas as 
características do sistema, além de suas combinações, que serão
incorporadas ao release do produto.
 O primeiro objetivo, leva a testes de validação, nos quais você espera que 
o sistema execute corretamente usando determinado conjunto de casos de 
teste que refletem o uso esperado do sistema. 
2. Descobrir situações em que o software se comporta de maneira incorreta, 
indesejável ou de forma diferente das especificações. Essas são 
consequências de defeitos de software. O teste de defeitos preocupa-se com a 
eliminação de comportamentos indesejáveis do sistema, tais como panes, 
interações indesejáveis com outros sistemas, processamentos incorretos e 
corrupção de dados.
 O segundo objetivo, leva a testes de defeitos, nos quais os casos de teste 
são projetados para expor os defeitos.
Objetivos Gerais
Aplicar os conceitos de testes de software no desenvolvimento de sistemas 
para garantir e aprimorar a qualidade dos softwares.
Objetivos Específicos
1. Conhecera necessidade de se adotar um processo testes para garantir a
 qualidade
do desenvolvimento de software.
2. Conhecer as métricas utilizadas nos testes de software.
3. Ser capaz de elaborar um plano de qualidade de software(SQA).
4. Conhecer as normas e padrões de qualidade de software.
5. Conhecer as ferramentas a serem utilizadas para garantir a qualidade no
 desenvolvimento de software.
6. Aprender a criar planos de mitigação deriscos.
7. Identificar qual modelo se adapta para cada tipo de software.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Testes de unidade
Testa um componente isolado ou classe do sistema. Nesta fase, os esforços 
dos testes estão concentrados nas menores unidades do software produzido. 
O objetivo é detectar erros de lógica e/ou de implementação em pequenas 
partes do sistema, independentemente do restante. Consequentemente, cada 
unidade do sistema é testada isoladamente. 
Isso contribui para assegurar a correção dos componentes individuais, “mas 
não garante que a integração dessas partes funcione como o esperado”. 
Exemplo: dividir (x int, y int ) = z int.
Caso tenhamos x=1 e y=0, z será um valor com erro e deverá retornar uma 
mensagem ao usuário, avisando que a operação é inválida. 
Caso a expressão seja um dado comum do sistema, para fazer essa validação 
a autorização deverá ser do usuário, pois faz parte do conjunto de regras de 
negócio. 
Testes de integração
Testa se um ou mais componentes combinados funcionam de maneira 
satisfatória. Pode-se dizer que é composto por vários testes de unidade. 
O ponto central dos testes está voltado para a detecção de falhas provenientes 
da integração interna dos componentes do sistema. Para isso, os módulos são 
combinados e testados em conjunto. 
Essa fase vem logo após os testes de unidade e antecede os testes de 
sistema, tendo como resultado o sistema integrado e preparado para os testes. 
Não faz parte do escopo dessa fase testar a interação do sistema produzido 
com outros sistemas, que por ventura venham a se comunicar. 
Testes de sistema
Objetivo dos testes de sistema:
Realizar a execução do sistema como um todo, dentro de um ambiente 
operacional controlado, para validar a perfeição e requinte na execução de 
suas funções, acompanhando cenários sistêmicos elaborados pelo profissional 
de requisitos do projeto. Devem retratar os requisitos funcionais e não 
funcionais do sistema; 
Este tipo de teste é realizado por uma equipe de teste independente, e o 
analista de teste elabora os casos de testes, normalmente em conjunto com os 
desenvolvedores e atuando em um ambiente controlado, no caso o ambiente 
de teste; 
O comportamento de todo o sistema/ produto é definido pelo escopo de um 
projeto ou programa de desenvolvimento; 
QUALIDADE E TESTE DE SOFTWARE - CCT0711
O ambiente de teste deve corresponder o máximo possível ao objetivo final, ou 
ao ambiente de produção. 
Esta é a fase na qual o software já está completamente integrado. Assim 
sendo, os testes apontam falhas em relação aos requisitos do sistema, no que 
diz respeito à comunicação com outros sistemas. 
Os testes são realizados em condições bastante semelhantes (de ambiente, 
massa de dados etc.) com as que o usuário utilizará em produção. 
Os testes de sistema não se limitam aos requisitos funcionais, mas também 
objetivam testar os requisitos não funcionais. 
Testes de aceitação
Os testes de aceitação são, em geral, uma extensão dos testes de sistema. 
Nessa fase, o objetivo é verificar se o software está pronto e pode ser usado 
pelo usuário final. 
Para isso, verifica-se se o sistema realiza as funções para as quais foi criado, 
satisfazendo as necessidades do cliente. 
Os testes são planejados e projetados com o mesmo cuidado e nível de 
detalhe do teste do sistema. 
Durante essa fase, os critérios de aceitação são conhecidos, o que permite a 
automação dos testes de aceitação, além da monitoração e medição. 
1.1.1 - Ciclo de Vida de Teste de Software
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Descrever o modelo V (verificação e validação), com paralelismo entre as
atividades de desenvolvimento e teste de software;
Quais são os objetivos do modelo V? 
 Minimizar os riscos do projeto; 
 Melhorar e garantir a qualidade do projeto; 
 Reduzir os custos totais ao longo do ciclo de vida do projeto; 
 Melhorar a comunicação entre as partes interessadas.
A definição de verificação e validação abrange muitas das atividades às quais 
está diretamente ligada a garantia da qualidade de software (SQA). 
Outra forma o modelo V como um U.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Ao seguir o processo de STLC - Ciclo de Vida de Teste de Software, todas 
as atividades devem ser feitas de forma planejada e sistemática, ou seja, cada 
etapa precisa possuir seus próprios objetivos e resultados.
Etapas do Ciclo de Vida de Teste de Software:
1. Análise de requisitos
Nesta etapa, os profissionais identificam todos os tipos de testes que devem 
ser executados, comunicam-se com as diversas partes interessadas no projeto,
definem prioridade e foco das validações e analisam a necessidade de 
automatizar os testes.
2. Fase de planejamento
Nesta etapa, o Analista de Qualidade elabora um plano de teste, recomenda 
ferramentas para a validação, estima o tempo de trabalho e o custo 
aproximado para o projeto, bem como determina as funções e 
responsabilidades de cada profissional.
3. Integração do caso de teste
Nesta etapa, os casos de teste e scripts são elaborados, analisados e 
aplicados. Posteriormente, os dados são avaliados e editados novamente.
4. Configuração do ambiente de teste
A etapa de configuração do ambiente é uma das principais fases do processo 
de teste. Nesta fase, é necessário verificar a arquitetura utilizada, configurar o 
ambiente e fazer uma lista de requisitos de hardware e software.
5. Fase de implementação
Nesta etapa, os profissionais de teste vão realizar as devidas validações 
considerando tudo o que foi apontado nos casos de teste. É necessário 
documentar os resultados dos testes, registrar os erros, reportar os problemas 
para a equipe de desenvolvimento e,após correção, refazer todas validações 
novamente.
6. Encerramento
Nesta etapa, discute-se os resultados obtidos durante o ciclo de vida de teste, 
com o propósito de reduzir falhas e custos, além de otimizar os processos e 
cumprir os objetivos do negócio. É importante que seja elaborado um relatório 
de qualidade com a cobertura dos testes e os detalhes do projeto.
Objetivos Gerais
Aplicar os conceitos de testes de software no desenvolvimento de sistemas 
para garantir e aprimorar a qualidade dos softwares.
Objetivos Específicos
1. Conhecera necessidade de se adotar um processo testes para garantir a 
qualidade
 do desenvolvimento de software.
2. Conhecer as métricas utilizadas nos testes de software.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
3. Ser capaz de elaborar um plano de qualidade de software (SQA – Software
 Quality Assurance).
4. Conhecer as normas e padrões de qualidade de software. 
5. Conhecer as ferramentas a serem utilizadas para garantir a qualidade no
 desenvolvimento de software.
6. Aprender a criar planos de mitigação deriscos.
7. Identificar qual modelo se adapta para cada tipo de software.
Uma peça de software é mais do que várias linhas de código. 
É geralmente um sistema complexo multi-camada, incorporando dúzias de 
componentes funcionais separados e integrações de terceiros. 
Assim, testes de software eficientes devem ir muito além de apenas encontrar 
erros no código fonte. 
Tipicamente o teste cobre os seguintes níveis de software.
1.1.2. Classes de Testes
Desenvolvedor
É sempre responsável por testar unidades individuais (componentes). Em 
muitos casos, também conduz testes de integração, um passo que leva à 
construção (e teste) da arquitetura completa do software. 
Grupo independente de teste ( independent group test – ITG) 
Normalmente, para que o processo de teste transcorra de forma íntegra, é 
comum a utilização de um grupo independente de teste, já que as pessoas 
que criaram o software não devem ser as mesmas que irão realizar os testes. 
Seria um conflito de interesses, pois foram elas que o “criaram”. Eles se 
envolvem no projeto após a arquitetura do software estar completada. 
QUALIDADE E TESTE DE SOFTWARE - CCT0711
PDF  UESA-Testes de Software-Introducao-2021-1
PDF  UESA-Testes de Software-Tipo_Testes-2021-1
PDF  UESA-Testes de Software-Classes-2021-1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.2. Conceito de qualidade de processo e produto de software
Com a constante demanda gerada pela vida moderna, cada vez mais os 
computadores passam a integrar a rotina diária e a produção de software vem 
tendo um aumento constante. A exigência por qualidade estende-se também à 
área de software e pode ser considerada o centro das atenções para o 
desenvolvimento de software. Por exemplo, do ponto de vista dos fornecedores
de software, qualidade não é mais um fator de vantagem no mercado, mas 
uma condição necessária e pode-se dizer indispensável para que seja possível 
competir com sucesso.
1.2.1. Definição de Processo
Segundo Sommerville,
Um processo de software é um conjunto de atividades relacionadas que levam
à produção de um produto de software
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Segundo Pressman,
Processo de software é definido como uma metodologia para as atividades,
ações e tarefas necessárias para desenvolver um software de alta qualidade
 pode ser mapeado os diversos processos de software em um modelo
genérico tomando por bases quatro (4) atividades.
Segundo Sommerville, essas quatro atividades são:
1. Especificação do software: A funcionalidade do software e as
restrições a seu funcionamento devem ser definidas.
2. Projeto e implementação de software: O software deve ser produzido
para atender às especificações
3. Validação de software: O software deve ser validado para garantir que
atenda às demandas do cliente
4. Evolução de software: O software deve evoluir para atender às
necessidades de mudança dos clientes.
Perceba que todo processo de software pode ser mapeado em um modelo 
genérico com essas quatro atividades: especificação, projetos e 
implementação, validação e evolução.
1.2.2. Dimensões
1.2.2.1. Usuário
1.2.2.2. Desenvolvimento
1.2.2.3. Comercialização
Usuário: avalia o software sem conhecer seus aspectos internos, está apenas 
interessado na facilidade do uso, no desempenho, na confiabilidade dos 
resultados e no preço;
• Desenvolvedores: avaliam aspectos de conformidade em relação aos re-
quisitos dos clientes e também aspectos internos do software;
• Organização: avalia aspectos de conformidade em relação aos requisitos dos
clientes e desenvolvedores e também aspectos de custo e cronograma.
1.2.3. Fatores de Qualidade
Segundo Pressman:
"Qualidade de software é a conformidade a requisitos funcionais e de 
desempenho que foram explicitamente declarados, a padrões de 
desenvolvimento claramente documentados e a características implícitas que 
são esperadas de todo software desenvolvido por profissionais."
Softwares que apresentam bugs podem acarretar diversos problemas, como 
supressão de negócio, prejuízos financeiros, além de perda de tempo e, 
principalmente, queda na reputação das empresas.
Assim sendo, os processos de gerenciamento de testes ganham cada vez mais
importância no contexto do desenvolvimento do software, uma vez que 
QUALIDADE E TESTE DE SOFTWARE - CCT0711
vulnerabilidades ou falhas podem gerar riscos e causar perdas, em muitos 
casos, irrecuperáveis.
Qualidade de Software pode ser vista como um conjunto de características que
devem ser alcançadas em um determinado grau para que o produto atenda as 
necessidades de seus usuários . 
A qualidade do produto final é profundamente afetada pela qualidade do 
processo de desenvolvimento, portanto a qualidade deve ser uma meta a ser 
alcançada e aprimorada ao longo do processo de software.
Da mesma forma como existem diversas interpretações para qualidade de um 
modo geral, também existem diversas interpretações para qualidade de um 
produto de software, tais como:
• Boa fabricação.
• Deve durar muito.
• Bom desempenho.
• Adaptável às minhas necessidades específicas
• Fácil de usar.
• Sem defeitos, entre outros.
É importante notar que a garantia de qualidade de software (Software Quality 
Assurance) não é algo com que começamos a nos preocupar depois que o 
código foi gerado, e sim “ ao longo de todo o processo de engenharia de 
software”.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
1.2.3.1. Externos
1.2.3.2. Internos
São exemplos de Fatores externos: confiabilidade, eficiência e facilidade de 
uso.
São exemplos de Fatores internos: modularidade e legibilidade.
1.2.3.3. Exemplos e relação com normas
1.2.4. Métricas de Qualidade
1.2.4.1. Definição
1.2.4.2. Objetivos
1.2.4.3. Categorias
Indicadores de qualidade de software: 8 dicas para monitorar o processo
e entregar um excelente produto final
Durante o processo de desenvolvimento de um sistema, é fundamental 
monitorar a qualidade para que se possa entregar o melhor produto 
possível.
Nesse sentido, a definição de critérios e a realização de testes são 
extremamente importantes, bem como o estabelecimento de indicadores de 
desempenho.
Os KPIs - (Key Performance Indicator ou Indicadores-Chave de 
Desempenho) servem para mensurar a qualidade do sistema e avaliar suas 
características, fornecendo informações que servirão como base para tomadas
de decisão.
Não analisar as características de qualidade do sistema e os critérios definidos 
para refletir tais características pode induzir os desenvolvedores a falsas 
respostas.
Por isso, é necessário estabelecer um padrão de qualidade com base nos 
resultados que se espera alcançar.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Serão apresentados 8 indicadores de qualidade de software que todo 
desenvol-vedor pode utilizar.
1 – Total de Defeitos Detectados (TDD)
O primeiro item da nossa lista de indicadores de qualidade de software é 
bastantesimples. Este KPI mede a quantidade de falhas encontradas no 
sistema durante as fases de teste.
O TDD sozinho é um pouco limitado e funciona melhor se combinado com 
outros KPIs, como veremos mais à frente.
2 – Total de Defeitos Encontrados pelo Cliente (TDC)
Se o KPI anterior mede a quantidade de falhas encontradas nas fases de teste,
este aqui mensura os bugs detectados pelo cliente. Ou seja, depois que o 
software é lançado.
3 – Total de Defeitos Removidos (TDR)
Este terceiro indicador contabiliza a quantidade de bugs que os 
desenvolvedores conseguiram remover.
Uma boa maneira de analisar o TDR é compará-lo com o TDD. Ou seja, de 
todos os defeitos detectados, quantos a equipe de TI conseguiu remover?
4 – Eficácia na Detecção de Defeitos
Este indicador mostra a eficácia da equipe na hora de detectar bugs. Para 
calcular, basta aplicar a seguinte fórmula:
 EDD = TDD / (TDD+TDC) x 100
Suponhamos que a equipe de desenvolvedores encontrou 50 erros no produto 
durante os testes. Depois que o software foi liberado, os usuários encontraram 
mais 20 erros que passaram despercebidos pelos programadores.
Logo:
EDD = 50 / (50+20) x 100
EDD = 71,4%
Ou seja, a eficácia da equipe em detectar falhas do software é de 71,4%.
5 – Tempo Médio de Reparo (MTTR)
Este indicador de qualidade mostra quanto se leva, em média, para que a 
equipe de desenvolvedores consiga identificar os erros no sistema e corrigi-los.
Quanto menor for o tempo médio de reparo, mais eficiente será a sua equipe.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Este KPI ajuda a garantir que os problemas sejam solucionados em um tempo 
razoável.
6 – Tempo Médio Entre Falhas (MTBF)
O Tempo Médio Entre Falhas indica os intervalos de tempo entre um bug e 
outro. Ou seja, se uma falha foi detectada hoje, em aproximadamente quanto 
tempo outra falha surgirá?
Para garantir um software de qualidade, este indicador precisa ser o mais alto 
possível.
O cálculo do MTBF é o seguinte:
 MTBF = (soma do tempo operacional / número total de falhas)
7 – Taxa de sucesso da resolução de defeitos
Este KPI tem como objetivo quantificar o total de bugs solucionados e os 
reincidentes e fazer uma relação entre eles.
Se nenhum defeito no produto for reaberto, isso significa que você obteve 
100% de sucesso na resolução do problema.
Para calcular o resultado desta taxa de sucesso, aplica-se a seguinte fórmula:
 Taxa de Sucesso da Resolução de Defeitos = Total de Defeitos 
Resolvidos – Total de Defeitos Reabertos / Total de Defeitos Resolvidos 
x 100
8 – Satisfação do usuário
Encerrando nossos indicadores de qualidade de software, temos a satisfação 
do usuário final.
Para saber se o software que você e sua equipe desenvolveram é realmente 
bom, nada mais justo que consultar a opinião do usuário.
Por isso, faça uma pesquisa de satisfação para saber como eles se sentem 
ao interagir com o seu produto, as funcionalidades que eles mais gostam e as 
que eles menos aprovam, quais as sugestões de melhoria e que nota eles dão 
para o seu software como um todo ou para aspectos específicos (usabilidade, 
estabilidade, simplicidade, recursos etc.).
MÉTRICAS 
As métricas de teste são um padrão de medidas muito útil para a 
verificação da efetivi-dade e da eficiência de diversas atividades do 
desenvolvimento de software
A coleta de métricas é a melhor maneira de saber se um processo está sob 
controle e
se os objetivos estão sendo atingidos, principalmente se o projeto for extenso e
QUALIDADE E TESTE DE SOFTWARE - CCT0711
complexo. 
Com os testes, isso não é diferente. 
As métricas de teste devem ser capturadas para indicar o progresso do 
processo de testes. Por exemplo, o objetivo dos testes é localizar a maior 
quantidade de defeitos possível, porém a tendência é que, quanto mais testes 
forem feitos, menos defeitos passem a ser encontrados. 
Caso as métricas indiquem que os defeitos aumentam cada vez mais, há 
indícios de problemas no processo de desenvolvimento !!
Métricas  são o processo em que números ou símbolos são conferidos a 
atributos de entidades de forma a caracterizá-las de acordo com regras 
claramente definidas. As métricas fazem um mapeamento do mundo empírico 
para o formal. 
Elas são uma medida quantitativa do grau em que um sistema, componente ou 
processo apresenta um determinado atributo.
Medida  é a atribuição empírica, objetiva de números, de acordo com regras
derivadas de um modelo ou uma teoria, a atributos de objetos ou eventos com 
o intuito de descrevê-los.
Focando a análise nas métricas de software, podemos dizer que a métrica de
software é a aplicação contínua de técnicas de medição ao processo de 
desenvolvi-mento de software e seus produtos, para fornecer informações 
gerenciais significa-tivas e pontuais, possibilitando a melhoria dos processos 
e produtos.
Categorização de métricas:
Métricas diretas (fundamentais ou básicas): medida realizada em 
termos de atributos observados (usualmente determinada pela contagem). Ex.: 
custo, esforço, no. linhas de código, capacidade de memória, no. páginas, no. 
diagramas, etc.
Métricas indiretas (derivadas): medidas obtidas a partir de outras 
métricas. Ex.: complexidade, eficiência, confiabilidade, facilidade de 
manutenção.
Métricas orientadas a tamanho: são medidas diretas do tamanho dos 
artefatos de software associados ao processo por meio do qual o software é 
desenvolvido. Ex.: esforço, custo, no. KLOC, no. páginas de documentação, 
no. Erros.
Métricas orientadas por função: consiste em um método para medição
de software do ponto de vista do usuário, determinando de forma consistente o 
tamanho e a complexidade de um software.
Métricas de produtividade: concentram-se na saída do processo de 
engenharia de software. Ex.: no. de casos de uso/iteração.
Métricas de qualidade: Oferecem uma indicação de quanto o software 
se adequa às exigências implícitas e explícitas do cliente.Ex.: erros/fase .
Métricas técnicas: concentram-se nas características do software e não
no processo por meio do qual o software foi 
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Podemos dividir as métricas em diretas e indiretas. 
As métricas diretas ou básicas são resultantes de atributos observados, 
determinados habitualmente pela contagem, como, por exemplo, custo, 
esforço, número de linhas de código, entre outros. 
As métricas indiretas ou derivadas são obtidas a partir de métricas diretas, e
citamos como exemplo a complexidade e a eficiência. 
Uma métrica direta é presumivelmente válida, pois não depende da medida de
outros atributos, enquanto que as métricas derivadas dependem da validade 
das métricas diretas.
Quando as métricas são medidas diretamente, normalmente não têm um 
significado importante para o processo, como, por exemplo, o número de 
classes de um modelo analisado isoladamente. Uma das formas de adicionar 
valor a essa informação é através da combinação com outras métricas, como o
número de operações e atributos de cada classe, possibilitando estimar o 
tamanho do sistema.
Os enfoques das métricas são a produtividade e a qualidade.
Quando é medido um processo, é avaliada a produtividade.
Quando medido um produto, a qualidade é que está sendo avaliada.
As métricas são importantes para entender o comportamento e o 
funcionamento do produto ou do processo, para controlar os processos e 
serviços, para prever valores de atributos e para tomar decisões a partir de 
padrões, metas e critérios.
Os objetivos das métricas devem ser estabelecidos a partir das necessidades
da organização. 
As métricas têm que ser definidas, priorizadas, documentadas, revisadas e
atualizadas.
Um programa de métricas envolve planejamento, medição, análise dos dados, 
tomada de decisão e implementação dessas decisões.
É um processo contínuo e sempre sujeito a melhorias.
 Alguns objetivos do uso de métricas de teste:
 Analisar os defeitos: obter informações relacionadas às origens dos 
defeitos, à forma como foram detectados, quando foram detectados, entre 
outros.
Analisar aeficácia e a eficiência dos testes e do processo de testes como 
um todo
Avaliar a produtividade do processo.
Analisar o retorno de investimento.
Determinar o esforço para automação dos testes.
Calcular o tempo e os recursos gastos com os testes.
Avaliar o andamento do teste, em relação ao cronograma, através do 
status do teste.
Planejar adequadamente os recursos, prazos e benefícios do processo de 
testes.
Identificar áreas que necessitam de melhorias.
Adequar as suítes de teste de acordo com o nível de cobertura necessário.
Melhorar a exatidão das estimativas.
Formar uma baseline para as estimativas.
Auxiliar no gerenciamento do projeto e da execução dos testes.
Auxiliar nos contratos de software.
QUALIDADE E TESTE DE SOFTWARE - CCT0711
 Auxiliar no relacionamento com os clientes.
Auxiliar na melhoria do processo de desenvolvimento do software, através 
de dados quantitativos e qualitativos, que possibilitam identificar as melhores 
práticas, de forma mais objetiva.
Avaliar os benefícios de novos métodos e ferramentas, através de 
evidências objetivas, pragmáticas.
Embasar eventuais solicitações de novas ferramentas e treinamento.
Avaliar o impacto na qualidade e na produtividade do produto ou do 
processo que eventuais variações podem causar.
Viabilizar a tomada de decisão de forma ágil (avaliação de escolhas, 
comparação de alternativas e monitoramento de melhorias).
Detectar tendências nos dados que mostrem a necessidade de mais testes
em determi-nadas áreas.
Identificar áreas de risco que necessitem de mais testes.
 Algumas perguntas que podem ser respondidas com o uso de métricas
de teste de software:
Quando parar de testar?
Quanto tempo falta para terminar o ciclo de testes?
Quanto já foi testado?
Os testes serão concluídos dentro do prazo previsto?
Quanto teste ainda tem que ser feito em determinada área?
Já foi testado o suficiente?
Qual o custo dos testes?
Qual o custo para corrigir os defeitos?
Quantos defeitos podemos esperar?
Quais os tipos de defeitos encontrados?
Quantos defeitos já foram corrigidos?
Quais as áreas do software que têm mais ou menos defeitos?
Quão estável é a funcionalidade que está sendo testada?
Qual a técnica de teste que é mais efetiva?
Estamos testando de forma difícil ou inteligente?
Temos um programa de testes robusto ou uma suíte de testes fraca?
Quais os defeitos prioritários?
Qual o testador que encontrou mais defeitos?
Quantos defeitos foram localizados por um determinado testador?
Quantos defeitos foram encontrados pelo usuário?
Normalmente, é difícil para a equipe de testes responder tais perguntas. 
Pode ser uma tarefa bastante desconfortável, pois muitas vezes os testadores 
não estão preparados para apresentar os dados solicitados, ou então os dados 
disponíveis não são adequados, até mesmo porque, em muitos casos, não 
estavam cientes da necessidade de fornecer tais informações.
Em função disso, o testador acaba deixando de lado as tarefas de teste para 
providenciar as informações solicitadas, e pode tomar bastante tempo, 
causando o atraso nas tarefas de teste, o que indica falta de planejamento e 
gerenciamento.
Esse tipo de problema pode ser resolvido com gerenciamento adequado 
das métricas de teste, ou seja, as métricas são uma parte importante do 
trabalho da equipe de teste
Para a elaboração de um plano de métricas, devem ser observadas as 
seguintes questões:
QUALIDADE E TESTE DE SOFTWARE - CCT0711
 Por que as métricas satisfazem o objetivo?
Que métricas serão coletadas? Como serão definidas? Como serão 
analisadas?
Quem fará a coleta? Quem fará a análise? Quem verá os resultados?
Como será feito? Quais as ferramentas, técnicas e práticas que serão 
usadas para 
 apoiar a coleta e a análise das métricas?
Quando e com que frequência as métricas serão coletadas e analisadas?
Onde os dados serão armazenados?
Alguns fatores são fundamentais, como o treinamento e o incentivo da equipe
que vai trabalhar com as métricas, e a seleção de um conjunto de métricas 
coerentes, que agregam valor ao processo. 
Além disso, é importante que na implantação do processo sejam utilizadas 
métricas mais simples, para que a equipe possa entender a importância das 
métricas antes de aumentar a quantidade de dados a serem coletados.
A coleta dos dados é um fator crítico do processo e deve começar o mais 
cedo possível, de preferência na fase de definição dos requisitos.
Na captura das métricas de teste, em muitos casos, os dados começam a ser 
capturados na fase de testes ou, então, na pior das hipóteses, quando o 
produto é liberado ao cliente. Essa decisão depende do projeto ou dos 
objetivos da organização
O uso de métricas de teste tem um custo, porém deve ser levado em 
consideração o fato de que o trabalho dos testadores se torna mais eficiente 
em função das métricas.
Essas questões motivam a gerência para o uso de métricas de teste, ou seja, 
têm um trabalho muito melhor por um custo menor. 
Um dos erros de entendimento é de que os testadores não produzem nada 
além de possíveis defeitos.
Realmente, eles não tomam nenhuma ação para corrigir os defeitos, porém tais
defeitos devem ser removidos durante ou como resultado do esforço de teste, 
senão o processo de testes será considerado falho. Os métodos e métricas 
utilizadas pelos testadores adicionam valor ao produto final.
1.3. Plano de garantia de software - Software Quality Assurance (SQA)
1.3.1. Objetivos
1.3.2. Elaboração
1.3.3. Abordagens
Segundo Pressman (2002), Software Quality Assurance é um padrão sistema-
tico e planejado de ações que são exigidas para garantir a qualidade de 
Software. 
Essas ações englobam:
1. Aplicação de Métodos Técnicos : ajudam o analista a conseguir uma es-
pecificação de elevada qualidade e o projetista a desenvolver um projeto de
elevada qualidade.
2. Realização de Revisões Técnicas Formais : para avaliar a qualidade da 
especificação e do projeto. 
QUALIDADE E TESTE DE SOFTWARE - CCT0711
3. Atividades de Teste de Software : para ajudar a garantir uma detecção de 
erros efetiva. 
4. Aplicação de Padrões e Procedimentos Formais no processo de enge-
nharia de software.
5. Processo de Controle de Mudanças : atividade que faz parte do gerencia-
mento de configuração de software.
6. Mecanismos de Medição : para ser possível rastrear a qualidade de 
software
7. Anotação e Manutenção de Registros : procedimentos para a coleta e 
disseminação de informações de garantia de qualidade de software.
Abordagens Formais para a Garantia do SGA
As principais abordagens são:
1. Prova de Corretitude ― se o modelo dos requisitos (especificação) e a lin-
guagem de programação podem ser representadas de uma maneira rigo-
rosa, deveria ser possível aplicar provas matemáticas de corretitude para 
demonstrar que o programa atende exatamente suas especificações.
2. Garantia Estatística de Qualidade ― implica coletar e categorizar infor-
mações sobre os defeitos do software; tentar descobrir a causa de cada 
defeito; isolar 20% das causas (princípio de Pareto); corrigir os problemas 
que causaram os defeitos 
3. Proesso Sala Limpa ( Cleanroom ) ― combina a prova de corretitude e a 
Garantia Estatística de Qualidade para melhorar a qualidade do produto 
software 
A ISO/IEC 9126, publicada em 1991, sendo uma das mais antigas da área de 
qualidade de software e já possui sua tradução para o Brasil, publicada em 
agosto de 1996 como NBR 13596 !!!!
Estas normas listam o conjunto de características que devem ser verificadas 
em um software para que ele seja considerado um “software de qualidade”. 
São seis (6) grandes grupos de características, cada um dividido em 
algumas subcaracterísticas, os quais são descritos abaixo:
QUALIDADE E TESTE DE SOFTWARE - CCT0711
Um grande desafio para qualquer programa de qualidade, considerado crítico,
é possibilitar que qualquer pessoa faça revisões no trabalho de profissionais 
experientes.
Os gerentes sempre queremos melhores profissionais para projetar o produto, 
mas geralmente o SQA não pode tê-los. 
É necessário concentrar esforços em métodos de SQA que permitam um 
desenvolvi-mento que possa ser revisado também por pessoas que não são 
desenvolvedores. 
Qual o papel do SQA?
Monitorar os métodos e os padrões que os engenheiros de software usam e 
verificar se eles estão usando apropriadamente seus conhecimentos.
É importante compreender que as pessoas podem ser experientes em 
SQA sem, no entanto, serem experientes em projetos de software.
QUALIDADE E TESTE DE SOFTWARE - CCT0711