top of page
Search

Quando Testar?


A pergunta quando testar é relacionada aos níveis de teste de software e o ciclo de vida do software.


Teste durante todo o ciclo de vida de desenvolvimento de software


Um modelo de ciclo de vida de desenvolvimento de software descreve os tipos de atividades realizadas em cada estágio do desenvolvimento de software e como as atividades se relacionam umas com as outras de forma lógica e cronológica.

Há vários modelos de ciclo de vida de desenvolvimento de software, cada modelo se relaciona com os testes de software de acordo com sua filosofia.


Exemplos de modelos de ciclo de vida de desenvolvimento de software


Desenvolvimento de Software e Teste de Software


Em qualquer modelo de ciclo de vida de desenvolvimento de software, existem características para que um bom teste possa ser aplicado:

  • Para cada atividade de desenvolvimento, existe uma atividade de teste correspondente.

  • Cada nível de teste tem objetivos de teste específicos.

  • A análise e a modelagem de teste para um determinado nível de teste começam durante a atividade de desenvolvimento correspondente.

  • Os responsáveis pelos testes participam de discussões para definir e refinar os requisitos e a modelagem, além de se envolver na revisão dos produtos de trabalho de testes, como: requisitos, modelagem, estórias de usuários, etc. quando as versões preliminares já estiverem disponíveis.


É importante, independente do modelo de ciclo de vida de software escolhido, aplicar o princípio do testar antes, assim aplicando os testes apropriados desde o início do desenvolvimento.


Níveis de Teste

Os níveis de teste são grupos de atividades de teste que são organizados e gerenciados juntos. Cada nível de teste é uma instância do processo de teste e executadas em relação ao software em um determinado nível de desenvolvimento, desde as unidades individuais ou componentes até os sistemas completos.


Existem basicamente 7 níveis de Teste


Os níveis de teste são caracterizados pelos seguintes atributos:

  • Objetivos específicos

  • Base de teste, referenciada para derivar casos de teste

  • Objeto de teste (ou seja, o que está sendo testado)

  • Defeitos e falhas típicas



  • Abordagens e responsabilidades específicas

Para cada nível de teste, é necessário um ambiente de teste adequado, que inclui também o ator adequado para o teste.

Testes Unitários

Tem como objetivo testar a menor parte do software, podendo ser o teste em uma classe ou métodos de uma classe (para programação orientada a objeto), no caso de CLP – Controladores Lógicos Programáveis – pode ser um bloco de função para a gestão de um inversor, motor, válvula bomba, ou uma função dentro de um bloco desse, como por exemplo a função de funcionamento em automático que é interno dentro desses blocos. Esse teste é feito pelo programador, tem a preferência por ser automatizado, porém, sabemos que quando falamos de programação para CLP, não temos muitas ferramentas para testes automáticos, então deve ser elaborado um plano de testes, no qual são utilizados os limites e combinações de sucesso e falha e ser seguido a risca, isso torna os testes mais lentos, porém será muito mais complicado e oneroso consertar um problema do mais baixo nível quando o software já estiver em uso.

Outra característica é que os testes feitos, devem estar sempre atualizados em caso de mudanças na regra de negócio ou de elemento que faz parte do sistema de controle.


Testes de Integração


O objetivo entre os testes de integração é validar a comunicação entre componentes de um sistema.

Por exemplo em CLP, pode ser a integração entre rotinas de espelho de entradas e saídas + rotinas de gestão de modos de operação + rotina gestão de uma válvula e suas respectivas estruturas de dados.

Este teste também é executado pelo programador, ele tem como alvo as funcionalidades descritas nos casos de uso + caso de teste, infelizmente para CLP, carecemos de ferramentas automatizadas para esses testes, sendo possível criar rotinas apenas com o objetivo de efetuar esse teste (rotinas de simulação de sinais + testes), neste caso deve-se criar uma rotina para cada cenário, previsto no plano de testes.

Os testes de integração encontram falhas entre a troca de dados entre os componentes testados e confirmam a correta execução das funcionalidades.

Esses testes são feitos antes dos sistemas serem concluídos.


Testes de Sistema


Os testes de sistema, testam o sistema em si, na forma de um usuário final, porém com a visão de um testador. Esse teste é feito por toda a equipe de desenvolvimento e a equipe de testes.

Os testes são feitos baseados na documentação do sistema, incluindo caso de uso, caso de testes, estórias de usuário, documento de requisitos do projeto, documentação de padrão de programação, e principalmente utilizando o cenário de testes que foi criado para esse fim específico.

Quando estamos utilizando uma abordagem ágil, os testes de sistema são efetuados após ter um incremento pronto.

São testes que levam em conta a interface e simulam situações reais de condições na qual se tem falhas ou não (tudo definido pelos cenários de testes contido nos planos de testes).

Bom em projetos de automação nós não contamos com equipes de teste, ao contrário do que ocorre com TI (Tecnologia de Informação), então como fazer os testes de sistema?

Como em automação industrial, nós não possuímos uma equipe de testes, é importante, que os desenvolvedores e gestores (supervisores ou gerentes de produto), tenham conhecimentos sobre testes de software, juntos irão criar a documentação de software e irão efetuar os testes de sistema.

O principal objetivo desse teste é buscar erros do tipo: Operações incorretas, formato de dados errados, animações, carregamento incorreto, situações de exceção, mensagem de falhas.


Testes de Aceitação


É um testes a nível de sistema, executado pelo usuário final do software (cliente) em um número diminuto, o qual vai terminar se aceita ou não o sistema, incluindo funcionalidades, recuperação de falhas, mensagens, design geral, segurança, desempenho, etc.

Ao final dos testes de aceitação deve haver um feedback para eventuais melhorias conforme a experiencia do usuário com o sistema.

É um teste que pode ser feito dentro da integradora (desenvolvedora do sistema) ou já no cliente, conforme diretivas de contrato.

Outro detalhe deste nível de teste, é que ele é feito utilizando não só o roteiro com cenário de testes criado e aprovado entre a integradora e o cliente, mas também levando em consideração a documentação e cenários descritos nas boas práticas de comissionamento existentes no cliente, sendo que essas boas práticas interferem diretamente na criação dos cenários da documentação de testes de software.


Testes Alfa


Mais um teste a nível de sistema, feito pelo usuário com o equipamento já no cliente, com as pessoas participantes do projeto, esse teste já não é orientado pela equipe de testes e roteiro de comissionamento, onde o foco será receber o feedback para a criação e planejamento de melhorias, a equipe de desenvolvimento deve estar em contato direto e respondendo de forma rápida aos problemas encontrados.


Testes Beta


Os testes betas são realizados com um número maior de pessoas, sendo que o time de desenvolvimento agora deixa de coletar os erros e os usuários reportam os problemas para serem corrigidos posteriormente me conjuntos de correções.


Testes de Regressão

São realizados a qualquer momento do desenvolvimento.

Uma vez corrigido um anomalia encontrada, são executados testes de regressão, ou seja, verificados todos os componentes que são relacionados de alguma forma com o elemento que sofreu a correção dentro do sistema.

Nesse momento a automação industrial sofre por não possuir ferramentas de testes automáticos que iriam trazer uma grande ganho de tempo nos testes.

E como os testes de software se relacionam com o comissionamento de plantas ou linhas?


Bom as boas práticas de comissionamento, geram documentações importantes para serem utilizadas na criação dos planos de testes a nível de sistema e aceitação (fases de engenharia e construção), os testes de sistema também se relacionam com as atividades de verificação da fase de engenharia do comissionamento, além de logicamente os testes de aceitação, alfa e beta, integrarem a fase de aceitação do comissionamento, abaixo uma imagem para entender melhor.


Bom, a pergunta quando testar está respondia, nos vemos no próximo artigo sobre testes de software.

Até mais!


Bibliografia:


Foundation Level Syllabus - Versão 2018br - Brazilian Software Testing Qualifications Board - BSTQB

www.pmkb.com.br

 
 
 

1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Eduardo Maciel
Eduardo Maciel
Dec 10, 2024

Etapa fundamental que por muitas vezes, partes dela, são negligenciadas. Trazendo grandes problemas para operação dos sistemas. Ótimo artigo!

Like

Sobre Nos

SOCIALS 

Participe do nosso Grupo:

Telegram e  WhatsApp.
 

SUBSCRIBE 

PLC com Engenharia de Sofware nasceu de um grupo de WhatsApp, que teve suas origens em 2018 em outro grupo, e criado oficialmente em 2020. Depois de solicitação seus participantes e outras pessoas que gostam do trabalho, vem a criação desse Blog para trazer alguns artigos, apostilas e tamém sempre que possível notícias.

Se inscreva para receber notificações de novas postagens!

Obrigado por sua Inscrição

© 2035 by FEEDs & GRIDs. Powered and secured by Wix

bottom of page