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.

Launchpad

Tecnologia, negócios e desenvolvimento pessoal em uma só…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

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