Image for post
Image for post
Marison Cesar Fernandes e Rui Lopes Rodrigues | Líder de Testes e Líder Especialista de Automação de Testes | everis Brasil

Testes Ágeis: O que realmente importa?

Mudanças constantes e cada vez mais rápidas, esta é uma tendência que aparentemente não irá mudar, pelo contrário, tende a se intensificar. Desenvolver aplicações que atendam às necessidades em constante mudança, de clientes e usuários cada vez mais exigentes, significa ter capacidade de entregar com agilidade e, é claro, com qualidade.

Dentro deste contexto, inserir adequadamente às atividades de teste no ciclo de desenvolvimento de software utilizando metodologias ágeis, com o intuito de garantir a qualidade, sem diminuir a agilidade, é algo essencial. Mas, a pergunta que devemos nos fazer, inclusive para nos ajudar a focar no que realmente faz diferença é: quais são os aspectos mais importantes para atingir este objetivo?

Indo direto ao ponto, gostaria de destacar três pilares importantíssimos, que englobam uma série de atividades, técnicas e ações.

Pensar em como realizar as entregas com qualidade, desde o início do processo, é uma boa prática mais do que conhecida, porém, na prática, ao contrário do que deveria, infelizmente, nem sempre aplicada.

Realizar constantemente os questionamentos “Como posso prevenir defeitos e não somente encontrá-los após terem sido gerados? ”, ou seja, antecipar os testes, sempre que possível, através de ShiftLeft, “Quais tarefas vou ter que executar mais de uma vez e que valem a pena ser automatizadas? ”, repare que, neste questionamento, a palavra é “tarefas” e não somente “testes”. Por que não automatizar a geração de indicadores, reports, massa de dados, configuração do ambiente e tudo o que for possível e cujo esforço seja justificável? “Se eu fosse o cliente ou consumidor final deste produto, quais características fariam com que este superasse minhas expectativas e quais me fariam ficar desapontado ou até deixar de utilizá-lo? ”e, o mais importante, “Como nós, como time, independente da especialidade de cada profissional, podemos trabalhar para que nossas entregas tenham sempre um elevado nível de qualidade? ”.

Os questionamentos mencionados acima influenciam no desenvolvimento de um mindset de qualidade e agilidade por todo o time, levando à realização de entregas com qualidade, evitando retrabalho e desperdício de esforço, removendo tarefas repetitivas e manuais do dia a dia dos profissionais, possibilitando que o time foque em atividades que realmente necessitam do intelecto humano, tornando assim o processo de desenvolvimento mais ágil.

Sem o mindset adequado, que talvez seja o pilar mais importante, dificilmente aplicaríamos os conceitos dos demais pilares. É ele que nos faz buscar evolução nos aspectos contemplados nos pilares metodológico e técnico. Porém, o mindset somente, sem o conhecimento dos demais pilares, não seria suficiente.

A expressão “não é preciso reinventar a roda” é muito conhecida e serve para diversas situações nos mais variados contextos. Dentro de qualidade de software, o raciocínio é o mesmo. Por que não utilizar métodos que são comprovadamente eficazes, que possibilitaram entregas efetivas em uma série de projetos anteriormente e que compõem um conjunto de boas práticas que são constantemente revisadas e aprimoradas?

Conhecer e aplicar corretamente a metodologia torna o processo muito mais fácil e diminui a probabilidade de ocorrerem problemas nas entregas, em diversos aspectos, que podem ser ocasionados pela não realização de alguma atividade ou pela realização da mesma de maneira incorreta.

Estimar corretamente as atividades de teste, avaliar a qualidade das informações que servem de insumo para o início das atividades de desenvolvimento e testes, definir claramente os critérios de entrada e saída dos artefatos no processo como um todo, selecionar e extrair indicadores que possibilitam realizar uma análise de tendência de defeitos para identificar pontos de melhoria no processo e tomar as ações necessárias, e que fornecem ao projeto como um todo as informações necessárias que embasam a autorização ou não para uma implantação são atividades importantíssimas.

Quão detalhado precisam ser os casos de teste e qual a melhor maneira e formato para registrá-lo? O que é necessário incluir no planejamento para que a execução dos testes ocorra sem grandes imprevistos? Quais fatores devem ser levados em consideração para priorizar tanto a execução quanto a automatização dos testes e quais aspectos do processo de desenvolvimento como um todo é possível melhorar e como fazê-lo?

O conhecimento metodológico ajuda a realizar da maneira correta as atividades e a responder as perguntas acima. Mais do que isso, proporciona uma diretriz para a aplicação correta de boas práticas que elevarão o nível de qualidade das entregas e a agilidade do processo através do qual estas entregas são realizadas.

Ferramentas que nos auxiliam na realização de diversas atividades do dia a dia não param de surgir e evoluir. Algumas vão além do simples auxilio e acabam, literalmente, realizando as atividades em nosso lugar, de maneira automática. No contexto de desenvolvimento de software não é diferente.

Para que possamos aproveitar ao máximo o que estas ferramentas podem nos oferecer é importantíssimo buscarmos sempre evoluir e atualizar nosso conhecimento no âmbito técnico. Este conhecimento nos possibilita auxiliar e direcionar os desenvolvedores a executarem corretamente os testes unitários e análise de código, gerar automaticamente a massa de dados necessária para testes e configurar, também de maneira automatizada, o ambiente no qual os testes serão realizados, executar os testes de integração e de sistema de maneira automatizada, realizar testes de performance, acessibilidade e segurança, configurar as ferramentas de controle do projeto para que nos forneçam em tempo real e de maneira automática as informações e indicadores sobre o andamento do projeto, atestar a qualidade e implementar de maneira automática os artefatos desenvolvidos, bem como monitorar o comportamento do sistema após a implantação.

Sem os benefícios proporcionados pela utilização destas ferramentas, podemos dizer que é impossível realizar testes de maneira ágil.

Em resumo, aplicar corretamente o conceito de testes ágeis é seguir as diretrizes contempladas nestes três pilares, sempre buscando a melhoria continua para cada vez mais elevar o nível de qualidade das entregas através da evolução do processo pelo qual elas são realizadas, obtendo assim, consequentemente, um maior nível de agilidade.

Written by

Exponential intelligence for exponential companies

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store