Se o novo paradigma é "Você constrói, você executa" (Werner Voegels, Amazon CTO), que obviamente coloca muito mais responsabilidade - e pressão - nos engenheiros de software, o que essa mudança introduz na tarefa da equipe de teste?
Se o novo paradigma é "Você constrói, você executa" (Werner Voegels, Amazon CTO), que obviamente coloca muito mais responsabilidade - e pressão - nos engenheiros de software, o que essa mudança introduz na tarefa da equipe de teste?
Respostas:
IMHO que depende de qual era o papel do testador antes de tal transformação. BTW, acredito que minha resposta se aplica à transformação do DevOps em geral, não apenas ao You build it, you run it
paradigma.
Se a função era um trabalho de drone - executando testes sem pensar - provavelmente desaparecerá, a automação consumirá esses trabalhos.
Se a função incluísse escrever os planos e especificações de teste, eles poderiam continuar fazendo isso ou até transformar os scripts de automação correspondentes, lado a lado com os desenvolvedores. Ou autônomo - em alguns ambientes, é obrigatório o uso de uma metodologia / infraestrutura / pessoal completamente separada para testes, do que o (s) utilizado (s) para o desenvolvimento. Em muitas organizações, os testadores são engenheiros de software, assim como desenvolvedores.
Se o papel estava executando testes intencionalmente não confiáveis / surpresa, exigindo especificamente traços humanos (emoção, subjetividade, inspiração, reflexos, intuição etc.) para complementar o teste automatizado - isso também não muda.
"Você constrói, você executa"
Esta citação visa enfatizar o intervalo entre as equipes de silo, um dos princípios dos devops é evitar que o silo realize uma tarefa.
Embora a idéia aqui se concentre nas fases de construção e execução, a idéia importante é reunir uma equipe inteira, da arquitetura às funções de exploração . Uma "Equipe de Devops" seria composta por todas as funções que participam do ciclo de vida do software, incluindo a função de testador, com ninguém na equipe lidando com uma única função.
A principal mudança para um testador seria aprender a expressar suas opiniões e feedback sobre a fase de planejamento em uma equipe ágil e provavelmente participar de algumas tarefas operacionais.
Mas, apesar de tudo, não existe uma regra exata, o que alguém anteriormente em um silo faria em uma "equipe de Devops" depende do que ele / ela está mais interessado e confortável em fazer. Esse é um dos desafios de uma equipe recém-criada, identificar as melhores habilidades de todos para compartilhar a carga da maneira mais eficiente.
Sou engenheiro sênior, nessa capacidade faço contratações.
Neste ponto da progressão dos devops, eu achava difícil contratar um Teste que não conseguisse facilmente fazer a transição para uma função de Engenheiro de infraestrutura (o que outros poderiam chamar de função de Devops)
Eu não esperaria que um testador, por exemplo, conheça os meandros da multithreading da JVM ou seja muito opinativo no design da classe python. Eu esperaria que eles fossem capazes de entender a fonte que eles podem escrever código stub ou gerar dados sintéticos.
Eu esperaria que um testador moderno conhecesse o arsenal básico de devops dentro da minha equipe. Isso incluiria: o provisionamento de servidores bare metal usando nossas ferramentas CM, a implantação de código por meio de vários artefatos ou contêineres.
Eu exigiria ainda que eles tivessem alguma capacidade como engenheiro de dados no sentido de saber como os dados se movem através de um sistema. Pensando em onde estão os pontos únicos de falhas e como simular falhas, otimização etc.
Eu nunca contrataria um testador para realizar testes no nível do módulo, que definiria como a interação de um punhado de classes (por exemplo, 1-20) atrás de uma barreira de rede.
tl; dr Eu contrataria testadores para configurar ambientes, simular (ou reproduzir) dados através desse ambiente e causar caos no ambiente.