Careers Xpand IT Careers Xpand IT
Contact Us
marketing.talent@careers.xpand-it.com
Careers Xpand ITCareers Xpand IT
  • Procurar Oportunidades
    • Oportunidades de Emprego
    • Estudantes & Universidades
  • Life at Xpand IT
    • Trabalhar na Xpand IT
    • Os nossos Valores
  • Recursos
    • Blog
    • Webinares e Conteúdos
    • ITalks lives @Instagram
  • Quem Somos
    • Equipas Tecnológicas
    • Equipas Corporativas
    • O que fazemos
    • Imprensa
  • Contactos
  • Português
  • Inglês
Info
Junta-te a nósJunta-te a nósJunta-te a nós
Search website
Search
Close

Testing debt: como melhorar o processo de testes de software?

  1. Home
  2. Blog Xtech Community
Testing debt: como melhorar o processo de testes de software?
30-04-2020
Tempo de leitura: 4 minutos

Testing debt: como melhorar o processo de testes de software?

Por Sérgio Freire

Tive a sorte de poder ir ao Euro Testing Conference 2020, em Amsterdão, em fevereiro e aprendi imenso. Um dos workshops em que participei foi o de Rob Meaney sobre “Exploring Testability”, – completamente inspirador. Aproveitei os insights partilhados pelo Rob para fazer uma experiência com a minha equipa, com o objetivo de melhorar o nosso processo de testes.

Na conferência fizemos um exercício hands-on relacionado com o Testing debt. Testing o quê? Debt! Neste artigo vou explicar o conceito de testing debt, como torná-lo visível, abordá-lo e, assim, melhorar o processo de testes de software.

O que é o testing debt?

Todos nós já ouvimos falar sobre o conceito de technical debt – as decisões em desenvolvimento tomadas para alcançar mais benefícios no curto-prazo que acabam, no entanto, por colocar em causa esses mesmos ganhos no futuro. Por outras palavras, é como fazer um hack rápido para disponibilizar uma funcionalidade ao invés de escolher a arquitetura apropriada para esse efeito. A lógica do Testing debt é semelhante.

Testing debt acontece quando uma equipa escolhe, intencionalmente ou não, uma opção que garante benefícios no curto-prazo, mas que, no longo prazo, resulta em custos acrescidos no processo de testes em termos de tempo, esforço ou risco.
Rob Meaney

Já Peter Varhol, coloca a questão de uma forma diferente:

“É o esforço necessário para encontrar e resolver problemas que permanecem no código quando uma aplicação é lançada.”

Em poucas palavras, testing debt é sobre os testes de software que deveriam ter sido feitos antes, mas que por alguma razão não os fizeste.

Testing debt quadrants

melhorar o processo de testes de software testing debt

Durante o workshop do Rob, mapeámos a debt utilizando a abordagem de Testing Debt Quadrants.

A abordagem de testing debt quadrants permite visualizar a “dívida”, incluindo:

  1. Elementos por testar
  2. Testes que são lentos ou inexequíveis e que podem levar a uma ausência de testes em determinadas partes
  3. Itens ou componentes que são complexas de testar
  4. Itens que não são fiáveis

Assim, dividimos o quadro em 4 secções:

  1. Impossível/impraticável
  2. Lento
  3. Complexo
  4. Não confiável

Nota: não devemos encarar os quadrantes como problemas, mas enquanto oportunidades.

O processo inicia adicionando post-its para identificar “partes da dívida” (por exemplo, alguma coisa que não estejamos a testar completamente ou da maneira que deveríamos).

Enquanto equipa, identificámos os mais relevantes (por exemplo, os que mais contribuem para o testing debt). Para cada parte da dívida, discutimos as estratégias e caminhos para podermos melhorar os testes de software, criando novos post-its. Como resultado, conseguimos delinear ações concretas para diminuir o debt e melhorar os testes de software globalmente.

Da teoria à prática: como fizemos?

melhorar o processo de testes de software testing debt

Depois da conferência, decidi experimentar internamente este exercício para confirmar se tinha valor prático ou não. Ao mesmo tempo, a ideia era conseguirmos identificar alguns pain-points no nosso processo de testes de software.

Fizemos o exercício com um pequeno grupo de trabalho (eu, alguns testers, e o team lead) Apesar do meu papel ter sido essencialmente de facilitador, já que fui product owner do software em causa, também tive a oportunidade de contribuir com alguns inputs no processo.

Começámos por fazer uma retrospetiva ao nosso processo atual de testes, desenhando-o e esquematizando-o. Conseguimos ter uma perceção visual muito clara de quem estava a fazer o quê e quando, e ao mesmo tempo foi logo possível identificar algumas oportunidades para melhorar o processo de testes de software.

Eu vejo este tipo de diagramas como excelentes pontos de partida para a discussão. Ainda assim, é preciso ter alguma cautela, ou, de outra forma, podem surgir longas discussões.

A seguir passámos para a abordagem de Testing Debt Quadrants, escrevendo e adicionado post-its aos quatro quadrantes. Cada um de nós fez a sua reflexão e, no final, houve alguma sobreposição de ideias (diria que é normal isso acontecer).

O espaço e categoria em que adicionamos cada post-it no quadro é subjetivo, no entanto, conforme fomos fazendo as revisões, acabámos por fazer alterações com as quais estávamos todos de acordo. Repara que, por exemplo, alguns itens podem ser lentos e complexos ao mesmo tempo. A categoria em que colocamos os posts-its não tem propriamente uma base lógica científica. No fundo, a categorização é um princípio para uma discussão mais alargada.

Assim, conseguimos chegar a algumas conclusões sobre como resolver os problemas que identificámos. Agora é colocá-las em prática para melhorar o processo de testes de software.

melhorar o processo de testes de software testing debt

Da descoberta às ações

Tendo descoberto e discutido alguns dos itens que contribuem para o nosso testing debt, é fundamental identificar os itens prioritários e que possam ser colocados em prática.

Assim, decidimos criar um quadro no Trello para acompanhar e dar seguimento à implementação dos itens e partilharmos as nossas ideias sobre a sua evolução.

É interessante que da nossa discussão inicial enquanto esquematizávamos o nossos processo de desenvolvimento, incluindo a componente de testes, conseguimos imediatamente identificar potenciais oportunidades significativas de melhoria.

Assim, o quadro do Trello contém não apenas as ações que identificámos durante o exercício de Testing Debt Quadrants mas, também, do mapeamento visual inicial que fizemos sobre o nosso processo de desenvolvimento.

melhorar o processo de testes de software

Coisas a ter em mente para melhorar o processo de testes de software

Sempre que olhamos para o todo, é fácil perdermo-nos e começarmos a explorar diferentes tópicos, que nunca mais acabam.

Algumas recomendações para melhorar este processo:

  • Define um limite de tempo para a análise e identificação de soluções, para que não se prolongue indefinidamente
  • Mantém o foco (sem interrupções)
  • Envolve outras áreas e pessoas
  • Pensa em fazer melhorias graduais – um passo de cada vez (para evitar que tentes encontrar a solução perfeita)
  • Revê o quadro regularmente

Para além destas boas práticas, também aconselho evitar “apontar o dedo” e atribuir culpas. Queremos identificar, melhorar e envolver; tudo exceto culpabilizar.

Deve ser um exercício de equipa, aberto, mas não individual.

E agora?

Acredito que mapear os problemas no processo de testes – que, como vimos, são também oportunidades para melhorar globalmente o processo de testes de software – utilizando o Testing Debt Quadrants é um exercício simples e de grande valor.

Todas as conversas que tiveres com a tua equipa são importantes para terem uma visão conjunta sobre como abordar o processo de testes e melhorá-lo. Apenas garante que estas partilhas não se tornam pouco úteis, procurando torná-las em ações concretas que podem monitorar e rever em conjunto.

*Este artigo é uma versão PT do conteúdo original que pode ser lido aqui.

Categories:
  • Blog Xtech Community
Tags:
  • IT
  • Software Development
  • Testes de software

Leave a comment

Comments are closed.

Comments

  1. 0
    Como implementar Service Discovery com Spring? - Careers Xpand IT

    […] têm, de alguma forma, dependências e ligações fortes entre si), a facilidade na depuração e realização de testes funcionais (visto que as funcionalidades “falam a mesma língua” e atravessam os mesmos […]

Anterior Seguinte
  • Popular
  • Recente
Como ser um bom developer? Não é apenas sobre código
Fev 03, 20

Como ser um bom developer? Não é apenas sobre código

Três dicas para criar um CV de engenharia informática de sucesso
Mai 08, 20

Três dicas para criar um CV de engenharia informática de sucesso

A minha primeira experiência profissional nos estágios de verão da Xpand IT
Set 20, 19

A minha primeira experiência profissional nos estágios de verão da Xpand IT

Como começar a trabalhar em IT? – live instagram
Abr 27, 21

Como começar a trabalhar em IT? – live instagram

Sete conselhos que um junior developer deve saber
Set 16, 19

Sete conselhos que um junior developer deve saber

Teletrabalho: boas práticas para trabalhar em casa (miúdos incluídos)
Mar 31, 20

Teletrabalho: boas práticas para trabalhar em casa (miúdos incluídos)

Cinco razões para continuar a trabalhar na mesma empresa de TI
Jan 22, 20

Cinco razões para continuar a trabalhar na mesma empresa de TI

Data Engineer ou Data Scientist? Descobre a carreira que faz match contigo
Nov 09, 20

Data Engineer ou Data Scientist? Descobre a carreira que faz match contigo

Cultura de UX: 10 dicas que não deves ignorar no desenvolvimento web e mobile
Fev 11, 20

Cultura de UX: 10 dicas que não deves ignorar no desenvolvimento web e mobile

Metodologias ágeis: cinco lições a partir do coaching a diferentes equipas
Dez 26, 19

Metodologias ágeis: cinco lições a partir do coaching a diferentes equipas

5 dicas e desafios para teres sucesso numa empresa híbrida ou remote – live instagram
Jul 29, 22

5 dicas e desafios para teres sucesso numa empresa híbrida ou remote – live instagram

De Trainee a Partner: Como chegar a este nível e quais os desafios?
Jun 23, 22

De Trainee a Partner: Como chegar a este nível e quais os desafios?

10 hacks em Javascript que os developers devem conhecer
Mai 17, 22

10 hacks em Javascript que os developers devem conhecer

10 top skills procuradas num Senior Developer
Abr 21, 22

10 top skills procuradas num Senior Developer

A importância de UX e as suas aplicações no futuro – live instagram
Abr 18, 22

A importância de UX e as suas aplicações no futuro – live instagram

Angular vs React: qual escolher? Conhece aplicações práticas
Mar 14, 22

Angular vs React: qual escolher? Conhece aplicações práticas

5 razões para trabalhares numa consultora de IT
Fev 09, 22

5 razões para trabalhares numa consultora de IT

De Native para Flutter: a opinião de um mobile developer
Jan 07, 22

De Native para Flutter: a opinião de um mobile developer

Termos e Condições de Participação no Passatempo Auscultadores Bluetooth
Dez 20, 21

Termos e Condições de Participação no Passatempo Auscultadores Bluetooth

Como aplicar deployments no Tableau Server através de uma abordagem DevOps?
Dez 14, 21

Como aplicar deployments no Tableau Server através de uma abordagem DevOps?

pin

Portugal

pin

United Kingdom

pin

Sweden

Carreira em IT logo Xpand IT
Subscrever Newsletter
  • Procurar Oportunidades
  • Oportunidades de Emprego
  • Estudantes & Universidades
  • Life at Xpand IT
  • Trabalhar na Xpand IT
  • Os nossos valores
  • Recursos
  • Blog
  • Webinares e Conteúdos
  • ITalks lives @Instagram
  • Quem Somos
  • Equipas de Produto & Tecnologia
  • Equipas Corporativas
  • O que fazemos
  • Imprensa
  • Contactos
www.xpand-it.com  2022 | All rights reserved
Legal Privacy Policy Terms Of Use
Lisboa 2020 Logo norte 2020
logo Compete 2020
Logo Portugal 2020
Logos CMMI e Pledge 1


Este website usa Cookies
O nosso website utiliza cookies para permitir o correto funcionamento e melhorar a sua experiência de navegação. Ao clicar no “Aceitar todos”, aceita todos os cookies. No entanto, pode aceder ao “Configurações cookies” e alterar o seu consentimento.
Ao navegar no nosso website, está a concordar com a nossa Política de Cookies.
Definições de CookiesACEITAR TUDO
Gerir Consentimento

Visão Geral de Privacidade

Este website utiliza cookies para melhorar a experiência enquanto navega pelo website. Destes cookies, os cookies categorizados como necessário são armazenados no seu navegador e estes são essenciais para o bom funcionamento das funcionalidades básicas do nosso website. Também utilizamos cookies de terceiros que nos ajudam a analisar e entender como é que utiliza o website. Estes cookies só serão armazenados no seu navegador com o seu consentimento. Tem a opção de desativar esses cookies. A desativação de alguns desses cookies pode afetar a sua experiência de navegação.
Necessários
Relatório de Consentimento
Os cookies necessários são essenciais para o nosso website funcionar normalmente. Assegurando anonimanente as funcionalidades básicas
CookieDuraçãoDescrição
__rd_experiment_versionsessãoEste cookie é configurado pelo RD Station garante que o utilizador veja sempre a mesma versão de um teste A/B, preservando a experiência e consistência dos dados.
_GRECAPTCHA5 meses 27 diasEste cookie é configuirado pelo Google reCAPTCHA protege o nosso site contra ataques de spam nos formulários de contacto.
cookielawinfo-checkbox-[CATEGORY]1 anoEste cookie é usado pelo plugin GDPR Cookie Consent guarda o consentimento do visitante da [CATEGORIA].
viewed_cookie_policy1 anoEste cookie usado pelo GDPR Cookie Consent plugin para guardar se o visitante consentiu ou não o use the cookies. Não guarda nenhum dado pessoal.
Performance e Analíticos
Estes cookies são usados em análises estatísticas, permitem-nos analisar o comportamente de navegação no nosso site de forma a melhorar os serviços e campanhas que disponibilizamos.
CookieDuraçãoDescrição
__trf.src1 anoEste cookie é configurado pelo RD Station, guarda a referência da origem da visita ao site.
_fbp3 mesesEste cookie é configurado pelo Facebook para exibir anúncios quando estiver no Facebook ou noutra plataforma digital onde é usada publicidade do Facebook
_ga2 anosEste cookie é configurado pelo Google Analytics, calcula dados de visitantes, sessões, campanhas e acompanha o uso do site. O cookie armazena informações anónimas atribuindo um número aleatório para distinguir visitantes únicos.
_ga_[ID]2 anosEste cookie é configurado pelo Google Analytics é usado para distinguir os visitantes.
_gat_UA-[ID]1 minutoEste cookie é configurado pelo Google Analytics, onde o elemento padrão no nome contém um número que identifica o site. É uma variação do cookie _gat usado para limitar a quantidade de dados registados pelo Google em sites de alto volume de tráfego.
_gid1 diaEste cookie é configurado pelo Google Analytics guarda um ID único que é usado para gerar dados estatísticos sobre como o visitante usa o site
_rdtrk9 anos 8 meses 4 dias 9 horas 21 minutosEste cookie é configurado pelo RD Station, guarda a lista de todas as páginas que o visitante acedeu.
AnalyticsSyncHistory1 mêsEste cookie é usado pelo Linkedin para guardar informação sobre quando ocorreu a sincronização com o cookie lms_analytics para os visitantes dos países selecionados.
bcookie2 anosEste cookie é usado pelo Linkedin para guardar informação sobre quando ocorreu a sincronização com o cookie lms_analytics para os visitantes dos países selecionados.
fr3 mesesEste cookie é usado pelo Facebook permite mostrar anúncios relevantes aos visitantes, analisando o comportamento do visitante noutros websites que possuem pixel do Facebook ou o plugin social do Facebook.
rdtrk1 anoEste cookie é configurado pelo RD Station, guarda a lista de todas as páginas que o visitante acedeu.
UserMatchHistory1 mêsEste cookie usado pelo LinkedIn para sincronizar os ID's dos Ads.
YSCsessãoEste cookie é usado pelo Youtube para guardar as visualizações de videos do youtube embebidos em páginas.
yt-remote-connected-devicesnuncaEste cookie é usado pelo YouTube para guardar as preferências de video do visitante nos videos embebidos.
yt-remote-device-idnuncaEste cookie é usado pelo YouTube para guardar as preferências de video do visitante nos videos embebidos.
yt.innertube::nextIdnuncaEste cookie é usado pelo YouTube regista um ID único para guardar quais os vídeos que o visitante visualizou.
yt.innertube::requestsnuncaUsed by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
Outros
Cookies que estão atualmente a ser analisados pela nossa equipa.
CookieDuraçãoDescrição
cookietestsessãoEste cookie está a ser analisado pela nossa equipa.
cxssh_status3 meses 8 diasEste cookie está a ser analisado pela nossa equipa.
Funcionais
Estes cookies são usadas para melhorar a experiência e funcionalidades do nosso website, permitem também guardar as preferências do utlizador para futuras vistas.
CookieDuraçãoDescrição
_icl_visitor_lang_js1 diaEste cookie é configurado pelo WPML WordPress plugin guarda o idioma redirecionado.
bscookie2 anosEste cookie é usado pelo LinkedIn guarda se o utlizador fez login com multi-factor
CONSENT2 anosEste coookie é usado pelo YouTube em videos embebidos e regista dados estatísticos anonimamente.
langsessãoEste cookie é usado pelo LinkedIn para guardar a escolha do idioma do visitante no website linkedin.com.
li_gc2 anosEste cookie é usado pelo Linkedin para guardar o consentimento dos visitantes acerca do uso de cookies não essenciais.
lidc1 diaEste cookie é usado pelo LinkedIn para facilitar a escolha do datacenter.
VISITOR_INFO1_LIVE5 meses 27 diasEste cookie usado pelo YouTube para medir a largura de banda de modo a determinar se o visitante acede à nova ou à antiga interface.
wpml_browser_redirect_testsessãoEste cookie é usado pelo WPML WordPress plugin é usado para testar se os cookies estão ativos no browser.
Salvar e Aceitar
  • Português
  • Inglês