Dez motivos pelos quais a virtualização de serviços é melhor do que mocks e stubs

Stubs e mocks podem ser ótimos para testes de unidade individuais. Mas e quando um sistema for complicado demais para se usar um mock ou um stub? Ou você precisar fazer testes com uma API ou serviço de terceiros? Como a equipe de QA testará o código se as dependências não estiverem disponíveis? Como o desempenho do código poderá ser testado usando as condições do mundo real no início do ciclo de desenvolvimento?

Cá estamos, em 2017. Chegou a hora de fazer aquelas listas de resoluções, colocar novos planos em ação e, se você for um fã de futebol americano... aproveitar os PLAYOFFS! Além de ser o ano em que os Dallas Cowboys poderão chegar ao Super Bowl pela primeira vez em 21 anos, 2017 marcará o aniversário de 10 anos desde que a iTKO (agora CA) introduziu a virtualização de serviços no mercado. Não estou querendo denunciar minha idade, mas lembro de ter gasto os primeiros 30 minutos de reuniões com clientes naqueles dias explicando as diferenças entre virtualização de hardware e de serviços. Pelo menos essa é uma conversa que não preciso mais ter!

Embora a virtualização de serviços tenha se tornado uma funcionalidade amplamente compreendida no espaço de desenvolvimento de aplicativos de software (há inclusive livros sobre o tema—meu favorito é o Service Virtualization: Reality Is Overrated), onde e como aproveitar melhor a virtualização de serviços continuam sendo dúvidas para muitos clientes. Eu ainda passo muito tempo conversando com eles sobre como fazer uso da virtualização de serviços em todo o SDLC, em vez de deixar que as equipes de desenvolvimento criem mocks e stubs e, mais adiante no ciclo de vida, fazer com que as equipes de QA usem a virtualização de serviços.

Com os playoffs da NFL a todo vapor, comecei a pensar: como os melhores times de futebol treinam para que possam apresentar sempre o melhor desempenho? É claro que tudo começa com cada jogador da equipe, que deve estar em forma e trabalhar com afinco entre as temporadas e na sala de filmes. Contudo, assim como muitas “zebras” provaram ao longo dos anos (lembro dos Rams em 2002, dos Giants em 2008 e, é claro, dos Jets em 1969), nem sempre basta ter um monte de jogadores que participaram do Jogo das Estrelas para se sagrar campeão. Além do talento individual, é preciso colaboração, uma visão única e um conjunto de jogadas bem pensadas e executadas com consistência pelo time.

Um jogador que mergulha para receber a bola com uma mão só e fazer um touchdown faz uma jogada INDIVIDUAL excepcional, mas não constitui o alicerce de jogadas consistentes que um time executa semana após semana, melhorando-as e aperfeiçoando-as, para finalmente chegar ao Super Bowl. Da mesma forma, as empresas que saem vencedoras na economia dos aplicativos têm um ótimo conjunto de jogadas que estão constantemente melhorando e executando. Não importa que os mocks e os stubs de seus desenvolvedores sejam ótimos, eles ainda são apenas esforços individuais que não podem ser usados ​​como jogadas consistentes com que sua equipe pode contar todos os dias, semanas ou meses para agilizar a entrega e levar uma inovação vencedora para o mercado com mais rapidez.

Não é que você não possa criar um mock ou um stub no seu trabalho de desenvolvimento, mas POR QUE fazer isso quando existem ferramentas melhores e mais rápidas que produzem resultados com mais qualidade? Se você estiver usando a virtualização de serviços em alguma parte do SDLC, deveria usá-la em (quase) TODAS AS PARTES do SDLC.

Um dos usos originais do CA Service Virtualization era viabilizar o desenvolvimento em paralelo—permitir que os desenvolvedores criassem novas funcionalidades nos aplicativos para gerar novas receitas ou diferenciais competitivos em vez de desperdiçar tempo programando mocks ou stubs. A programação desses itens não apenas consome muito tempo, mas o maior problema é que o benefício desses ativos é minúsculo e fugaz. A virtualização de serviços deve ser usada durante o desenvolvimento, assim como durante as várias fases de teste. E o ativo criado durante o desenvolvimento deve ser usado também na fase de teste. Ele pode ser usado como parte de um processo contínuo de teste ou integração que leve a uma agilização constante dos aplicativos.

A alternativa era o bom e velho uso de mocks e stubs. No final, acabamos com o CA Service Virtualization, devido à sua natureza “enterprise”. Ele desempenhou um papel importante, proporcionando um local centralizado para simulações, no qual pudemos administrá-las, reutilizá-las e ampliá-las.

Profissional de TI, Média empresa de serviços financeiros

Estes são apenas alguns dos benefícios que você pode esperar ao usar uma plataforma como o CA Service Virtualization e o Application Test, e que você não terá com mocks e stubs:

  • Reutilização de serviços virtuais e colaboração entre as equipes de desenvolvimento e de testes, em vez da necessidade de criação de mocks e stubs por cada equipe de aplicativos
  • Várias maneiras de criar automaticamente serviços virtuais: gravação de serviços, pares de solicitação/resposta, serviços virtuais baseados em dados e Swagger
  • Teste completo da lógica de negócios do aplicativo
  • Strings e datas mágicas em vez de informações estáticas
  • Maior realismo e quantidade de testes de desempenho
  • Ferramentas sofisticadas de edição e gerenciamento de serviços virtuais que reduzem o tempo de administração e o custo de desenvolvimento
  • A possibilidade de testes contínuos por meio da automação do fornecimento de serviços virtuais para testes
  • A capacidade de virtualizar e anonimizar os dados de teste nos estágios iniciais de desenvolvimento e testes
  • A capacidade de simular transações e conexões que os mocks e os stubs não conseguem: mainframes, bancos de dados e serviços de terceiros
  • Acesso a mais sistemas e serviços graças à virtualização de coisas que são impossíveis ou muito demoradas de tratar com mocks ou stubs: sistemas complexos, APIs de terceiros e serviços que não são da web

É por isso que as empresas que levam a sério a entrega mais rápida de aplicativos de melhor qualidade estão adotando a virtualização de serviços em todo o SDLC. Para muitas empresas, a virtualização de serviços não é mais uma decisão tecnológica, e sim comercial.

Um excelente exemplo é a forma como o SunTrust Bank usou o CA Service Virtualization para virtualizar seus dados, os serviços próprios e de terceiros, e para preparar os ambientes de teste. O banco obteve vários resultados concretos:

  • 53% dos requisitos com atraso agora eram testados no tempo correto
  • 18.505 defeitos foram encontrados antes da produção, com uma taxa de defeitos inferior a 1% (a meta era uma taxa inferior a 4%)
  • 22% de economia de custos com serviços gerenciados em relação a 2014, incluindo uma economia de US$ 1,97 milhão devido à automação e US$ 900 mil de economia direta
  • 73.302 horas de trabalho foram economizadas graças a ferramentas e à automação
  • Todas as iniciativas do tipo “não pode falhar” foram cumpridas

Os benefícios de se iniciar a virtualização de serviços durante o desenvolvimento e continuar seu uso ao longo do ciclo de vida são enormes, e temos comprovado isso há 10 anos. Qualquer benefício obtido com um mock ou um stub é temporário, na melhor das hipóteses. Temos usado a expressão “teste contínuo” há algum tempo na CA, e ela faz sentido quando consideramos como as empresas deveriam aproveitar a virtualização de serviços.

Talvez eu não consiga prever quem ganhará o Super Bowl deste ano, mas posso prever com 100% de confiança que a adoção da virtualização de serviços proporcionará melhorias impressionantes à sua capacidade de lançar aplicativos melhores e com mais qualidade ao mercado, com ainda mais rapidez!

Fale com a CA

Chat
Sobre o quê você gostaria de conversar?
Suporte
Contato
Fale conosco 0800 771 6350
Fale conosco

Chat with CA

Just give us some brief information and we'll connect you to the right CA ExpertCA sales representative.

Our hours of availability are 8AM - 5PM CST.

All Fields Required

connecting

We're matching your request.

Unfortunately, we can't connect you to an agent. If you are not automatically redirected please click here.

  • {{message.agentProfile.name}} will be helping you today.

    View Profile


  • Transfered to {{message.agentProfile.name}}

    {{message.agentProfile.name}} joined the conversation

    {{message.agentProfile.name}} left the conversation

  • Your chat with {{$storage.chatSession.messages[$index - 1].agentProfile.name}} has ended.
    Thank you for your interest in CA.


    Rate Your Chat Experience.

    {{chat.statusMsg}}

agent is typing