O projeto está indo para um novo nível? Teste necessário

Suponha que você, o criador do produto, tenha estudado o público-alvo, contratado uma equipe experiente de desenvolvedores e analistas, conquistado participação de mercado, comerciantes atraiam parceiros, os gerentes de atendimento ao cliente o aconselhem minuciosamente, você realiza promoções regularmente.

Parece que você tem tudo. Mas os pagamentos dos usuários e o público começaram a declinar, e os clientes começaram a recusar o produto.

Talvez seja uma questão de produção? Dê uma olhada no interior e talvez você veja como:

  • os hotfixes são lançados com mais frequência do que os lançamentos;
  • ou um serviço de suporte é inundado com solicitações e analisa continuamente defeitos críticos;
  • ou coortes significativas de usuários não podem obter os principais recursos do serviço.

E, mesmo depois de identificar problemas nesse estágio, nem sempre é possível entender como regular todo o processo, porque geralmente cada elemento da cadeia faz seu trabalho separadamente, e o resultado final não é feliz. Pense que talvez seja hora de contratar testadores?



***


Cada membro da equipe pode testar. De acordo com os princípios do Agile, essa atividade é realizada oficialmente por todos, não apenas pelos testadores. Os analistas sabem melhor do que ninguém quais recursos o cliente espera e como eles devem funcionar. Testes de unidade, revisões de código, programação em pares e autotestes regulares para desenvolvedores garantem a qualidade do código. Mas há casos em que esse teste se torna insuficiente para a qualidade final. Neste momento, testes independentes chegam ao "cenário".

Os testes realizados por um grupo profissional independente são chamados de independentes. Quanto menos a equipe afeta os procedimentos e conclusões conduzidos pelos testadores, mais independente ela é. B. Beiser no trabalho "Testando a caixa preta & raquo; escreveu: “O objetivo dos testes independentes é olhar para o produto de um ponto de vista diferente e, portanto, realizar outros testes; portanto, são realizados testes mais versáteis do que se apenas os desenvolvedores estivessem testando. ”
O teste profissional começa com uma análise e um design de teste:

  • seleção de um conjunto mínimo de verificações para garantir a quantidade máxima de funcionalidades;
  • definir a sequência de execuções de teste de acordo com a criticidade do funcional e os riscos de liberação de defeitos.

A necessidade de testes profissionais independentes surge nas seguintes condições:

1. Crescimento rápido


O sucesso do produto na competição é um grande evento, além de uma carga inesperada na produção. Novos usuários, novos requisitos, mudanças em larga escala forçam a equipe a executar mais tarefas em menos tempo. Como resultado, a equipe não tem tempo para testar ou o teste intuitivo (teste Ad-hoc ) perde defeitos críticos.

Os testes estão se desenvolvendo em paralelo com outras áreas de conhecimento na produção de software.

Abordagens e metodologias não são tão voláteis, a mais recente inovação em design de teste foi publicada em 2009 por James A. Whittaker em seu livro “Exploratory Software Testing” . Enquanto isso, novas ferramentas para testes estão sendo desenvolvidas continuamente, entre elas:

  • Ferramentas para verificação rápida do layout em diferentes navegadores e dispositivos, reconciliação com layouts, ortografia, tempo de resposta da página etc.
  • Ferramentas para executar, redirecionar, modificar, decodificar, rastrear solicitações de API;
  • Ferramentas para preparar dados e condições de teste em aplicativos da Web, desktop, móveis e API.

Os testadores profissionais aprimoram e aceleram os testes usando técnicas e ferramentas atualizadas, prestam atenção especial à busca de soluções eficazes e permitem que a equipe se concentre na modernização dos processos de negócios.

2. Entropia


Um produto de software de longa duração fala de estabilidade nos negócios. Por outro lado, ao longo de vários anos, o produto adaptado ao mercado, clientes, usuários, acumulou uma variedade de funcionalidades, inclusive logicamente contraditórias. As estatísticas do portal de RH mostram que o nível natural de rotatividade de pessoal em TI é de 8 a 10% ao ano, o que significa que em 5 anos a equipe de desenvolvimento poderá ser atualizada pela metade. Ao longo da vida do produto, a equipe pode mudar o arquiteto e os principais desenvolvedores, pessoas que conheciam a arquitetura original e a lógica de sua escala.

De acordo com F. Brooks no trabalho   "Mythical Man-Month",qualquer sistema procura destruir a estrutura e aumentar a entropia a cada nova correção. Com o tempo, o produto adquire o chamado código legado, herdado de funcionalidades incompatíveis, correção rápida de erros, desenvolvedor inexperiente. No entanto, sob pressão dos prazos, a equipe nem sempre tem tempo para cobrir o código com testes de unidade. Sob tais condições, é impossível prever quais partes do código serão afetadas por essa ou aquela correção e qual defeito dará origem.

Os testadores profissionais verificam não apenas os novos recursos, mas também a regressão de todo o sistema. O conteúdo e o método de realização de testes de regressão são objeto de um foco separado.

3. Personalização


É bom quando um produto recebe novas coortes de usuários, escala para cidades e países, especializa a funcionalidade para diferentes funções e se adapta à vida útil dos usuários no sistema. Da perspectiva do sistema, isso aumenta a quantidade de funcionalidade crítica e como usá-la. A mesma função pode ser usada para diferentes propósitos e em diferentes condições pelas coortes de usuários. Existem tantas funções e condições em um sistema grande e complexo que o analista pode esquecer uma delas durante o desenvolvimento de requisitos. De fato, um recurso matador para uma função pode se tornar um defeito de bloqueio para outra, não menos significativo.

O teste profissional verifica o uso do sistema quanto à conformidade com os objetivos dos usuários, faz perguntas esclarecedoras e ajusta o conteúdo do teste de regressão de acordo com as novas prioridades e tarefas de negócios do sistema. A atualização do conjunto e das prioridades dos testes é objeto de atenção especial do testador.

4. Distribuição


O ambiente de TI hoje oferece inúmeras opções, arquitetura de microsserviço, data centers em nuvem, equipes de projeto distribuídas. Produtos inteiros, do ponto de vista do usuário, são realmente divididos em microaplicativos, escritos em diferentes linguagens de desenvolvimento, localizadas em diferentes continentes, criadas por diferentes equipes e empresas do projeto.

Por exemplo, comprar uma bugiganga em uma loja online, por um lado, é uma ação de alguns cliques, por outro lado, processar e transferir dados em pelo menos três aplicativos - no site da loja, no gateway de pagamento e no sistema de pagamento. Cada aplicativo é desenvolvido por uma equipe de projeto com seus objetivos, estrutura organizacional, planos.

Nessas condições, o resultado provável é “a bala disparou, o problema está do seu lado”: ​​quando cada equipe desenvolveu sua própria parte de acordo com os requisitos, mas juntas elas não somam uma função de trabalho.
Antes do comissionamento, os testadores profissionais consultam, supervisionam, configuram ambientes para a execução dos testes de integração e executam verificações da perspectiva do usuário final, e não apenas dos requisitos de componentes individuais.

Assim, produtos grandes, populares, que mudam rapidamente e relacionados à idade obrigam o teste a ser um tipo separado de atividade. O teste eficaz é armado com metodologias especializadas, ferramentas e um objetivo específico diferente dos objetivos do restante da equipe. O objetivo do analista é descobrir as reais necessidades do cliente, o objetivo do desenvolvedor é fornecer as alterações solicitadas na íntegra, o objetivo do testador é testar todo o sistema, examinar o usuário e encontrar defeitos.

***


A delegação de testar uma função separada sob o controle de uma equipe é o segundo passo para o teste independente. Os testadores podem ser contratados por conta própria ou terceirizados em uma organização independente.

Dos testes de terceirização nesta etapa, a empresa recebe:

  • teste profissional do seu produto com ferramentas relevantes;
  • pessoal qualificado garantido. A terceirização é especializada na seleção e desenvolvimento de competências dos funcionários;
  • a oportunidade de usar o teste por tempo limitado, atrair um tipo adicional de teste ou substituí-lo;
  • trabalho transparente dos testadores.

As empresas de teste de terceirização trabalham por uma reputação: quanto mais alta, melhor o serviço é prestado. Como estão as coisas com os testes em sua empresa? Partilhe a sua experiência :)

All Articles