testes de software

BLOG

Testes de Software

9 de March de 2022

Depois de muitas horas de trabalho, centenas de códigos, horas de builds e muito café, finalmente finalizamos o processo e lançamos para a esteira de compilação e deploy, pois utilizamos metodologia ágil para agilizar e dar eficácia ao processo.

Maravilha! Temos nossa aplicação online e funcionando a todo vapor. Para ter certeza, temos que fazer alguns testes rápidos nos campos, requisições e envio de formulários.

Tudo seguindo muito bem!

Pouco tempo depois, após uma daily, identificamos a necessidade de criar uma feature, adicionando novas funcionalidades.

E lá se vão mais horas de código e café para criar e implantar a feature.

Infelizmente tivemos alguns erros e bugs, mas nada que fosse muito complicado de resolver. Seguimos compilando, testando e fazendo o deploy com testes manuais nos pontos novos.

Com o tempo, nossa aplicação foi crescendo cada vez mais, com novas features, novas funcionalidades, novos módulos. Porém, a quantidade de bugs e de erros aumentam, atrasando ainda mais nosso processo, atrapalhando os prazos de entregas. Conclusão: cliente insatisfeito, horas extras e mais café.

Isso é uma realidade em grande parte do mercado, pois a cultura de testes de software não está presente em muitos projetos. Ainda mais após um período da busca por mais produtividade, porém, com a qualidade foi caindo.

Hoje, com a necessidade de se ter entregas maiores, ágeis e com maior qualidade, a busca por testes de software e testes automatizados vem ganhando seu espaço a cada dia.

 

Quando devo usar o teste de software?

O ideal é iniciar o projeto montando o roteiro de testes, definindo nome de variáveis e estrutura do sistema, tendo assim um “norte” para criação da aplicação, em cima do roteiro dos testes. Se você utilizar algum sistema como o cypress, ele segue com o roteiro de testes de forma automática, trazendo um relatório completo com as informações necessárias, inclusive pontos onde estão com erros e bugs, facilitando na alteração/ manutenção.

 

Caso você já possua uma aplicação e quer criar um roteiro de testes, terá um pouco mais de trabalho para criar em cima da aplicação, porém não é impossível. As horas usadas para criar o roteiro, serão horas a menos na entrega e manutenção.

 

Ciclo de desenvolvimento de testes de software.

 

Quais são os tipos de testes de software?

Temos alguns tipos de testes que podem ser aplicados ao seu sistema:

  • Teste de caixa branca – Conhecido como teste orientado a lógica ou estrutural. Utiliza-se o código fonte para avaliar seus componentes, podendo ser analisados itens como: fluxo de dados, condições, ciclos, entre outros.
  • Teste de caixa preta – Diferente do teste anterior, este analisa aspectos externos, como requisitos funcionais do sistema. Conhecida também como técnica funcional, analisa as entradas de dados e as saídas, de forma que sejam atendidas as expectativas.
  • Teste de caixa cinza – Podendo utilizar a engenharia reversa, o teste de caixa cinza é a junção dos testes anteriores, avaliando aspectos internos e externos.
  • Teste de regressão – Focado em validar versões da aplicação, esse consiste em efetuar testes em funcionalidades modificadas e novas, evitando que erros corrigidos anteriormente voltem a aparecer.
  • Teste de unidade – Com foco em partes menores do sistema, são feitos testes em pequenas unidades de forma isolada, garantindo a sua funcionalidade.
  • Teste de integração – Com os testes de unidades efetuados, o teste de integração serve para analisar e validar todas as unidades validadas anteriormente de forma unificada.
  • Teste de carga – Teste muito importante, pois avalia os limites do uso do sistema, avaliando a quantidade suportada de volume de tráfego, informações, conexões, entre outros.
  • Teste de usabilidade – é uma técnica de caixa-preta. O objetivo é observar usuários reais usando o produto para descobrir problemas e pontos de melhorias.
  • Teste de stress – é realizado para submeter o software a situações extremas. Basicamente, o teste de stress baseia-se em testar os limites do software e avaliar seu comportamento

 

Principais softwares disponíveis no mercado para auxiliar nos testes

  • Selenium;
    O Selenium é tido como a ferramenta de automação de testes mais em evidência do mercado. Open source, é usada principalmente para aplicações web. Tem como um de seus atrativos o funcionamento em browsers como Firefox, Chrome e Internet Explorer, além de headless browsers.
  • Robotium:
    Um framework open source para o sistema Android, pode ser usado com aplicações híbridas ou nativas e conta com APIs simples.
  • Telerik Test Studio:
    De licença comercial (pago), oferece teste funcional de UI, de carregamento, performance e mobile. Conta com testes que rodam em browser variados, grava e reproduz, além de ter compatibilidade com aplicativos de automação como Silverlight e Ruby.
  • AutoIt:
    O AutoIt é uma linguagem de programação script, destinada principalmente a automatizar tarefas no Windows.
  • Cypress:
    Um novo framework de testes também de código de instalação simples, com os testes podendo ser escritos de forma fácil e rápida e podendo ser observado em tempo real. Scripts em JavaScript.

 

Padrão IEEE para Documentação de Teste de Software

Também conhecido como o Padrão 829 para Documentação de Testes de Software, é um conjunto de documentos de teste básicos que estão associados aos aspectos dinâmicos do teste de software (ou seja, a execução de procedimentos e código) é descrito. A finalidade, o esboço e o conteúdo de cada documento básico são definidos. Embora os documentos descritos na norma se concentrem em testes dinâmicos, vários deles podem ser aplicáveis ​​a outras atividades de teste. A documentação em mídia eletrônica e em papel é coberta. A norma não exige metodologias de teste, abordagens, técnicas, instalações ou ferramentas específicas e não discrimina a documentação de seu uso. Também não implica ou impõe metodologias específicas para controle de documentação, gerenciamento de configuração ou garantia de qualidade.

 

 

Padrão IEEE

 

Quais são as vantagens?

  • Evitar o trabalho repetitivo (stress e performance);
  • Ter um feedback mais rápido;
  • Melhorar a performance de testes de regressão;
  • Ganho de tempo;
  • Produtividade maior e com qualidade.

Conclusão

Cada vez que for necessário efetuar uma alteração, criação de nova funcionalidade ou até mesmo remoção de algum módulo, você terá sempre um retorno com as informações necessárias, indicando as necessidades, erros e afins, aumentando a qualidade do software, a agilidade na entrega de novas atualizações e menor indicie de erros e bugs em produção, o que irá resultar em equipe e cliente satisfeitos.

Compartilhe

Subscribe
Notify of
guest
0 Comentários
Mais velho
Novos Mais votados
Inline Feedbacks
View all comments

Subscribe to our Newsletter

Receive tips on technology, innovation, and other inspirations.

0
Would love your thoughts, please comment.x