Você está na página 1de 34

Universidade Técnica de Angola

UTANGA
Departamento de Tecnologias de Informação e Comunicação
(DEITIC)

DISCIPLINA: Qualidade dos Sistemas de Informação

TEMA: Aspectos Teóricos Sobre Testes de Software

27/11/2023 Docente. MSc, Umbelina Daniel


Conceitos de Testes de Software
 É praticamente impossível garantir que um determinado software

funciona correctamente e de acordo com o expectável;

 Espera-se que os softwares possuam defeitos/erros pelo facto destes

possuírem um número considerável de estados, fórmulas e algorítmos

complexos.

 Num cenário perfeito, toda combinação possível de um software deveria

ser testada, porém, existe na maior parte das vezes uma quantidade

impraticável de possibilidades.

 Sendo assim, a qualidade dos testes está relacionada com à qualidade dos

desenvolvedores e testes em
27/11/2023 “apanhar”
Docente. MSc, Umbelinaas combinações relevantes.
Daniel
Conceitos de Testes de Software
Os erros ou defeitos dos softwares são causados por falhas em diversas etapas do
processo de desenvolvimento de um software:
 Na Análise e Especificação dos Requisitos:
 Erros e incosistencia da especificação;
 Requisitos ambíguos( sentido duvidoso) ou impossíveis de serem
implementados devido a limitações de tecnologia ou de hardware.
 Na Implementação:
 Erro na codificação de um algorítmo;
 Falha na utilização de um tipo de dados.
 De um modo geral, um erro/defeito é o resultado de uma ou mais falhas em
qualquer aspecto de todas etapas do processo de desenvolvimento do
software
27/11/2023 Docente. MSc, Umbelina Daniel
Conceitos de Testes de Software
Em que casos consideramos que estamos em presença de um
erro/falha no software?
 O software não faz algo que a especificação diz que devia fazer;

 O software faz algo que a especificação diz para não fazer;

 O software faz algo que que a especificação não menciona;

 O software não faz algo que a especificação não menciona mas


deveria (fazer ou mencionar)?

 O software é difícil de se entender o seu funcionamento, complexo


na sua utilização, lento, etc.
27/11/2023 Docente. MSc, Umbelina Daniel
Conceitos de Testes de Software

E no meio disso tudo como ultrapassar estes


erros?
Com Teste de/no Software? Pelo menos é o que
se acha.

27/11/2023 Docente. MSc, Umbelina Daniel


Conceitos de Testes de Software
Entende-se como Teste de Software a investigação do software
ou parte do mesmo a fim de fornecer informações sobre a sua
qualidade em relação ao contexto em que o mesmo deve operar.

Ou ainda, como sendo o processo de execução de um software ou


parte dele com o objectivo de se determinar se o mesmo está de
acordo com a sua especificação no ambiente pretendido.

Podemos então dizer que Testar = Executar/usar o software.

27/11/2023 Docente. MSc, Umbelina Daniel


Conceitos de Testes de Software
Com base nas definições anteriores, conseguimos identificar aspectos bastante
relevantes quando nos referimos à testes de software, nomeadamente, Especificação
[de Requisitos do Software], comportamento esperado e ambiente definido.

▪ A especificação é crucial porque define o comportamento “correcto/esperado”,


permitindo assim identificar facilmente um comportamento “incorrecto/inesperado”.
Um comportamento incorrecto/inesperado é considerado automaticamente uma
falha desde que o mesmo ocorra igualmente no ambiente esperado.

▪ Podemos por padrão aceitar que a especificação representa (ou pelo menos deveria)
as expectativas do cliente.

27/11/2023 Docente. MSc, Umbelina Daniel


Conceitos de Testes de Software
Mais Conceitos Sobre Testes de Software:
▪ Caso de Teste
Documentação que especifica valores de entrada, valores de saída ou
comportamento esperado e igualmente descreve as pré-condições para
execução do teste.
Conjunto de dados de entrada de testes, condições de execução, e resultados
esperados desenhados para um objectivo específico. IEEE Std 610 (1990).
Sequência de um ou mais subtestes executados como uma sequência uma vez
que o resultado e o estado final de um subteste é o input ou estado iniciar do
próximo

27/11/2023 Docente. MSc, Umbelina Daniel


A maior parte dos casos de testes escritos pelos Analistas de Testes são
rejeitados pelos revisores por conta da má qualidade. Abaixo as características
que um bom caso de teste deve possuir:

 Deve ser preciso e claro no que pretende testar;

 Não inclui passos desnecessários;

 Deve ser reutilizável;

 Deve ser rastreável com os requisitos que testa;

 Deve estar em conformidade com a regulamentação;

 Deve ser independente e capaz de ser executado sem a dependência de


outro caso de teste;

 Deve ser simples e claro ao ponto de qualquer outro analista de testes


entender à primeira

27/11/2023 Docente. MSc, Umbelina Daniel


Defect: Entende-se por Defect (Defeito em Português), qualquer
falha que faça com que o software execute uma funcionalidade
ou que o resultado seja diferente do esperado. Os defeitos podem
ter origem na especificação do requisito, no desenho da
funcionalidade, no código implementado, no caso/script de teste.
Os defect podem ser classificados em:
 Bug (Erros),
 Failure (Falha)
 Fault (Falta).

27/11/2023 Docente. MSc, Umbelina Daniel


▪Bug: É o resultado de erro no código implementado no software.

Normalmente encontrado em ambiente não produtivo antes do

software ser entregue ao cliente.

É igualmente considerado como sendo um erro de programação

que faz com que o programa trabalhe de forma incorrecta,

produza resultados incorrectos ou trava (crash).

27/11/2023 Docente. MSc, Umbelina Daniel


Failure: É a incapacidade do software ou
componente de software de realizar funções
definidas dentro de um contexto específico.
Quando um defect chega ao utilizador do cliente
final é considerado de falha.

27/11/2023 Docente. MSc, Umbelina Daniel


Falta: Processo, passo ou definição de dados no software que
causa um comportamento inexperado ou diferente do pretendido.
Uma falta é também considerada como sendo uma anomalia no
software que faça com o mesmo apresente um comportamento
incorrecto, ou não de acordo com a especificação.
Até hoje, a indústria de software ainda não é consensual em
relação as definições de falta e na maior parte dos casos não são
aceites como sendo um tipo de defeito específico.

27/11/2023 Docente. MSc, Umbelina Daniel


Não obstante todos os esforços para se garantir a conformidade e qualidade de

um software através de testes sobre o mesmo, existem ainda assim razões que

fazem com os mesmos não estejam 100% isentos de erros, das quais:

 Execução por parte do usuário de uma funcionalidade não testada;

 Diferente ordens de execução de sequências;

 Combinações não testadas de dados de entrada;

 Software nunca testado no ambiente final do utilizador ou do servidor;

 Ambiente de testes e de produção com condições, requisitos e

configurações diferentes.

27/11/2023 Docente. MSc, Umbelina Daniel


“Dito isto, fica a seguinte questão no ar: Testa-se
um software para encontrar erros ou para
garantir que o mesmo não tem erros?”

27/11/2023 Docente. MSc, Umbelina Daniel


Teste de Software vs Qualidade de
Software

27/11/2023 Docente. MSc, Umbelina Daniel


Entretanto, não obstante a importância dos testes de software, o mesmo é simplesmente
uma parcela da área de qualidade de software, que vai muito mais além de testar
software ou partes do mesmo, e que varia de software para software, e na qual são
destacados outros atributos para além da ausência de erros, nomeadamente:
 Funcionalidade;
 Confiabilidade;
 Usabilidade;
 Eficiência;
 Manutenibilidade;
 Portabilidade

27/11/2023 Docente. MSc, Umbelina Daniel


2. 2. Qualidade de Software vs Testes
de Software
 Qualidade de Software: É uma abordagem sistemática e
planeada para identificar, definir e modificar um conjunto de
processos que pode ajudar a obter um produto de software sem
erros.

 Nota que estes processos já se encontram pré-estabelecidos, a


implementação destes processos e tornando-os uma realidade
para entregar um produto de software é o que significa teste de
software.

27/11/2023 Docente. MSc, Umbelina Daniel


Enquanto que a qualidade de software centra-se na criação e

implementação de métodos e procedimentos para melhorar todo

processo de desenvolvimento do software; os testes de software

centram-se na verificação e validação do produto de software

para descobrir bugs e localizar defeitos.

Existe uma diferença entre qualidade de software e teste de

software que deve ser claramente entendida. Executar casos de

teste e identificar defeitos não significa que existe qualidade.

Significa apenas que os testes estão a ser feitos e estão a ser

realizadas tentativas para se descobrirem e corrigirem tantos erros


27/11/2023 Docente. MSc, Umbelina Daniel
quanto possíveis.
Pode haver uma sobreposição entre actividades de qualidade de

software e actividades relacionadas com testes de software,

principalmente em projectos de pequena escala ou projectos com

modelo ágil. Os testes podem fornecer informações importantes

relacionadas à qualidade do produto, mas a qualidade é a que usa

essas informações para melhorar os processos relacionados com a

qualidade do software em desenvolvimento.

Em alguns projectos críticos ou de grande dimensão, podem ser

contratadas uma ou duas empresas externas para cuidarem dos

processos de qualidade e dos testes de software.


27/11/2023 Docente. MSc, Umbelina Daniel
De um modo conclusivo, identificamos os seguintes aspectos que permitem

diferenciar qualidade de software de testes e software:

27/11/2023 Docente. MSc, Umbelina Daniel


 Qualidade de software foca-se no processo, enquanto que os testes de

software focam-se no resultado;

 Existem fases em que os testes são mais importante que a qualidade (Testes

e Instalação/Entrega);

 Em situações onde se corre contra o tempo e o custo, o resultado é mais

importante que o processo;

 Em projectos de grande dimensão e complexidade, tanto a qualidade como

os testes são tão importantes;

 Sendo o objectivo final a entrega de um produto sem erros e que atenda os

requisitos funcionais e não-funcionais definidos, devem ser evidados

esforços para melhorar a qualidade através da aprendizagem e dos

resultados provenientes dosDocente.


27/11/2023 testes.MSc, Umbelina Daniel
Verificação e Validação de Software

27/11/2023 Docente. MSc, Umbelina Daniel


Os Testes de Software estão igualmente relacionados com o

conceito de Verificação e Validação que acaba por incluir o

processo de utilizar o software (ou parte dele) para encontrar

defeitos.

▪ A Verificação e Validação são procedimentos independentes de

testes de software usados para verificar se um produto de

software atende aos requisitos e especificações definidas e se

cumpre sua finalidade. ▪ Estes procedimentos servem para

assegurar que o software funciona de acordo com o que foi


27/11/2023 Docente. MSc, Umbelina Daniel
especificado.
Verificação: Validação
▪ Representa técnicas estáticas de testes;  Representa técnicas dinámicas de testes;
▪ Certifica que a documenção do software está  Certifica que o software funciona e opera
em conformidade com os padrões da empresa de acordo com o planeado na fase de
(é uma técnica de análise estática); requisitos através da execução de casos de
▪ Responde a questão: O software foi testes e mensurando o resultado dos
desenvolvido de acordo com a especificação? mesmos;

 Responde a questão: Desenvolvemos o


software ideal para o propósito esperado e
resolve o problema que o originou?

27/11/2023 Docente. MSc, Umbelina Daniel


Técnicas de Verificação: Técnicas de Validação:

▪ Revisões de viabilidade; ▪ Testes Unitários;


▪ Revisões de requisitos; ▪ Testes de Integração;
▪ Revisões Técnicas; ▪ Testes de Sistema;
▪ Revisões Formais; ▪ ▪ Testes de Aceitação.
Revisões em Pares;
▪ Code Review.

27/11/2023 Docente. MSc, Umbelina Daniel


Investimento em Testes de Software

27/11/2023 Docente. MSc, Umbelina Daniel


A maioria dos Gestores de Projectos encaram os testes como sendo mal-

necessário que devem ocorrer pelo menos apenas no final do projecto.

 Custa dinheiro;

 Leva muito tempo;

 Não ajuda no desenvolvimento do projecto;

 Cria hostilidade entre a equipa de testes e outras equipas (principalmente as

de desenvolvimento e de analistas);

 Portanto, dão o mínimo de tempo e atenção possível.

 Porém, gestores de projectos inteligentes investem nos testes de software.

Porque?

27/11/2023 Docente. MSc, Umbelina Daniel


Custos da Qualidade

▪ Custo de Conformidade

Todos os custos associados ao planeamento e


execução dos testes acontecem apenas uma vez.

27/11/2023 Docente. MSc, Umbelina Daniel


Custos de Não-Conformidade
 Custos das falhas internas: (antes da entrega ao cliente);
 Custos da filtragem, report e testes de regressão (este útlimo para garantir que todos os erros
foram corrigidos).
 Custos das falhas externas: (Depois da entrega ao cliente).
 Se os erros não são detectados à tempo e chegam até ao cliente, o resultado dos custos será
muito maior ainda, nomeadamente:
 custos de chamadas de suporte,
 correcção dos erros,
 reteste e novas entregas.
 Cliente insatisfeito

27/11/2023 Docente. MSc, Umbelina Daniel


STLC - Ciclo de Vida de Testes de Software

Entende-se como Ciclo de Vida de Testes de Software, o


processo de testagem de um software de uma forma
sistemática e bem planeada.
Não existe uma exactidão das fases deste ciclo de vida,
diferentes organizações definem diferentes fases.
Entretanto, de um modo geral, as fases abaixo são as
mais conhecidas:

27/11/2023 Docente. MSc, Umbelina Daniel


 Análise dos Requisitos;
 Planeamento dos Testes;
 Criação e Verificação dos [Casos] de Testes;
 Execução dos [Casos] de Testes e Reporting
dos Bugs;
 Testes Finais e Encerramento do Ciclo de
Testes

27/11/2023 Docente. MSc, Umbelina Daniel


Cada fase do Ciclo de Vida de Desenvolvimento de Software pode ser
mapeada nas fases do Ciclo de Vida de Testes de Software, conforme tabela
abaixo:

SDLC STLC
▪ Análise de Requisitos; ▪ Anáse de Requisitos;
▪ Desenho; ▪ Planeamento de Testes;
Codificação/Implementação; ▪ Criação e Verificação dos
▪ Testes; Casos de Testes;
▪ Deployment. ▪ Execução dos Testes e
Reporting de Defects;
▪ Testes Finais e
Encerramento do Ciclo.

27/11/2023 Docente. MSc, Umbelina Daniel


FIM

27/11/2023 Docente. MSc, Umbelina Daniel

Você também pode gostar