8.2 Adaptação da automação de teste ao ambiente e às mudanças do SUT
ALTA-E-8.2.1 (K4): Analisar o testware automatizado, incluindo componentes do ambiente de teste, ferramentas e bibliotecas, para entender onde a consolidação e atualizações devem ser feitas dado um ambiente de teste ou alterações no SUT.
As mudanças em um TAS existente demandam planejamento e investigação criteriosa. Muito esforço foi gasto na criação de um TAS robusto composto de TAF e bibliotecas de componentes.
Qualquer mudança, não importa o quão trivial seja, pode ter grande impacto sobre a confiabilidade e o desempenho do TAS.
Identificar alterações nos componentes do ambiente de teste
Avaliar quais mudanças e melhorias precisam ser feitas.
Será que estas exigem
- alterações no TAS
- nas bibliotecas
- no sistema operacional
Cada uma dessas mudanças tem um impacto sobre como o TAS é executado.
O objetivo é garantir que os testes automatizados continuem sendo executados de forma eficiente. As alterações devem ser feitas de forma incremental para que o impacto no TAS possa ser medido por meio de um conjunto limitado de de scripts de teste.
Certificado que nenhum efeito prejudicial existe, as mudanças podem ser totalmente implementadas. Uma regressão completa será necessária para validar que a mudança não afetou negativamente os scripts automatizados.
Durante a execução desses scripts de regressão, erros podem ser encontrados. Identificar a causa raiz destes erros (através de relatórios, logs, análise de dados etc.) proporcionará um meio para garantir que eles não são resultantes da atividade de melhoria de automação.
Aumente a eficiência e a eficácia das principais bibliotecas do TAS
À medida que um TAS amadurece, novas maneiras são descobertas para executar tarefas de forma mais eficiente.
Essas novas técnicas (que incluem a otimização de código em funções, usando bibliotecas mais recentes do sistema operacional etc.) precisam ser incorporadas às principais bibliotecas do TAS, usadas pelo projeto atual e demais projetos.
Identificar funções diversas que agem sobre o mesmo tipo de controle para consolidação
Uma grande parte do que ocorre durante uma execução de teste automatizada é invocar os controles na GUI, o qual provê informações sobre esse controle (p. ex., visível ou não visível, ativado ou não ativado, tamanho e dimensões, dados etc.).
Com essas informações, um teste automatizado pode selecionar um item de uma lista suspensa, inserir dados em um campo, ler um valor de um campo etc.
Existem várias funções que podem atuar sobre controles para obter essas informações. Algumas funções são extremamente especializadas, enquanto outras são de natureza mais geral.
Por exemplo, pode haver uma função específica que funciona somente em listas suspensas.
Alternativamente, pode haver uma função (ou uma pode ser criada e usada dentro do TAS) que funciona com várias funções especificando uma função como um de seus parâmetros.
Portanto, um TAE pode usar várias funções que podem ser consolidadas em menos funções, obtendo os mesmos resultados e minimizando o requisito de manutenção.
Refatorar a TAA para acomodar mudanças no SUT
Durante a vida de um TAS, mudanças precisam ser feitas para acomodar mudanças no SUT. Como o SUT evolui e amadurece, a TAA subjacente terá que evoluir também para garantir a funcionalidade necessária para suporte ao SUT.
Deve-se ter cuidado ao estender as funcionalidades para que eles não sejam implementados de forma direta no código, mas sim analisados e alterados ao nível arquitetural da solução automatizada.
Isso garantirá que, uma vez que a nova funcionalidade SUT requer scripts adicionais, componentes compatíveis serão instalados para acomodar esses novos testes automatizados.
Convenções de nomenclatura e padronização
À medida que as alterações são introduzidas, as convenções de nomenclatura para novas bibliotecas de códigos e funções de automação precisam ser consistentes com padrões previamente definidos (consulte capítulo 4.3.2, escopo e abordagem).
Avaliação de scripts existentes para revisão ou eliminação
O processo de mudança e melhoria também inclui uma avaliação de scripts existentes, seu uso e o valor que ele agrega.
Por exemplo, se certos testes são complexos e demorados para serem executados, decompô-losem vários testes menores pode ser mais eficiente.
Focar na eliminação de testes que não são executados, ou não são executados frequentemente reduzirá a complexidade do TAS e trarão maior clareza ao que precisa ser mantido.
