Tutorial de teste de blockchain

O que é Blockchain?

Blockchain é um armazenamento de banco de dados compartilhado de uma lista de registros em crescimento contínuo, chamados de blocos. Cada bloco contém um hash do bloco anterior e um carimbo de data / hora.

Neste tutorial, você aprenderá:

Os recursos do Blockchain incluem

  • Sistema Descentralizado : Benéfico em vários setores como finanças, imobiliário etc.
  • Melhor Segurança : Usa vários nós para concluir e autenticar transações
  • Autenticidade : Permite que o algoritmo exclusivo processe dados
  • Capacidade aumentada : Aumenta a capacidade de toda a rede

Tipo de Blockchain

Aqui estão três tipos de Blockchain:

Blockchain do consórcio:

Várias organizações terão acesso e autoridade sobre a rede. É sistema totalmente descentralizado

Blockchain público:

Nesse tipo de teste de blockchain, todos têm acesso à Rede e podem participar do Consenso. Seu sistema descentralizado.

Blockchain privado:

Somente organizações individuais terão acesso e autoridade sobre a rede. É um sistema parcialmente descentralizado.

PúblicoPrivadoConsórcio
Acesso
  • Qualquer um
  • Organização Única
  • Organização Múltipla
Participantes
  • Sem permissão
  • Anônimo
  • Autorizado
  • Identidades Conhecidas
  • Autorizado
  • Identidades Conhecidas
Segurança
  • Mecanismo de Consenso
  • Prova de Trabalho / Prova de Pilha
  • Participantes pré-aprovados
  • Votação / Consenso multipartidário
  • Participantes pré-aprovados
  • Votação / Consenso multipartidário
Velocidade de Transação
  • Devagar
  • Mais leve e mais rápido
  • Mais leve e mais rápido

Principais componentes de um blockchain

Aplicativo de Nó

Cada Nó deve instalar e executar um aplicativo de computador definitivo para o ecossistema do qual deseja participar

Razão Compartilhada

Uma estrutura de dados (ledger) é gerenciada dentro do aplicativo do nó. O conteúdo do ecossistema pode ser visualizado assim que o aplicativo do nó estiver em execução.

Algoritmo de consenso

O algoritmo de consenso é implementado como parte do aplicativo do nó, fornecendo as 'regras do jogo' para como o ecossistema chegará a uma única visualização do razão.

Máquina virtual

Abstração de uma máquina operada com instruções e implementada como parte do aplicativo de nó que cada participante do ecossistema executa.

Como funciona o Blockchain?

Vantagens do Blockchain

  • Economia de tempo : Blockchain reduz o tempo de transação de dias para minutos. A solução de Transação é mais rápida porque não exige verificação por uma autoridade central.
  • Custo-beneficio : Transações Blockchain menos manipulação. Os participantes podem trocar itens de valor diretamente. O Blockchain remove a duplicação de esforços porque os participantes têm acesso a um livro razão compartilhado.
  • Aumente a segurança : Proteção de segurança do Blockchain contra fraude e crimes cibernéticos.

Desafios em testes de Blockchain

  • Compreendendo a tecnologia - Blockchain é uma nova tecnologia e entender a tecnologia com conhecimento de domínio é muito importante para testar o aplicativo Blockchain
  • Falta de ferramentas de teste de Blockchain - O teste de aplicativos com base em blockchain envolve ferramentas. Selecionar a ferramenta certa de acordo com a aplicação é uma das decisões importantes.
  • Definindo Estratégia de Teste - Como qualquer aplicativo, projetar Estratégia de Teste para o aplicativo Blockchain. É um dos maiores desafios, pois a Estratégia de Teste exige conhecimento e compreensão profundos da tecnologia e da aplicação.
  • Bloco e tamanho da corrente - Junto com o teste padrão, as ferramentas e as melhores práticas em vigor, o teste de tamanho do bloco e da cadeia também é importante. Os aplicativos blockchain podem falhar sem a validação adequada do tamanho do bloco e da cadeia.
  • Teste de integração - Como há vários componentes envolvidos no aplicativo Blockchain, o teste de integração deve ser feito de maneira adequada e frequente para testar se todos os componentes estão devidamente integrados para evitar falhas.
  • Desempenho e carga - Falha ao testar o desempenho e o teste de carga oferece pouco ou nenhum insight sobre o desempenho do aplicativo Blockchain na produção, bem como em cargas de trabalho e condições de rede específicas.
  • Segurança - Proteger os dados deve ser o mais importante no aplicativo Blockchain. Blockchain pode fazer parte de vários setores como saúde, finanças, etc. qualquer tipo de ataque malicioso pode impactar o aplicativo Blockchain

Fases de teste de Blockchain

Fase de iniciação:

  • Compreendendo a arquitetura do Blockchain : Nesta fase, entendemos e analisamos os requisitos de negócio e funcionais. Isso descreve o comportamento do aplicativo e como o usuário irá interagir com o aplicativo
  • Projeto de estratégia de teste completo : Durante esta fase, descrevemos a abordagem de teste para testar um aplicativo. Isso deve ser feito em detalhes para que todos os objetivos sejam totalmente cobertos.

Fase de desenho:

  • Criação de caso de teste : Nesta fase, a equipe de QA escreve os casos de teste com as etapas adequadas. Esses casos de teste são revisados ​​por Analista de Negócios (BA).
  • Criação de dados de teste : Nesta fase, os dados de teste são criados ou extraídos do ambiente anterior em relação aos requisitos de negócios. Os dados de teste podem ser criados manualmente ou usando ferramentas de automação.
  • Configuração de ambiente : Nesta etapa, o ambiente de teste é configurado conforme a necessidade de Negócios ou aplicativo
  • Métricas de Desempenho : As métricas de desempenho representam as informações em termos de desempenho do aplicativo, sistema ou componentes

Fase de teste:

  • Teste de API : No teste de API, garantimos que a interação entre os aplicativos no ecossistema blockchain é a esperada
  • Teste de Bloco : Todos os blocos na rede devem ser testados individualmente para garantir a cooperação adequada.
  • Teste funcional : No Teste Funcional, avaliamos o trabalho de várias partes funcionais do Blockchain (por exemplo, contratos inteligentes).
  • Teste de performance : Detalhes como latência de rede com base no tamanho do bloco, tamanho da rede, tamanho esperado da transação e quanto tempo uma consulta leva para retornar a saída com o protocolo de autenticação especializado
  • Teste de Segurança : Com isso, garantimos que o aplicativo é vulnerável a ataques e os sistemas podem proteger os dados e é capaz de lidar com ataques maliciosos, etc.
  • Teste de integração : No teste de integração, garantimos que todos os componentes do aplicativo estão integrados corretamente e realizando as ações de forma adequada
  • Teste de contrato inteligente : O teste de contrato inteligente trata da realização de testes funcionais detalhados da lógica e do processo de negócios.

Fase do relatório:

  • Relatório de Resumo do Projeto : Descreva a visão geral dos detalhes do projeto, datas do projeto, custo e detalhes da tarefa
  • Relatório de teste de contrato inteligente : Este relatório descreve os detalhes do contrato inteligente, dados e processamento de regras
  • Relatório de teste de segurança : Mostra informações vulneráveis ​​em um documento formal para o cliente e alta administração. O relatório contém a data de teste, dados de teste e Resumo das vulnerabilidades encontradas
  • Relatório de teste de desempenho : Este relatório mostra os detalhes sobre o desempenho de aplicativos como velocidade, escalabilidade, confiabilidade, etc.

Principais tipos de teste em aplicativos Blockchain

Teste funcional

O Teste Funcional desempenha um papel importante no Teste do Blockchain, pois ajuda na avaliação dos requisitos de negócios, processos e eficácia dos casos de uso. Abaixo estão os componentes que podem ser testados como parte do teste funcional: 1) Tamanho do bloco e tamanho da cadeia 2) Adicionar um bloco 3) Transmissão de dados

Teste de integração

O aplicativo Blockchain funciona em vários ambientes. Portanto, é importante testar as conexões entre sistemas

Teste de performance:

Ajuda a identificar antecipadamente os gargalos de hardware e software. Isso também pode ajudá-lo a descobrir os custos potenciais de execução do aplicativo na nuvem ou em outros ambientes.

Teste de Nó

Todos os diversos nós da rede devem ser testados independentemente para garantir uma cooperação harmoniosa.

Teste de API:

A interface de programação de aplicativos testa a interação entre os aplicativos no ecossistema blockchain. O teste de API garante que as solicitações e respostas sejam formatadas e operadas de maneira adequada.

Ferramentas de teste de Blockchain

Aqui estão algumas ferramentas de teste de Blockchain de importação:

1) Testador Ethereum:

É uma biblioteca de teste de código aberto disponível no repositório GitHub. É fácil de configurar com suporte de API gerenciável para vários requisitos de teste.

2) Ganache:

É conhecido anteriormente como Testrpc , é a biblioteca amplamente usada para testar contratos Ethereum localmente. Funciona girando uma espécie de mock B lockchain que dá acesso a contas que você pode usar para T esting.

3) Hyperledger Composer:

O Hyperledger Composer é uma ferramenta de código aberto que ajuda os desenvolvedores a construir aplicativos blockchain. Usando essa ferramenta, podemos realizar principalmente três tipos de teste: Teste interativo, unidade automatizada e teste do sistema.

Este artigo é uma contribuição de Suman Dass.