Careers Xpand IT Careers Xpand IT
Contact Us
marketing.talent@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
  • Xtech Community
    • Blog
  • Quem Somos
    • Equipas de Produto & Tecnologia
    • Equipas Corporativas
    • O que fazemos
    • Imprensa
  • Contactos
  • Portuguê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?
Tempo de leitura: 4 minutos

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

Por Sérgio Freire, Solution Architect & Testing Advocate @Xray

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
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

5 lições que aprendi a trabalhar como QA Tester
Fev 19, 21

5 lições que aprendi a trabalhar como QA Tester

Comecei um novo desafio profissional em teletrabalho. Foi assim a minha experiência
Mai 14, 20

Comecei um novo desafio profissional em teletrabalho. Foi assim a minha experiência

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

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

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)

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

Como implementar Service Discovery com Spring?
Jan 25, 21

Como implementar Service Discovery com Spring?

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

Queres começar uma carreira em tecnologia? Experimenta as Power Apps
Abr 23, 20

Queres começar uma carreira em tecnologia? Experimenta as Power Apps

5 lições que aprendi a trabalhar como QA Tester
Fev 19, 21

5 lições que aprendi a trabalhar como QA Tester

Como criei impacto através dos dados enquanto Engineer?
Jan 29, 21

Como criei impacto através dos dados enquanto Engineer?

Como implementar Service Discovery com Spring?
Jan 25, 21

Como implementar Service Discovery com Spring?

Ambiente startup numa grande empresa, é possível? Acreditem que sim
Dez 09, 20

Ambiente startup numa grande empresa, é possível? Acreditem que sim

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

Entrevista de emprego online: quatro dicas para seres bem-sucedido
Jul 17, 20

Entrevista de emprego online: quatro dicas para seres bem-sucedido

Dev Talks: Xpand IT organiza webinars para developers e programadores
Jun 01, 20

Dev Talks: Xpand IT organiza webinars para developers e programadores

Comecei um novo desafio profissional em teletrabalho. Foi assim a minha experiência
Mai 14, 20

Comecei um novo desafio profissional em teletrabalho. Foi assim a minha experiência

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

Xpand IT está a recrutar. Tem vagas para Lisboa, Porto e Viana do Castelo
Mai 06, 20

Xpand IT está a recrutar. Tem vagas para Lisboa, Porto e Viana do Castelo

Xpandit

Portugal

Xpandit

United Kingdom

Xpandit

United States of America

Xpandit

Sweden

Logo_white_RGB

    Subscrever Newsletter
    Tweets
    • Procurar Oportunidades
    • Life at Xpand IT
    • Xtech Community
    • Quem Somos
    • Contactos
    • Português
    www.xpand-it.com | 2021 | All rights reserved
    • Procurar Oportunidades
      • Oportunidades de Emprego
      • Estudantes & Universidades
    • Life at Xpand IT
      • Trabalhar na Xpand IT
      • Os nossos Valores
    • Xtech Community
      • Blog
    • Quem Somos
      • Equipas de Produto & Tecnologia
      • Equipas Corporativas
      • O que fazemos
      • Imprensa
    • Contactos
    • Português
    Legal Privacy Policy Terms of Use
    Careers Xpand IT Norte 2020Careers Xpand IT Compete 2020Careers Xpand IT Portugal 2020Careers Xpand ITCareers Xpand IT fundos
    This website uses cookies to provide you with a better user experience. By using our site you agree to the use of cookies as describe by our cookie policy
    Read moreAgree
    Manage consent

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Sempre activado

    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

    Non-necessary

    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

    SAVE & ACCEPT