Você está na página 1de 11

Teste de sistemas

Introdução a Teste de Sistemas

Professor Alexandre Amaral


Formado em Tecnologia em processamento de Dados - Faculdade Paranaense FACCAR
Especialização em Engenharia de software - Unifil
Introdução

Você sabe o que é um teste de software?

Por mais que se planeje a construção de um software, erros ou falhas podem ocorrer. Pode ser um bug num formulário, uma
falha que feche um programa, um erro que impossibilite você salvar um arquivo ou ainda um requisito não atendido em uma regra
do sistema. Quem já passou por esse tipo de situação sabe como é chato quando ficamos na mão por culpa de um programa
com falhas.

O teste de software serve justamente para tentar encontrar possíveis erros ou falhas que um programa recém-desenvolvido
possa apresentar, de modo a conseguir corrigi-lo antes que seja lançado no mercado, ficando disponível para uso do público.

O teste de software geralmente é a última etapa na construção de um programa, seja ele no fim de cada entrega ou na sua
conclusão, com o objetivo de checar o seu nível de qualidade, validar critérios e comportamentos. Os defeitos que um teste busca
identificar incluem erro de compatibilidade, de algum algoritmo, de requisitos que não podem ser complementados, limitação de
hardware etc. A lista é grande e aumenta com o tamanho do programa.
Introdução
Qual a importância dos testes de software na qualidade do sistema?
De acordo com a International Software Testing Qualifications Board (ISTQB), um selo internacional de qualidade para testadores de software,
realizar estas validações é de suma importância pelos seguintes motivos:

■ Permite identificar erros durante as etapas de desenvolvimento;


■ Garante a confiança do usuário final e sua satisfação ao utilizar o software;
■ Permite assegurar a qualidade do produto e seu funcionamento correto;
■ É fundamental para manter a reputação do negócio no setor.

Entre seus objetivos específicos estão:

■ Verificar a integração adequada dos componentes;


■ Analisar se todos os requisitos foram implementados corretamente;
■ Garantir que os defeitos encontrados sejam corrigidos antes da implantação do software;
■ Reduzir custos de manutenção corretiva e retrabalho.

Considerando todos estes itens, podemos afirmar que os testes de software visam encontrar erros no sistema para que, posteriormente, eles
sejam corrigidos e a qualidade do mesmo seja melhorada. Executar estas validações garante que todos estes pilares sejam atendidos e que a
empresa de tecnologia mantenha um alto nível no mercado.
Teste de sistemas

Conceitos Básicos
Alguns conceitos que envolvem testes de software devem ser entendidos. Vamos conhecer a diferença entre Defeitos, Erros e Falhas.
Iremos usar a terminologia padrão para Engenharia de Software do IEEE – Institute of Electrical and Electronics Engineers.

Defeito é um ato inconsistente cometido por um indivíduo ao tentar entender uma determinada informação, resolver um problema ou
utilizar um método ou uma ferramenta. Por exemplo, uma instrução ou comando incorreto ou impreciso.

Erro é uma manifestação concreta de um defeito num artefato de software. Diferença entre o valor obtido e o valor esperado, ou seja,
qualquer estado intermediário incorreto ou resultado inesperado na execução de um programa constitui um erro.

Falha é o comportamento operacional do software diferente do esperado pelo usuário. Uma falha pode ter sido causada por diversos
erros e alguns erros podem nunca causar uma falha.
Por tanto, ERRO pode ser cometido por uma pessoa(desenvolvimento), gerando DEFEITO no software (inconsistencia com as regras),
que pode causar uma FALHA na operação (Bug, mal funcionamento ou comportamento inesperado).
Teste de sistemas

Fases de testes na produção de um software


Existem, majoritariamente, três momentos principais em que o software deverá ser submetido a um teste: durante o
desenvolvimento, após o desenvolvimento (que recebe o nome de Alfa) e na homologação, ou seja, no momento em que o
software será ativado para o uso (esse se chama Beta).

Depois de uma definição inicial do que será aquele software, inicia-se o seu momento de desenvolvimento e cada fase
dessa parte precisa passar por diversos testes. Quando pronto, os testes realizados garantirão a funcionalidade do todo e, na
homologação, os testes definirão se o software realmente funciona no dia a dia.

Defeitos fazem parte do universo físico e são


causados por pessoas e podem ocasionar a manifestação
de erros em um produto, ou seja, a construção de um
software de forma diferente ao que foi especificado. Os
erros podem gerar falhas, que são comportamentos
inesperados em um software que afetam diretamente o
usuário final da aplicação e pode inviabilizar a utilização de
um software.
Teste de sistemas

Tipos de teste de software?

Existem diferentes tipos de testes que podem ser aplicados num software para identificar suas falhas, sendo as principais:

Teste da caixa branca – utiliza o aspecto interno do programa/sistema, o código fonte, para avaliar seus componentes. Ele também
é conhecido como teste orientado à lógica ou estrutural. Podem ser analisados itens como: fluxo dos dados, condição, ciclos etc. Na
hora de implementá-lo é preciso verificar a criticidade, a complexidade, a estrutura e o nível de qualidade que se pretende obter do
programa, envolvendo confiança e segurança;

Teste da caixa preta – diferente do teste anterior, que prioriza os aspectos internos, o teste da caixa preta verifica aspectos
externos. Os requisitos funcionais do sistema são avaliados. Não se observa o modo de funcionamento, sua operação, tendo como
foco as funções que deverão ser desempenhadas pelo programa. Desse modo, avalia-se se um grupo de entrada de dados resultou
nas saídas pretendidas, levando-se em consideração a especificação do programa. Ou seja, o que se esperava que o software
deveria fazer. É conhecido também como técnica funcional;

Teste da caixa cinza – esse tipo de teste une os dois anteriores, por isso o termo “cinza”. Avalia tanto os aspectos internos quanto
os externos, de entrada e saída. Pode utilizar-se de engenharia reversa;
Teste de sistemas
continuação…
Teste de regressão – esse consiste em realizar testes a cada versão de um software, onde se modificam-se funcionalidades. Desse modo,
evita-se que erros que foram corrigidos antes no software antes voltem a aparecer na hora de se incrementar algo novo a ele.

Teste de unidade – testa-se unidades menores de um software, de modo isolado, para ver se todas funcionam adequadamente;

Teste de integração – depois das unidades testadas, realiza-se uma verificação se elas funcionam juntas, integradas. Pode ocorrer delas
apresentarem incompatibilidades ao funcionarem em conjunto, mesmo após terem sido aprovadas no teste de unidade;

Teste de carga – esse teste é feito para avaliar os limites de uso do software, o quanto ele suporta em volume de informações, tráfego etc.
sem que apresente erros;

Teste de usabilidade – esse teste é feito por um pequeno grupo de usuários para ver se o software satisfaz as suas necessidades. Nesse
teste analisa-se como o usuário usa o sistema, verificando onde ele tem mais dificuldade. Ouve-se também suas impressões, porém é preciso
confrontá-las com as observações do avaliador;

Teste de stress – aqui leva-se o software ao seu limite de potência e funcionamento, para mais ou para menos, de modo a avaliar em qual
ponto ele deixa de funcionar adequadamente. Isso é feito para verificar se suas especificações máximas ou mínimas de uso estão corretas.
ware, de modo isolado, para ver se todas funcionam adequadamente;
Teste de sistemas

Manuais X Automatizados

Esses testes de software podem ser realizados de duas maneiras: de forma manual e automatizada. Na forma manual,
algum profissional da área realizará esse teste pessoalmente, executando todos os passos. Já o automatizado contará com a
ajuda de um outro software para fazer esses testes progressivamente.

Quando a escolha é feita para testes manuais, vale ressaltar que o processo é sujeito a falhas humanas e acréscimo de
mais uma etapa do processo de desenvolvimento.

Quando optamos pela automação, podemos ganhar tempo rodando testes em horários alternativos e, com processos
bem definidos e incrementais, a garantia de entregas com maior qualidade e testes escritos sempre no início do processo de
desenvolvimento.
Artigos interessantes

Segue algumas matérias interessantes sobre o tema Testes de software:

https://blog.onedaytesting.com.br/teste-de-software/

https://www.objective.com.br/insights/testes-de-software/

https://testesw.wordpress.com/conceitos-basicos/

https://www.objective.com.br/insights/test-driven-development/

Você também pode gostar