Tudo sobre estratégia de automação de TI - Infonova
Por Juliana Gaidargi em 30/07/2019 em Gestão de TI, Negócios
Ao adotar uma boa estratégia de automação de TI, os profissionais da área podem ajudar as empresas a competir de forma mais eficaz. O problema está em como fazer isso.
Você provavelmente já ouviu a frase: "Hoje, toda empresa é uma empresa de TI". No entanto, não é incomum que as expectativas de um departamento de TI cresçam enquanto o orçamento permanece o mesmo. Isso, quando não simplesmente diminui.
Decisões executivas não são a única causa para isso. Afinal, os clientes esperam que as empresas se adaptem rapidamente e tragam novos produtos ou recursos para o mercado em um ritmo notável. Portanto, mesmo que sua empresa não seja uma empresa de tecnologia pura, a tecnologia desempenha um papel fundamental na introdução de novos produtos no mercado.
A indústria de TI está produzindo novas tecnologias, novas ferramentas e novas técnicas constantemente. Muitas delas podem oferecer vantagens para nossos negócios e empregadores. Mas como você encontra tempo para aprender essas coisas novas? Como você encontra tempo para testar essas coisas para ver que benefício elas podem oferecer à sua organização? Como você encontra tempo para implementá-las em seu ambiente? A resposta é simples: uma estratégia de automação de TI.
A automação permite que você seja mais eficiente. Isso, por sua vez, lhe permite passar mais tempo agregando valor e fazendo coisas mais interessantes. Ou seja, ao automatizar as partes rotineiras, libera-se tempo para se concentrar em coisas que gostaria de corrigir, melhorar ou atualizar em seu ambiente. Dessa forma, a automação é um multiplicador de força.
Contudo, a automação não acontece da noite para o dia. Requer esforço próprio, e você pode ter que provar esse valor para os outros membros da equipe. E nada prova melhor o valor do que demonstrar algo que funciona. Então, por onde começar? Uma das melhores maneiras é se afastar da sua rotina diária e avaliar onde você gasta seu tempo. Que tarefas repetitivas demoram alguns minutos, mas, ao longo de repetidos pedidos ou vários dispositivos, multiplicam-se por uma quantidade significativa do seu tempo? O que você repete em vários dispositivos usando algum algoritmo simples em sua cabeça ou uma planilha, como incrementar um endereço IP?
Estas são áreas que estão maduras para automação. Se feita corretamente, a automação pode reduzir a inconsistência em seu ambiente e erradicar erros de digitação que causam problemas difíceis de solucionar. Tudo isso permite que você seja mais eficiente.
Por que automatizar é importante?
Lembre-se de que tornar a TI mais eficaz pode ajudar as empresas a competirem de forma mais acirrada no mercado acelerado de hoje. Portanto, cabe aos engenheiros de TI entenderem a relação entre tornar a TI mais eficiente e permitir que a empresa possa competir melhor. Afinal, toda oportunidade de reduzir o tempo ou esforço necessário para realizar uma tarefa ajuda a empresa a atingir sua meta final mais rapidamente.
A auditoria é um ótimo exemplo para usar aqui. E se você pudesse reduzir o tempo e o esforço necessários para suportar uma auditoria em seu ambiente? A maioria das equipes teme o tempo de auditoria, desde as entrevistas até que alguém pesquise sistemas procurando por problemas ou inconsistências. Você consegue demonstrar que todos os dispositivos da sua rede possuem as configurações de tempo, AAA ou registro corretos? Com uma estratégia de automação de TI eficaz, você pode. E isso torna as auditorias mais fáceis e rápidas.
Quanto tempo leva para criar um novo engenheiro? Você já quis experimentar algo novo, mas sentiu-se preso porque ninguém mais poderia apoiar o que você faz? Com uma boa estratégia de automação de TI, ainda é necessária uma excelente arquitetura de rede. Contudo, fica muito mais fácil entregar partes do trabalho, permitindo que você assuma a próxima coisa interessante. Todas essas razões deixam claro por que a automação é tão importante.
Como introduzir a automação em sua organização
Costumava ser bom passar muito tempo nas entregas de aplicativos. As empresas podiam gastar de 18 a 24 meses em um grande lançamento. No entanto, no ambiente de tecnologia orientada para automação de hoje, isso é completamente inaceitável. O que é considerado tecnologia de ponta hoje será desatualizado ou mesmo redundante 18 meses depois. Portanto, os clientes esperam lançamentos pelo menos uma vez por mês. Caso contrário, irão para o concorrente mais próximo que o fizer.
Os requisitos para a entrega de aplicativos modernos explodiram ao longo de três vetores:
Dez anos atrás, se você oferecesse suporte a um navegador ou a uma única classe de dispositivos móveis, 90% de seu mercado-alvo estava coberto. Hoje, o Internet Explorer, o Chrome e o Firefox têm uma participação de mercado significativa (além de outros navegadores de nicho que não devem ser ignorados) e o número e a variedade de dispositivos móveis e combinações de sistemas operacionais continuam crescendo exponencialmente. Para complicar ainda mais, muitas empresas desenvolvem soluções que precisam ser executadas no local e na nuvem.
Se isso não for suficiente, seu produto precisa expor as APIs para que mais e mais sistemas possam ser integrados. Essas são expectativas comuns que tornam os clientes sensíveis a defeitos em seu produto. E, se uma de suas APIs quebrar, seus sistemas integrados serão interrompidos.
Observar a matriz de testes tridimensional que esses vetores criam pode ser estonteante, mas há uma solução: uma estratégia de automação de TI.
Afinal, a automação aciona metodologias modernas de entrega de aplicativos de forma contínua. Se levado ao extremo, em um pipeline de entrega de software totalmente automatizado, como o DevOps, qualquer código comprometido é executado automaticamente por meio de um processo de construção (integração contínua), que inclui uma série de testes automatizados (testes contínuos).
Se esses testes forem aprovados, a construção será promovida automaticamente pelo pipeline (entrega contínua) até que, eventualmente, seja disponibilizada aos consumidores. Embora a maioria das organizações não considere exatamente isso, esses processos automatizados são o que permitem às organizações superar o vetor impossível de variáveis ​​às quais devem atender.
Seja estratégico, não tático
O conceito de automação em software não é novo. Afinal, as ferramentas de automação existem há anos. Entretanto, a introdução bem-sucedida da automação em sua organização exigirá mais do que apenas selecionar a ferramenta ou a linguagem de script. Você deve ter uma estratégia consciente apoiada pelos líderes da sua organização.
Você precisará alocar recursos adequados e tratar a automação como uma linha crítica de desenvolvimento completa. Ou seja, com prioridades e ciclos claros de backlog e lançamento. Você precisará ainda avaliar o progresso de forma contínua, com métricas concretas que mostram se você está atingindo suas metas ou não. Você deve lidar com a automação como um projeto de software completo com vários colaboradores. Não apenas com um especialista em token de quem todo o projeto depende. Se devidamente cultivada, a estratégia de automação de TI da sua organização deve amadurecer e crescer para ser robusta, sustentável e escalável.
Não apenas adote ferramentas. Identifique e trate pontos de dor
Implementar a automação corretamente requer um grande investimento. Afinal, se você não mostrar rapidamente um ótimo ROI, seu projeto será extinto. Portanto, não deixe que nenhuma ferramenta específica seja o seu driver. Ao invés disso, procure pontos problemáticos em sua organização e não comece com um grande projeto.
Escolha algo pequeno, claramente e bem definido. Pergunte-se:
Você quer substituir os esforços manuais?
Feedback rápido sobre novas construções?
Melhor cobertura de plataforma?
Primeiro, decida sobre o problema que você vai resolver e escolha a melhor ferramenta para o trabalho. Por último, certifique-se de demonstrar o valor de seus esforços com resultados quantificáveis. Por exemplo, você pode mostrar quantos dias úteis de testes de lançamento são salvos. Ou quantas compilações podem ser testadas por semana. Inclusive, como aumentar a cobertura da plataforma. Existem muitas maneiras de medir a eficácia. Portanto, escolha aquela que demonstra a melhoria no ponto mais doloroso do pipeline de entrega de software da sua organização. Vale também investir em uma boa ferramenta de automação para mídias sociais, por exemplo.
Manter qualquer domínio de conhecimento nas mãos de um especialista é arriscado. Afinal, as pessoas mudam de emprego, adoecem ou passam para outros projetos. Dessa forma, é necessário determinar um dono claro para cada projeto de automação. Ou seja, alguém que irá mantê-lo em direção a metas claramente definidas. Entretanto, todos os outros membros da sua organização também devem estar envolvidos.
Nenhuma pessoa sozinha deve ser responsável pelo desenvolvimento e manutenção de toda a estratégia de automação de TI. Se necessário, gaste alguns recursos orçamentários para treinar os membros de sua equipe para que todos possam pelo menos escrever um script simples, executar testes e analisar os resultados. Seus especialistas podem lidar com as tarefas mais complexas de escrever estruturas, projetar sua arquitetura de automação ou até mesmo orientar outros membros da equipe.
Mantenha a estratégia de automação de TI robusta e bem conservada
Falsos positivos freqüentes fazem as pessoas perderem a confiança. Portanto, se seu código de automação falhar em uma compilação devido a um bug no script (em oposição a um bug no produto), será preciso muito para recuperar a confiança no processo. Dessa forma, é interessante começar com testes pequenos e eficientes. A partir daí, construa sua infraestrutura lentamente para mantê-la em boas condições.
Aqui estão algumas coisas que você pode fazer para ajudar:
Certifique-se de que seus scripts criem logs detalhados. Dessa forma, quando algo der errado, será mais fácil depurá-lo;
Use capturas de tela ao executar a automação em uma interface do usuário (UI). Você não precisa registrar toda a sessão se o armazenamento for valioso. Apenas faça capturas de tela quando ocorrerem erros. Isso é muito útil;
Certifique-se de que seus desenvolvedores possam acessar e depurar o ambiente de teste, se necessário. Se você executar testes em um servidor com acesso limitado, seus desenvolvedores ficarão presos se algo acontecer;
Tenha um processo para lidar com erros no seu fluxo de automação de forma rápida e eficiente. Quem é notificado por e-mail? Como é tratado? Quem é responsável por gerenciar o erro? É desenvolvimento, DevOps ou QA? Certifique-se de que esta é uma parte integrante do processo no seu pipeline de construção para que não resulte em uma discussão toda vez que ocorrer um erro;
Divida os esforços de automação entre a interface do usuário e a API.
Suponha que, nos primeiros dias, muito esforço foi destinado à criação de scripts de automação para testar interfaces de usuário. Contudo, essa estratégia não foi eficaz. Mesmo assim, as interfaces de usuário do produto mudaram tão rapidamente que se tornou um desafio manter os scripts de teste.
Mais recentemente, o foco mudou para interfaces de programação de aplicativos (APIs). Como as APIs são fundamentais para separar camadas de aplicativos, testar uma API diretamente facilita o isolamento de erros no back end. Portanto, o teste de interface do usuário ainda não foi completamente abandonado.
Você ainda pode testar efetivamente sua interface do usuário para sistemas legados maduros que podem não ser alterados com frequência. Em sistemas mais recentes, o fluxo principal da interface do usuário também pode ser estável o suficiente para justificar o desenvolvimento de scripts para testá-lo.
A automação é a única maneira de oferecer suporte ágil
Metodologias ágeis de desenvolvimento são parte integrante da entrega de aplicativos modernos. Desenvolvedores e profissionais de QA devem colaborar de perto para fornecer feedback rápido e encurtar os ciclos de desenvolvimento. Ou seja, as compilações podem ser entregues para testes diariamente ou até várias vezes ao dia. Contudo, toda construção deve passar por testes mínimos para garantir a integridade antes de ser passada para um controle de qualidade mais intensivo. Porém, é impossível acompanhar esse tipo de ritmo sem uma rede de segurança de automação.
Embora os benefícios de uma construção estável nem sempre sejam medidos usando as métricas clássicas de dias úteis salvos ou o número de defeitos encontrados, eles são essenciais para a eficiência e a capacidade da organização de fornecer rapidamente produtos de alta qualidade. Se sua organização já é ágil, certifique-se de que a automação esteja incluída em sua definição de "concluída". Dessa forma, você se aproximará mais um pouco do DevOps.
Os benefícios de uma boa estratégia de automação de TI são claros:
Redução do tempo e do esforço gasto em controle de qualidade;
Feedback rápido e expansão da cobertura do código, resultando em um produto melhor.
No entanto, aproveitar esses benefícios exige uma quantidade significativa de recursos organizacionais. Ou seja, contratar um estudante de meio período para fazer o trabalho manualmente não resolve. Afinal, a automação deve fazer parte do DNA da organização. Embora isso possa ser caro no início, o ROI é rápido o suficiente. Portanto, se executada corretamente, a introdução da automação em sua organização vale o investimento.
A relevância da estratégia de automação de TI
Atualmente, existem centenas de novos negócios e empresas de pequeno e médio porte entrando no mercado diariamente. Isso, porque o processo de criação de uma empresa é agora muito mais fácil do jamais foi. Afinal, graças à tecnologias avançadas, como a computação em nuvem, as pessoas podem abrir suas próprias empresas sem gastar uma enorme quantidade de capital ou precisar de grandes investimentos iniciais.
No entanto, para qualquer PME sobreviver nessa era técnica acelerada, ela precisa se adaptar e aprender a automatizar tarefas. A automação é o melhor amigo de qualquer empresa em crescimento porque economiza tempo, esforço e custos. Uma boa estratégia de automação de TI também ajuda a aumentar a produtividade, realizando o trabalho com eficiência, com um mínimo ou nenhum erro no processo.
Dessa forma, ao usar a automação, as empresas podem reduzir muitas tarefas humanas rotineiras, permitindo que os funcionários se concentrem em processos que realmente exigem intervenção humana. A automação também oferece melhores informações sobre o seu negócio. E essa é uma necessidade especialmente crucial para todas as empresas jovens.
Aqui estão algumas das principais vantagens da automação:
Redução da necessidade de terceirização;
Integrações fáceis;
Retorno mais rápido sobre o investimento.
Conheça as estratégias de automação em TI mais usadas atualmente
Agora que estamos cientes de algumas das principais vantagens e benefícios oferecidos pela automação, aqui estão as áreas essenciais em TI que precisam ser automatizadas. Contudo, vale ressaltar que nem todo processo pode ser totalmente automatizado. Afinal, muitos ainda precisarão de alguma assistência humana. Entretanto, o uso de ferramentas e processos de automação ainda pode economizar muito tempo, esforço e custos.
A primeira área que precisa ser automatizada é o atendimento ao cliente. Afinal, essa área atua como um dos aspectos predominantes do crescimento de qualquer empresa. No entanto, uma enorme quantidade de capital também é necessária para realizar o atendimento ao cliente usando processos não automatizados.
Automatizar o atendimento ao cliente pode trazer muitos benefícios para as empresas. Ao mesmo tempo, pode economizar muitos esforços humanos.Uma boa estratégia de automação de TI nessa área pode realmente servir os clientes melhor nos aspectos mais essenciais: qualidade e velocidade.
Afinal, ferramentas de automação podem ajudar a reduzir o tempo de resolução de problemas e garantir que nenhuma reclamação fique sem resposta. Embora o atendimento ao cliente não possa ser totalmente entregue às ferramentas de automação e ainda necessite de uma essência humana para lidar com os clientes, eles podem ajudar a simplificar o processo e facilitar o trabalho dos funcionários. Portanto, um excelente atendimento ao cliente depende da combinação de interação humana e a quantidade certa de automação.
Branding e promoções de mídia social são essenciais nos dias de hoje para promover as vendas e o valor de uma empresa. Ou seja, tais campanhas desempenham um papel vital na criação de reconhecimento de marca, valor e fornecem um meio muito eficaz de permanecer conectado com os clientes. No entanto, essas campanhas de mídia social podem consumir tempo e esforço se forem realizadas de maneira tradicional.
Felizmente, existem várias ferramentas de automação de mídia social disponíveis no mercado. Elas funcionam de forma muito eficiente para automatizar a maioria (senão todas) as tarefas relacionadas à mídia social. Dessa forma, as empresas podem se beneficiar do aumento da produtividade, eficiência e precisão ao atingir uma enorme base de usuários por meio das mídias sociais.
Quase todo mundo está ciente de quanto tempo e esforço podem ser economizados usando testes automatizados ao invés de testes manuais quando se trata de software e aplicativos. Afinal, o teste automatizado leva menos tempo para realizar verificações enormes em comparação com o tempo necessário para fazê-lo manualmente.
O processo de automatização de testes agora é alimentado por várias ferramentas e serviços, que realizam vários tipos de testes. É o caso do teste de unidade, integração, desempenho, carga e regressivo. Dessa forma, nota-se que automatizar o processo de teste é muito importante para acelerar as operações de desenvolvimento e suporte.
Além disso, o teste automatizado facilita o processo de desenvolvimento e operação. Ou seja, é um dos meios preferidos nos ambientes Agile e DevOps de ritmo acelerado. As ferramentas de teste automatizadas podem executar grandes teste em minutos, o que exigiria semanas, se não meses, se feito manualmente. No entanto, nem todos os casos de teste podem ser automatizados. Testes funcionais e comportamentais, além de análise de um produto ou software precisam ser realizados por seres humanos ou com intervenção humana.
Com o crescente número de ataques cibernéticos, violações de dados e roubos, a segurança é de suma importância. Contudo, até mesmo as melhores soluções e analistas de segurança não estão conseguindo lidar com as ameaças virtuais crescentes. Portanto, o monitoramento constante e o gerenciamento de logs são um aspecto essencial da segurança. O uso de ferramentas e serviços automatizados para realizar essas tarefas relacionadas à segurança e monitoramento pode economizar muitos esforços humanos e fornecer registros de segurança precisos e eficientes.
Afinal, a automação pode ser usada para configurar processos para detectar atividades incomuns, como malware, configurações incorretas, comportamentos suspeitos e políticas de uso do dispositivo. Na maioria dos cenários, qualquer um desses aspectos resulta em um ataque cibernético e representa uma séria ameaça à reputação e às operações da empresa.
Operações gerais de TI
Com o crescente uso da tecnologia, as empresas estão vendo uma base de usuários cada vez maior. Isso resulta em uma maior necessidade de operações de TI. Enquanto algumas empresas terceirizam seu departamento, boa parte delas está adotando ambientes híbridos, como o DevOps, para lidar com as operações de TI juntamente com o desenvolvimento.
Quase todas as empresas em todo o mundo gastam uma quantidade considerável de tempo em operações de TI, manutenção e correções de bugs. Felizmente, a maioria das tarefas relacionadas à TI pode ser automatizada. Uma estratégia de automação de TI assertiva, como o processamento em lote programado, pode ser empregada para automatizar operações regulares de dados. Análises automatizadas de aplicativos podem ser usadas para monitorar e executar verificações de integridade em produtos de TI, como aplicativos móveis e da web e muito mais. A automação também pode ser usada em manutenção de hardware e software, monitoramento, instalação e outros processos operacionais essenciais.
As empresas gastam uma boa parte de seu tempo em seus recursos humanos e processos de recrutamento. Ou seja, uma quantidade considerável de esforços humanos é necessária para conduzir processos de RH, como recrutamento.
Com a automação, mais da metade do processo de recrutamento pode ser agilizado. Afinal, as empresas podem empregar testes de triagem online, usar a AI para analisar as qualificações dos candidatos e usar outras ferramentas para selecionar os candidatos certos para cada função.
Automatizar as entrevistas dos candidatos também pode ser útil para gerenciar um grande volume de aplicativos. Portanto, mais da metade da triagem pode ser automatizada no processo de recrutamento. Isso, por si só, economiza uma enorme proporção de custos que seriam alocados nesse processo.
Existem vários outros processos e tarefas específicas que podem ser automatizadas. Por exemplo, a robótica em linhas de produção, o uso de bots em atendimento e a renderização de recursos em telecomunicações. Contudo, enquanto alguns dos processos podem depender completamente da automação e podem funcionar independentemente, alguns deles precisam de intervenção humana para garantir e regular as operações, além do fluxo do processo. No entanto, em ambos os casos, a automação pode melhorar a eficiência e a precisão. Isso, ao mesmo tempo em que economiza dinheiro.
O segredo para obter sucesso por meio de uma estratégia de automação de TI está na escolha da ferramenta. Confira a seguir como fazer essa escolha de forma assertiva.
4 Técnicas de teste de software de automação
A regra de ouro com a automação de teste de software é não causar danos. Afinal, usar a automação em seu arsenal de técnicas de teste de software pode se tornar difícil com equipes que optam por promover scripts de teste para cada novo recurso no conjunto. Contudo, para empresas que se comprometem a gerenciar o esforço e desejam criar um conjunto de testes que ofereça relatórios mais robustos, a automação é a melhor opção para dimensionar a complexidade dos esforços de teste sem aumentar drasticamente sua equipe.
Siga estas quatro práticas recomendadas para criar um conjunto de testes automatizado e gerenciável capazes de evoluírem com sua organização:
Muitos veteranos da indústria, sem dúvida, já experimentaram o seguinte cenário: uma organização decide criar um cliente de teste para executar um conjunto de scripts de teste. Aplausos pelo compromisso com técnicas de teste de software de automação. Agora basta igualar o compromisso, contratando as pessoas certas para mantê-lo.
Ou seja, estagiários e outros funcionários júniores podem ter o know-how para executar o script de teste. Entretanto, não terão, necessariamente, o know-how para depurá-lo. Isso pode resultar em dúvidas sobre se as falhas estavam vindo do produto ou se houve uma falha no próprio script de teste.
Projete com cuidado seu conjunto de testes de automação e comprometa-se a mantê-lo
Gerenciar sua suíte é uma forma de arte. É fácil justificar a adição de scripts, mas insuportavelmente difícil concordar em removê-los. Por quê? Remover scripts aumenta o risco. Os testadores são raramente, ou nunca, repreendidos por escrever muitos casos de teste. Pelo contrário! É mais fácil recomendar a adição de scripts quando surgem bugs para garantir que "eles nunca aconteçam novamente".
Isso pode se tornar uma faca de dois gumes. Afinal, pode gerar suítes de testes de automação inchadas por milhares de scripts de correção. Nesses cenários específicos, o gerenciamento do esforço de automação provavelmente passou por várias mãos até que o líder vigente e sua equipe tivessem pouca compreensão acerca do caos à espreita sob o capô.
Para evitar que isso aconteça, é interessante propor uma estratégia de manutenção como parte do lançamento do conjunto de automação. Para isso, pode-se incluir a listagem das diferentes categorias de teste (teste de plataforma de dispositivo, teste de porta de dispositivo, novo teste de recurso de servidor, estabilização de servidor e teste de implantação, entre outros) e atribuir um líder a cada área funcional.
Exemplo de teste de estabilização
Começar com o teste de automação para identificar problemas funcionais na interface do usuário e na validação de novos aplicativos móveis;
Suplementar a automação com testes manuais para recursos que não são expostos através da interface do usuário, novos recursos e testes mais profundos em torno de interações com novos recursos;
Identificar os defeitos da "primeira passagem" da automação e não iniciar a segunda passagem até que a correção do defeito seja concluída;
Estime de 5-10 dias para cada passagem;
Independentemente da estratégia, o objetivo é usar os critérios como uma base de teste para avaliar a melhor forma de atingir as metas.
Ao arquitetar e manter adequadamente o seu conjunto de testes, é possível se proteger contra a criação de um conjunto de testes tão grande e complicado que a alteração se torne mais trabalhosa do que testar o software manualmente. Afinal, o pior resultado da automação é o esforço para alterar ou ajustar os testes. O objetivo da automação de testes é permitir eficiências na mudança e não impedi-las.
Arquive seu conjunto de testes para ser ágil
Os testes de melhor engenharia são orientados por dados. Portanto, no espectro de tarefas de automação, a configuração das taxas de scripts de reprodução são consideradas mais fáceis de criar, a taxa de scripts portáteis está no centro e a taxa de scripts orientada por dados são as mais complexas.
Evite a tentação de "gravar e reproduzir" (referência para equipes com pouco tempo) e aproveite para projetar as suítes corretamente desde o início. Conjuntos controlados por dados usam rotinas centrais comuns para realizar tarefas simples. Ou seja, são adaptáveis ​​ao configurar um banco de dados ou uma planilha.
Scripts baseados em dados devem:
Ser adaptáveis, sem problemas, em máquinas, ambientes, sistemas operacionais;
Permitir que um engenheiro acompanhe o volume de alterações de 10 desenvolvedores.
Automatize a parte mais estratégica do seu produto
Para muitas equipes, isso significa áreas com desenvolvimento ativo de longo prazo ou com vários lançamentos planejados. Dessa forma, se torna possível ver o ROI de longo prazo da estratégia de automação de TI relacionada ao teste de software.