As práticas e mentalidade de teste de software tem mudado radicalmente desde de os primórdios do Agile e do Lean. Práticas e mentalidade de teste são uma parte inseparável da cultura DevOps.
Shirly Ronen-Harel, coach Ágil, diretora de operações e de pesquisa e desenvolvimento na Sisense, falou da mentalidade de teste de software dentro do mundo DevOps em uma série recente em seu blog.
DevOps inclui desenvolvimento colaborativo rápido sem contratempos, com testes, entrega e monitoração contínuo e não funciona sem que haja uma mentalidade adequada, que tenha como objetivo permitir que todos colaborem para entregar valor mais rapidamente.
Sanjeev Sharma, DevOps de pequenas e médias empresas, evangelista Ágil e autor na IBM, menciona em seu blog na seção sobre DevOps, que testes contínuos são uma parte integral de DevOps.
Integração e entrega contínuas são ambos (quase) sem sentido sem testes contínuo. Não ter monitoramento e, portanto, não saber como é o desempenho da aplicação em produção torna todo o processo de DevOps irrelevante.
Ronen-Harel diz que DevOps visa quebrar as barreiras entre Dev e Ops. Isso também implica quebrar as barreiras entre Dev, Teste e Ops. Nada permanece o mesmo para uma operação de teste tradicional. O processo de teste passa por uma grande mudança em uma cultura DevOps. Portanto, tudo muda no processo de teste. O conjunto de habilidades do analista de testes, os métodos, a forma como testam, quando testam e a forma como planejam e executam.
Então, ter boas ferramentas, "bons" processos e responsabilidades bem-definidas são só uma parte do todo. Se quisermos ter testes efetivos em um mundo DevOps precisamos estabelecer a mentalidade correta.
Ronen-Harel explica os elementos culturais que tornam testes compatíveis com DevOps, como:
- Colaboração. DevOps significa colaboração entre product owners, desenvolvedores, testadores, analistas e arquitetos;
- O testar é pervasivo. Se queremos que os testes estejam em todos os lugares, precisamos que os testes sejam feitos por todos.
Construa algo que tenha a qualidade da sua marca estampada em todo lugar. Comece a encarar QA mais como um facilitador do que como um gargalo.
Marc Hornbeek, arquiteto sênior de soluções de testes contínuos para DevOps na Spirent Communications, diz em seu blog que DevOps traz os testes para o mainstream dos processos de desenvolvimento, e evita os problemas criados por ter uma grande fase de testes agendada para o fim do ciclo, tais como atrasos de lançamento e problemas de qualidade.
- Software sempre funcional. Software funcional significa testar a medida que se programa;
- Estamos todos nisso juntos. O analista de testes não é o único responsável pelos bugs no produto final. Somos todos responsáveis pelo problema e pela solução;
- Pensamento Lean: reduza os silos, remova o desperdício, identifique gargalos, guie seu pensamento pelo valor e integre continuamente.
Nas culturas Agile e DevOps, olhamos para toda a linha de produção. Não calculamos o custo de cada unidade separadamente. Pelo contrário, olhamos para todo o fluxo de valor, do início ao fim.
Alguns elementos adicionais compartilhados por Ronen-Harel são responsabilidade compartilhada, feedback precoce, visibilidade e melhoria contínua.
Shirly Ronen-Harel define um testador como um facilitador, um desenvolvedor hábil, e um representante de negócio capacitado. Para isso, Ronen-Harel faz as seguintes sugestões:
- Suporte ativo e mentalidade apropriada da gerência;
- Entender o fato que é preciso reagir a um ambiente que muda rapidamente;
- Estar sempre a par das mudanças tecnológicas;
- Testadores altamente qualificados;
- Desenvolvedores altamente qualificados;
- Contrate pessoas que trabalham em equipe;
- Comece mesmo que a mentalidade não esteja totalmente desenvolvida pois mentalidade é algo que cresce com o tempo;
- Contrate um coach Agile.