Algumas vezes, desenvolver um software personalizado é inevitável. Isso ocorre quando sua tarefa é criar algo que ninguém tenha feito antes. Quando empresas são realmente inovadoras, algum tipo de customização de software é necessário. Então, praticamente todo departamento de TI, de qualquer tamanho, em algum momento se encontrará envolvido com testes de software.
Teste é essencial para o desenvolvimento de software, já que ajuda na identificação de bugs e permite a avaliação da qualidade do produto. Sem testes, fica difícil declarar com segurança que o software se comporta de acordo com as especificações e bugs não detectados podem permanecer em inúmeros ambientes através da aplicação e de seu código.
Teste manual de software é usado tradicionalmente para identificar defeitos no código ou na aplicação. O custo do teste manual está relacionado à noção de que o esforço necessário para realizá-lo com frequência é igual ou maior que o tempo gasto com desenvolvimento.
Teste funcional é usado para determinar se uma aplicação específica de software faz ou não o que deveria fazer de acordo com as especificações. Quando um usuário insere o "3" no campo "A" e "4" no campo "B", o resultado "7" (a soma) deve aparecer no campo "C".
Teste unitário foca numa unidade específica de código ou aspecto de uma aplicação para determinar se está funcionando corretamente. Frequentemente, programadores executam teste unitário, conforme desenvolvem o código, e antes de submetê-los a testes mais elaborados.
Teste de regressão é usado para determinar se uma mudança ou correção em uma área de uma aplicação introduziu erros ou problemas em outros aspectos ou áreas de uma aplicação.
Teste de integração ocorre quando unidades individuais de software são combinadas e precisam ser testadas como um grupo para se certificar que todos os módulos funcionam juntos e corretamente.
Teste de volume é usado para determinar se o software se adapta corretamente diante de condições que envolvam muitos usuários, transações ou outras condições de carga. Algumas vezes chamados teste de estresse, ele é usado para criar, simultaneamente, quantidades extremas de dados e interações para se certificar de que o software responde corretamente.
Teste de validação procura além das especificações de design. Vai até o propósito do software e requisitos do usuário para validar e verificar que o software serve corretamente ao seu propósito.
Teste de aceitação do usuário (UAT, na sigla em inglês) é o teste de software feito por usuários finais ou especialistas no assunto. Com UAT, os processos normalmente são manuais. O objetivo do UAT não é encontrar bugs, estes devem ser descobertos através de outros modelos de testes feitos anteriormente.
Teste automatizado pode ocorrer em qualquer tipo de fase de teste, mas é caracterizado pelo uso da automação para implementar rapidamente testes predefinidos. É ideal para teste de regressão e de integração, já que nestes casos, os mesmos testes podem precisar ser executados repetidamente para garantir que novos defeitos não tenham sido introduzidos. Uma variedade de ferramentas de testes automatizados e serviços estão disponíveis para ajudar um departamento de TI que tenha se perdido na área de desenvolvimento de software personalizado.
Então não deixe que o medo do conceito de desenvolvimento de software lhe afaste do projeto. Apenas teste.
*Glenn Johnson é vice-presidente sênior da Magic Software Américas.
Bom dia
Faz sentido o Teste unitário ser executado antes, contudo ser validado somente após o UAT e ou Teste integrado?