A realidade das organizações está em constante mudança e é hoje mais volátil do que nunca. Paralelamente, os sistemas de TI e a sua crescente complexidade aumentam a probabilidade de falhas nos processos, sendo estas falhas altamente penalizadoras ao nível financeiro e/ou de imagem. Urge, cada vez mais, assegurar que a qualidade dos processos de negócio se mantém nos vários sistemas da organização.
É aqui que entra o papel das equipas de Quality Assurance, que passam a atuar na organização como um todo e não apenas num ou noutro sistema ou projeto. Neste contexto, os testes automáticos assumem uma importância cada vez maior no seio das equipas de Quality Assurance das empresas e outras organizações.
Testes automáticos têm aumentado a sua relevância e importância
A automação de testes é hoje de referência obrigatória quando se fala em Quality Assurance, embora existam limitações que fazem com que muitas destas iniciativas não tenham o sucesso desejado. Entre elas, contam-se a limitação de ferramentas de automação existentes, a necessidade de recursos técnicos especializados e a exigência de um elevado nível de manutenção.
A sua relevância tem ainda mais preponderância nos dias de hoje, com a implementação cada vez mais frequente, de pipelines de DevOps para a entrega continua de valor para os utilizadores.
Esta necessidade implica que sejam colocados em prática mecanismos de testes contínuos, de forma a fornecer informação imediata sobre os riscos associados ao lançamento das várias evoluções da mesma aplicação. Mecanismos estes que não são mais do que o processo de execução dos testes automáticos.
Onde podem ser aplicados os testes automáticos?
Podem ser aplicados sobre todas as peças de software onde se pretenda atingir cada vez maiores níveis de qualidade e confiança. É possível fazer testes com intenções especificas como:
- Testes Funcionais – As aplicações têm de operar como esperado para satisfazer os requisitos funcionais.
- Testes de Regressão – Para garantir que as aplicações e sistemas continuem a operar da mesma forma, apesar de terem sofrido alterações em componentes não diretamente impactados.
- Testes de Exceção – Assegurar a resiliência a situações de erro.
- Testes de Stress – Para determinar as capacidades da aplicação e infraestruturas
- Testes de Performance – Garantir que o desempenho das aplicações está de acordo com as estimativas ou requisitos do negócio.
- Testes de Carga – Determinar em que ponto a capacidade e desempenho se tornam limitadores do uso normal das aplicações e sistemas e seja necessária a sua evolução.
Benefícios dos testes automáticos
- Fiabilidade – São executados exatamente da mesma forma, eliminando o erro humano.
- Repetibilidade – As aplicações podem ser testadas com a execução repetida das mesmas operações e analisado o seu comportamento perante estas condições.
- Reutilização – Os testes são reutilizados em diferentes versões das aplicações.
- Detalhe – Pode ser implementado um conjunto de testes exaustivos que cubra todas as funcionalidades das aplicações.
- Maior Qualidade – Garante-se uma maior qualidade do software, executando mais testes em menos tempo e com menos recursos e, normalmente, com resultados mais detalhados
- Económicos – É cada vez menos necessário investir em testes de regressão com a evolução das aplicações.
- Rapidez – Os testes automáticos são bastante mais rápidos do que os humanos.
Desvantagens
- É necessária ter proficiência para escrever os testes automáticos.
- A manutenção pode ser pesada no caso de métodos de gravação dos passos do guião dos testes. Por exemplo uma pequena alteração na interface do utilizador pode levar a que o guião do teste tenha de ser reescrito ou gravado de novo.
- Não elimina por completo os testes manuais
Em suma, os testes automáticos permitem entregar, sistematicamente, de forma mais rápida, com maior qualidade e com riscos e custos controlados.