Launchpad
Published in

Launchpad

Por que eu deveria testar o meu sistema?

Durante o desenvolvimento de software é regra que exista uma equipe trabalhando em conjunto em diversos módulos, algumas vezes criados a partir de diferentes tecnologias e com distanciamento de outras partes. É fácil imaginar os problemas que podem surgir durante este processo, como trabalho duplicado, desencontros de execução e incompatibilidades entres as diversas frentes de desenvolvimento. Buscando resolver alguns destes problemas é que foram inventadas metodologias para o teste de software.

Testes de software tornam possível para qualquer pessoa que faz parte da equipe de desenvolvimento e executa os mesmos testes, garantir que suas alterações não vão atrapalhar o bom funcionamento do programa, que os módulos deste sistema continuam funcionando como deveriam e que novas funções se integrem perfeitamente a todo o trabalho já executado.

Processo simplificado de desenvolvimento/teste de software

Tipos de teste

É importante notar que existem outros tipos de testes que podem ser feitos durante a execução de um projeto, dentre eles podemos citar os testes de usabilidade (quão fácil é utilizar este sistema), acessibilidade, entre outros. No entanto, alguns testes não fazem parte da rotina de um programador, uma vez que devem ser executados por agentes externos e seus resultados antes de serem aplicados no código devem ser analisados por profissionais de diferentes perfis. A seguir estão listados os testes que fazem parte do dia a dia de um programa em desenvolvimento, e que devem ser executados exaustivamente pelos programadores.

Testes Unitários: Estes testes são executados em pequenas partes do código para garantir que funções especificas e não dependentes (que não utilizam outras partes do programa) funcionam corretamente. Este tipo de teste em geral é utilizado para funções simples, como junção de dados ou cálculos, uma vez que as partes testadas não dependem de outras partes do software.

Testes de Integração: São testes que visam testar o funcionamento entre os diversos módulos de um programa, buscando determinar se a comunicação e a troca de dados está funcionando corretamente. Estes testes em geral se concentram em módulos específicos para garantir que suas dependências retornem os valores desejados, sendo uma parte muito importante a garantia de que o comportamento seja o esperado mesmo durante erros.

Testes de aceitação: É possível que mesmo após a execução dos testes anteriores, um software que passe em todos os casos de teste contenha falhas não previstas durante sua programação, e por isso se faz necessário a execução dos testes de aceitação. Estes testes são feitos em geral pelos usuários alvo do sistema, que testam o seu uso em situações reais para que em caso de falhas sejam feitas alterações antes do inicio do seu uso extensivo.

Além disso é possível que testes de software sejam executados de diferentes maneiras, dependendo do ambiente em que os mesmos estão inseridos. Uma vez que testes unitários e de integração possuem conjuntos de entradas e saídas já esperadas, é possível que os mesmos sejam automatizados através de outros programas, que permitem a execução do sistema a ser testado com as entradas definidas pelo desenvolvedor, para em seguida analisar as saídas produzidas de acordo com as regras pré-estabelecidas.

Entendendo o que são testes de software e qual sua função em um projeto, se torna fácil enxergar como estes são importantes durante os ciclos de desenvolvimento, tornando-o mais ágil e seguro, ao contornar possíveis falhas de comunicação e execução dentro de uma equipe de desenvolvimento. Testes de software garantem a compatibilidade entre as mudanças nos diversos ciclos e ajudam a garantir o melhor resultado possível para um projeto, inserindo ativamente tanto os desenvolvedores quanto o usuário no processo de melhoria de um sistema.

Este texto é uma breve introdução à o que são testes e como eles podem ajudar a executar a criação de um software. Na parte 2 entraremos em detalhes sobre os tipos de execução destes testes (automatizados ou não, testes white, gray e black-box), com exemplos reais encontrados durante o desenvolvimento de novas aplicações.

--

--

Tecnologia, negócios e desenvolvimento pessoal em uma só plataforma.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store