- 22 de agosto de 2023
- Blog
Agile Testing: seu time aplica essas práticas?
Grande parte dos times de tecnologia trabalham com a metodologia ágil de alguma forma. Para os profissionais e as profissionais de Quality Assurance, esse modelo de desenvolvimento de produtos e trabalho também já é uma realidade. Porém, o agile testing ainda não é tão difundido e praticado pelos QAs quanto o scrum é para devs, por exemplo.
E por que trabalhar com essa metodologia é tão interessante para QAs? O principal motivo é: testes são executados ao longo de todo o processo. Além desse fato, que traz a entrada do time de Quality Assurance logo para o início do processo de desenvolvimento, existem outras vantagens da implementação do agile testing.
Será que seu time realmente tem aplicado essas práticas? Vamos falar sobre algumas delas por aqui e elencar as principais, que trazem essa metodologia para jogo no dia a dia.
Antes de começar…
…é importante entendermos que essa metodologia se baseia no desenvolvimento ágil. Que, por sua vez, tem como principais valores:
- concentrar nas pessoas ao invés de processos e ferramentas;
- entender que um software funcional é mais importante do que uma documentação detalhada;
- manter a colaboração contínua com os clientes é mais importante do que um contrato fixo;
- ser receptivo às mudanças ao invés de seguir um plano.
De maneira geral, agile testing é uma metodologia baseada nesses valores, bem como em diferentes práticas e tipos de testes. Tudo isso, claro, com o teste contínuo como uma parte crucial do desenvolvimento, colocando ele no mesmo nível de importância da codificação. Assim, a qualidade de um software se torna responsabilidade de todo o time e não só da equipe de Quality Assurance.
E qual é o resultado da implementação do agile testing? Um cenário em que QAs podem identificar problemas em cada ponto do processo de desenvolvimento, levando o produto mais rapidamente ao lançamento. Além disso, com ele, aqueles erros no início do projeto que poderiam impactar o produto de ponta a ponta se tornam bem mais incomuns. Incrível, né?
Os princípios de agile testing
O livro Agile Testing: A Practical Guide for Testers and Agile Teams, das autoras Lisa Crispin e Janet Gregory, lista os dez princípios de agile testing. Desde a publicação do livro, esses princípios foram amplamente aceitos como base para processos de testes ágeis. Eles são:
- Fornecer feedback contínuo, distribuir os resultados desses testes e facilitar o feedback dos clientes aos desenvolvedores para criar um produto mais robusto;
- Agregar valor ao cliente, a fim de criar o melhor produto possível;
- Ativar a comunicação face a face, pensando em reduzir a confusão e os erros. Para isso, se comunicar diretamente com as pessoas desenvolvedoras é fundamental;
- Ter coragem, pois pessoas desenvolvedoras podem ser defensivas sobre suas entregas. Trabalhe pelas mudanças e correções que precisam ser feitas;
- Manter simples. Para QA, isso significa realizar apenas os testes que são necessários e, ao mesmo tempo, não abrir mão de nenhum deles. Para a entrega final, significa entregar o produto mais simples possível, com o maior valor possível;
- Praticar a melhoria contínua, focando em sempre melhorar o seu trabalho;
- Responder à mudança, ser adaptável e flexível, acompanhando o feedback das histórias de usuários, bem como as mudanças no produto e no mercado;
- Auto-organizar ao procurar ativamente os problemas e reunir as pessoas certas para resolvê-los;
- Se concentrar nas pessoas e, sempre que possível, preferir a interação humana à tecnologia. Seu foco nas pessoas permite que você entregue um produto que prioriza a usabilidade e a utilidade;
- Aproveitar, pois nada como gostar do que está fazendo para realmente ter sucesso.
Testes ágeis na prática
Até aqui, você conferiu que, quando unimos o conceito do desenvolvimento ágil aos princípios do agile testing, já encontramos uma série de boas práticas a serem seguidas. Você sabia que, além disso, existem tipos de teste que trazem o agile testing para a rotina de toda squad? Trouxemos três dos principais aqui:
1. Acceptance Test-Driven Development (ATDD)
Em português, Desenvolvimento Orientado a Testes de Aceitação. Essa é uma forma do TDD (test driven development ou Desenvolvimento Orientado por Testes). Ela reúne clientes, pessoas desenvolvedoras e QAs para criar testes de aceitação do ponto de vista do usuário. É somente depois desses testes que a funcionalidade correspondente é desenvolvida.
Esse teste oferece aos desenvolvedores e desenvolvedoras uma visão direta sobre o que os clientes querem e como o produto será usado. Assim, é possível evitar a ambiguidade do processo e reduzir as chances de grandes erros serem cometidos.
2. Behavior-Driven Development (BDD)
Também é baseado no desenvolvimento orientado a testes, além de levar em consideração o próprio ATDD. Aqui, os testes são incluídos nas user stories (em português, histórias de usuários) como cenários ou especificações. O foco é integrar regras de negócios com linguagem de programação conforme as decisões são tomadas.
3. Exploratory Testing
Nesse caso, os testes, em si, não têm script; eles utilizam a metodologia de agile testing conforme o produto é explorado. É uma ótima maneira de checar o real funcionamento de um software, bem como de identificar bugs que não seriam encontrados por outros meios.
Os testes exploratórios fazem parte de um método cíclico. Ou seja, que começa no design de teste, segue para a execução de teste, depois para a análise e, enfim, chega ao aprendizado antes de iniciar o loop novamente.
Descobriu como anda o agile testing na prática por aí? Se você acredita na aplicação de metodologias que tornam todas as etapas do desenvolvimento de software mais testáveis, aqui pode ser o lugar certo para você!