Acertando na implementação de funções novas

Uma abordagem de sucesso em equipes de teste agile é o entendimento das funções dos software. Para poder entregar o melhor possível para seus clientes e consumidores, é preciso entender quais funções eles desejam e como implementá-las nos projetos.

Antes de sair mexendo em código ou criando cenários de testes, é importante que desenvolvedores e testadores tenham uma correta compreensão do comportamento, da finalidade e relevância de cada função, na perspectiva do usuário. Para isso, é importante que novas funções sejam apresentadas e discutidas com toda a equipe.

Separamos uma “colinha” com perguntas a se fazer quando sua equipe se deparar com uma demanda de desenvolvimento de uma função nova. Estas perguntas ajudarão a perceber a utilidade da função e onde ela pode se encaixar no dia a dia do usuário. Também levantam respostas que podem até mesmo perceber que esta função pode se encaixar em um projeto futuro.

Usabilidade da função para usuários/negócio

  • Qual a importância desta função?
  • Que problema ela resolverá para o usuário?
  • Como saber se esta função funcionará quando lançada? Como podemos mensurar o sucesso dela? Será preciso uma nova métrica para avaliar?

Comportamento da função

  • Qual o cargo e responsabilidades de quem usará esta função?
  • Qual o pior erro que pode ocorrer usando esta função?
  • Qual o melhor resultado que esta função pode prover?
  • O tamanho desta função é muito grande? Podemos entregar uma pequena fatia dela e ter feedback?

Performance de qualidade

  • A função pode afetar a performance geral? Como iremos testar isto?
  • Isto pode introduzir falhas de segurança? Como testar isto?
  • Além disso, será que pode afetar a usabilidade? Como podemos deixar fácil de usar?
  • Que métricas de performance são importantes para esta função, em qual contexto?

Riscos

  • Precisamos prever endpoints, APIs ou comandos de servidor? Quais?
  • Temos conhecimento na equipe para implementar esta função? Devemos pedir ajuda externa?
  • Essa funcionalidade deve ser tratada como uma feature flag? Devemos permitir habilitá-la ou desabilitá-la?
  • Versões mobile/web correm risco de serem afetados?
  • Outras partes do sistema podem se comprometidas?

Testabilidade

  • Como iremos testar isto?
  • Quais testes automatizados iremos usar?
  • Serão necessários muitos testes exploratórios?
  • Temos os dados corretos para estes testes?
  • Será necessário atualizar os testes atuais ou adicionar novos? Se o caso for adicionar, haverá uma curva de aprendizado para utilizar este novo teste?

Com estas perguntas, a função que a sua empresa/cliente deseja será mais facilmente compreendida e implementada. Vale ressaltar que estas perguntas ajudam a encontrar um norte, mas sozinhas não são suficientes para decidir a validade da função. Troque informações com os colegas, debatam sobre o que querem implementar e até que ponto isto é viável. Uma boa equipe agile está a todo momento trocando ideias e sugestões, é um excelente hábito.

Newsletter

Assine nossa newsletter e seja avisado sobre novos artigos, cases, eventos e muito mais.

E-books e Relatórios

Conheça nossa base de ebooks, artigos, relatórios e cases. Aprenda sobre as boas práticas de testes, qualidade de software e muito mais.

Tudo disponível para download gratuitamente.