O que é uma estrutura de automação de teste?
Uma estrutura de automação de teste é um conjunto de ferramentas usadas para executar testes de software automatizados. As estruturas de automação de teste oferecem vantagens significativas sobre o teste manual e são comumente usadas no rápido desenvolvimento de software. Essas estruturas permitem que os desenvolvedores de software criem testes, executem testes e analisem seus resultados. Uma estrutura de automação de teste pode ser orientada por código, dados, uma interface gráfica do usuário (GUI) ou uma combinação deles.
Estruturas de automação de teste são necessárias para atender às necessidades de desenvolvimento rápido de software. No ciclo de vida clássico de desenvolvimento de software em cascata, o teste de software era uma fase discreta realizada após a implementação ou codificação. Como tal, testes executados por humanos eram típicos.
Muitas equipes de desenvolvimento substituíram o modelo em cascata por várias metodologias ágeis de desenvolvimento de software, que normalmente exigem desenvolvimento rápido e iterativo. O rápido desenvolvimento criou a necessidade de testes rápidos. Uma estrutura de automação de teste permite que uma equipe de software realize testes frequentes e automatizados em uma base de código. Por exemplo, em vez de exigir uma fase de teste separada após o desenvolvimento, uma equipe que usa uma estrutura de automação de teste pode optar por executar um conjunto completo de testes da noite para o dia, além de pequenos blocos de testes automatizados ao longo do dia à medida que são feitas alterações na origem código.
O tipo de estrutura mais comumente usado é a estrutura orientada por código, usada para executar testes de caixa branca. Estruturas orientadas a código exigem que os desenvolvedores escrevam pequenos trechos de código, na forma de testes de unidade, para testar a funcionalidade ou o desempenho do software. Os desenvolvedores que usam estruturas orientadas a código devem ter o cuidado de escrever seu software de uma forma que possa ser testada - ou seja, o código deve ser modularizado para que um teste de unidade possa chamar um trecho de código e verificar o resultado. Essas estruturas geralmente incluem uma implementação do xUnit, onde "x" varia de acordo com a linguagem de programação que está sendo testada.
As estruturas de teste orientadas por GUI são usadas para realizar testes de caixa preta, usando uma ferramenta de software como o usuário faria, por meio de entradas de mouse e teclado. Eles podem ser compostos por scripts escritos por desenvolvedores para exercitar uma série de funcionalidades, ou podem ser compostos por scripts gerados por ferramentas, como scripts de gravação e reprodução. Uma desvantagem potencial para essas estruturas é que o script será interrompido sempre que a GUI for alterada. Algumas estruturas de automação da GUI podem gerar um script que pode ser editado por um desenvolvedor em caso de alterações na GUI, e outras podem exigir que o usuário crie uma nova sessão de gravação e reprodução.
As estruturas de teste orientadas a dados realizam testes de software usando dados, e esses testes geralmente funcionam com tabelas de dados que especificam entradas e saídas. Os dados podem ser mantidos em vários locais, como bancos de dados, planilhas ou arquivos de texto. Os scripts podem ser escritos para executar métodos de software, tendo as entradas como parâmetros e para validar o valor de retorno do método de software em relação à saída. Qualquer outra coisa que possa ser variada, como o ambiente em que o teste é executado, também pode ser armazenada com os dados e separada do script de teste. Uma vantagem oferecida por essas estruturas é a separação de dados e lógica, o que geralmente leva a menor manutenção a longo prazo.