484 Shares 2004 views

Métodos de teste de software e sua comparação. Teste de caixa preta e teste de caixa branca

teste de software (SW) identificar lacunas, falhas e erros no código que precisam ser abordadas. Ele também pode ser definida como o processo de avaliação da funcionalidade e correção do software com a ajuda da análise. métodos básicos de integração e testes de aplicações de software e garantir a qualidade é testar a especificação, design e codificação, avaliação da confiabilidade, validação e verificação.

métodos

A principal finalidade dos testes de software – a confirmação da qualidade do sistema de software por meio de aplicativos de depuração sistemáticas sob condições cuidadosamente controladas para determinar sua integridade e exatidão, bem como a detecção de erros escondidos.

Os métodos de verificação de programas (de teste) pode ser dividido em estático e dinâmico.

As primeiras incluem informal, monitoramento e revisão técnica, inspeção, análise passo a passo, auditoria, bem como análise de fluxo de dados estáticos e de gestão.

técnicas dinâmicas são:

  1. teste de caixa branca. Este é um estudo detalhado da lógica interna e estrutura do programa. É necessário o conhecimento do código-fonte.
  2. teste de caixa preta. Esta técnica não requer qualquer conhecimento sobre o funcionamento interno do aplicativo. Nós consideramos apenas os aspectos básicos do sistema, não relacionadas ou associadas com alguns de sua estrutura lógica interna.
  3. método de caixa cinza. Ele combina duas abordagens anteriores. Depuração com conhecimento limitado do funcionamento interno da aplicação é combinada com o conhecimento dos aspectos fundamentais do sistema.

teste transparente

O método de caixa utilizando scripts de teste brancos controlar a estrutura do desenho processual. Esta técnica permite revelar erros de implementação, como o sistema de código de má gestão, analisando uma parte do funcionamento interno do software. Estes métodos de ensaio são aplicáveis aos níveis de integração, módulos e do sistema. O testador deve ter acesso ao código-fonte e usá-lo para descobrir qual a unidade se comporta de forma inadequada.

Testando programas por caixa-branca tem as seguintes vantagens:

  • Ele permite detectar um erro no código oculto, removendo linhas desnecessárias;
  • o uso de efeitos secundários;
  • cobertura máxima é alcançada por escrever um script de teste.

desvantagens:

  • processo de alto custo, necessitando depurador qualificados;
  • muitas avenidas permanecem inexplorados porque verificação completa de todos os possíveis erros escondidos é muito complexo;
  • parte do código será passado despercebido.

teste de caixa branca é por vezes referido pelo teste de uma caixa transparente ou aberta, teste estrutural, lógico, baseado no código-fonte, e arquitetura lógica.

As principais variedades:

1) testar o controle de fluxo – estratégia estrutural utilizando o modelo de fluxo de controle do programa e como favorecendo formas mais simples para menos mais complexo;

2) O ramo é concebido para estudar a depuração cada opção (verdadeiro ou falso) de cada operador de controlo, o qual também inclui uma solução combinada;

3) teste do caminho principal, o que permite que o dispositivo de teste para estabelecer projecto processual medida de complexidade lógica para o isolamento de um conjunto de bases de caminhos de execução;

4) a verificação do fluxo de dados – a estratégia de controle de fluxo de pesquisas pelas anotações contar informações sobre o anúncio e usar as variáveis do programa;

5) ciclos de teste – totalmente voltada para o correcto funcionamento dos processos cíclicos.

depuração comportamental

teste de caixa preta trata o software como uma "caixa preta" – informações sobre o funcionamento interno do programa não são contados e conferidos apenas os aspectos básicos do sistema. Neste caso, o testador precisa conhecer a arquitetura do sistema sem acesso ao código-fonte.

As vantagens desta abordagem:

  • eficiência para grandes segmento de código;
  • facilidade de testador de percepção;
  • perspectiva do utilizador está claramente separada a partir das perspectivas de desenvolvimento (programador e testador são independentes uns dos outros);
  • criação mais rápida da prova.

teste de software método de caixa preta tem as seguintes desvantagens:

  • de facto realizado um determinado número de casos de teste, resultando em uma cobertura limitada;
  • falta de uma especificação clara difícil desenvolver scripts de teste;
  • baixa eficiência.

Outros nomes para esta tecnologia – comportamental, não transparente, teste funcional e método de depuração de uma caixa fechada.

Esta categoria pode incluir as seguintes técnicas de teste de software:

1) equivalente de partição, o qual pode reduzir o conjunto de dados de ensaio, como dados de entrada do módulo de software é dividido em partes separadas;

2) análise de valor limite centra-se na verificação de limites ou valores-limite extremos – o mínimo, máximo e valores típicos de erro;

3) fuzzing – usado para implementar a pesquisa introduzindo erros ou poluiskazhennyh dados corrompidos em modo automático ou semi-automático;

4) contagem de causalidade – uma técnica com base na criação de gráficos e determinar a relação entre a ação e as suas razões: identidade, negação, OU lógico e lógico E – os quatro personagens principais, expressando a relação entre causa e efeito;

5) Verificação de matrizes ortogonais aplicado a problemas com uma área de entrada relativamente pequena superior a possibilidade de investigação exaustiva;

6) testando todos os pares – uma técnica em que um conjunto de valores de teste compreende todas as possíveis combinações binárias de cada par de parâmetros de entrada;

7) uma transição de estado de depuração – uma técnica útil para verificar o estado do equipamento, bem como para navegar através da interface gráfica de utilizador.

teste de caixa preta: Exemplos

técnica de caixa-preta é baseado nas especificações, documentação e descrições da interface do software ou sistema. Além disso, você pode usar modelos (formal ou informal), representando o comportamento esperado do software.

Tipicamente, este método é utilizado para a depuração de interface de utilizador e requer a interacção com a aplicação através da introdução de uma recolha de dados e resultados – a partir da tela, a partir dos relatórios ou impressões.

O testador, portanto, interage com o software introduzindo, agindo sobre os interruptores, botões ou outras interfaces. A escolha de dados de entrada, a fim de administração ou sequência de acções pode levar a um grande número total de combinações, como mostrado no exemplo a seguir.

Quantos testes precisam fazer a fim de verificar todos os valores possíveis para a bandeira 4 janelas e campo one-off, defina o tempo em segundos? No cálculo primeira vista, é simples: 4 campos com dois estados possíveis – 24 = 16, o que deve ser multiplicado pelo número de posições possíveis de 00 a 99, isto é, 1600 possíveis testes.

No entanto, este cálculo está errado: podemos determinar que o campo de dois pontos também pode conter um espaço, ou seja, consiste em duas posições alfanuméricas e pode incluir caracteres alfanuméricos, caracteres especiais, espaços, etc. Assim, se …. sistema é um computador de 16 bits, por sua vez 216 = 65536 um para cada posição nos 4294967296 casos de teste resultantes que devem ser multiplicados por 16 combinações de bandeiras que dá um total de 68.719.476 736. Se eles executam em um teste por segundo, o total de cont testes olzhitelnost é 2 177,5 anos. Para sistemas de 32 ou 64 bits, a duração ainda mais.

Portanto, existe uma necessidade de reduzir este período para um nível aceitável. Assim, as técnicas deve ser aplicado para reduzir o número de casos de teste sem reduzir o âmbito de testes.

equivalência de particionamento

A partição equivalente é um método simples que é aplicável para todas as variáveis que estão presentes no software, se a entrada ou saída de valores, simbólico, numérico, e outros. Baseia-se no princípio de que todos os dados a partir de um equivalente da partição será tratado da mesma maneira e pela mesmas instruções.

Durante o teste, seleccionado um representante de cada partição equivalência em particular. Isto permite reduzir sistematicamente o número de possíveis casos de teste, sem perda de cobertura de comandos e funções.

Outra consequência deste particionamento é reduzir a explosão combinatória entre as diferentes variáveis e a redução associada de casos de teste.

Por exemplo, em (1 / x) 1/2 usando três sequências de dados, três partição equivalente:

1. Todos os números positivos será tratado da mesma maneira e deve dar resultados correctos.

2. Todos os números negativos são tratados da mesma maneira com o mesmo resultado. Este é incorrecto, porque a raiz de um número negativo é imaginário.

3. Zero serão tratadas separadamente e dar a "divisão por zero" de erro. Esta é uma seção com um único valor.

Assim, vemos três secções distintas, uma das quais é reduzida para um único valor. Há uma seção de "correta", o que dá resultados confiáveis, e dois "errado" com resultados incorretos.

análise de valor limite

Processamento nas fronteiras do particionamento equivalente pode ser feito de forma diferente do que o esperado. Investigação de valores-limite – um método bem conhecido de analisar o comportamento do software em tais áreas. Esta técnica torna possível identificar esses erros:

  • uso indevido de operadores relacionais (, =, ≠, ≥, ≤);
  • único erro;
  • problemas em ciclos e iterações,
  • tipos errados ou o tamanho das variáveis utilizadas para o armazenamento de informações;
  • limitações artificiais associadas com tipos de dados e variáveis.

teste translúcido

método de caixa cinza aumenta a cobertura de teste, você pode se concentrar em todos os níveis de dificuldade do sistema através de uma combinação de técnicas de preto e branco.

Usando esta técnica, o testador para o desenvolvimento de valores de teste deve ter conhecimento de estruturas de dados internas e algoritmos. Exemplos de métodos de teste de cinza de caixa são como se segue:

  • modelo arquitetônico;
  • Unified Modeling Language (UML);
  • modelo de estado (finito máquina de estado).

No método da caixa cinza para desenvolver casos de teste estudou módulos em códigos de engenharia brancas, e teste real é realizada nas interfaces dos programas de tecnologia negros.

Estes métodos de ensaio tem as seguintes vantagens:

  • combinação de vantagens caixas brancas e pretas técnico;
  • Tester baseia-se na interface e especificação funcional, e não o código de fonte;
  • depurador pode fazer casos de teste grandes;
  • verificação é feita do ponto de vista do usuário, não o criador do programa;
  • criar desenvolvimento teste personalizado;
  • objetividade.

desvantagens:

  • cobertura de teste é limitado, porque não há acesso ao código-fonte;
  • a complexidade dos defeitos de aplicações distribuídas;
  • muitas maneiras permanecem inexplorados;
  • se o desenvolvedor de software lançou o teste, em seguida, uma investigação mais aprofundada pode ser excessiva.

Outro nome para as técnicas de caixa cinza – depuração translúcida.

Esta categoria inclui tais métodos de teste:

1) matriz ortogonal – o uso de um subconjunto de todas as combinações possíveis;

2) depuração da matriz, utilizando o estado do programa de dados;

3) Inspecção regressiva realizada nas novas alterações no software;

4) teste de modelo que analisa o design e arquitetura de uma boa aplicação.

Comparação das técnicas de teste de software

A utilização de métodos dinâmicos leva a uma explosão combinatória do número de testes que devem ser desenvolvidas, implementado e realizado. Cada técnica deve ser usada de forma pragmática, tendo suas limitações em conta.

O único método verdadeiro não existe, há apenas aqueles que são mais adequadas ao contexto específico. engenharia estrutural nos permitem encontrar um código inútil ou mal-intencionado, mas eles são complexos e não são aplicáveis a grandes programas. Métodos baseados nas especificações – os únicos que são capazes de identificar o código faltando, mas eles não podem identificar uma pessoa de fora. Algumas técnicas são mais adequados para um determinado nível de teste, tipo de erro ou o contexto do que outros.

Abaixo estão as principais diferenças entre as três técnicas de testes dinâmicos – é dada uma tabela de comparação entre as três formas de depuração software.

aspecto

O método de caixa preta

método de caixa cinza

método de caixa branca

Disponibilidade de informações sobre a composição do programa

Examina apenas os aspectos básicos da

conhecimento parcial sobre a estrutura interna do programa

O pleno acesso ao código-fonte

Grau de fragmentação do programa

baixo

central

alto

Quem produz depuração?

Usuários finais, testadores e desenvolvedores

Usuários finais, desenvolvedores e depuradores

Desenvolvedores e testadores

base

O teste é baseado em situações de emergência externos.

banco de dados diagramas, diagramas de fluxo de dados, estado de conhecimento interno do algoritmo e arquitetura

O dispositivo interno está plenamente consciente

O grau de cobertura

Menos abrangente e requer um mínimo de tempo

central

Potencialmente, a mais abrangente. demorado-

Dados e fronteiras internas

Debug apenas por tentativa e erro

Podem ser verificados os domínios de dados e fronteiras internas, se eles são conhecidos

Os melhores domínios de dados de teste e fronteiras internas

algoritmo de teste de adequação

não

não

sim

automação

de métodos automáticos de teste de software é muito simplificar o processo de inspeção, independentemente do ambiente técnico e no contexto da. Eles são usados em dois casos:

1) para automatizar as tarefas tediosas, repetitivas ou meticulosos, como comparação de arquivo para vários milhares de linhas, a fim de liberar tempo para a concentração do testador pontos mais importantes;

2) para a realização de rastreamento ou tarefas que não podem ser facilmente realizados por pessoas, tais como a verificação de desempenho ou tempo de resposta de análise que pode ser medida em centésimos de segundo.

As ferramentas de teste podem ser classificados de diferentes maneiras. A próxima divisão é baseada nas tarefas que suportam:

  • gerenciamento de testes, que inclui o apoio a projectos de gestão, versões, configurações, análise de risco, rastreamento de teste, erros, defeitos e ferramentas de relatórios;
  • gerenciamento de requisitos, que inclui requisitos de armazenamento e especificações, check-los para a integralidade e ambiguidade, a sua prioridade e a rastreabilidade de cada teste;
  • revisão crítica e análise estática, incluindo monitoramento de fluxo, e as tarefas, gravação e armazenamento dos comentários, detecção de defeitos e as ligações de gestão correções planejadas para listas de verificação e regras, acompanhamento de documentos de origem comunicação e análise estática de código para detectar defeitos, garantindo a conformidade com as normas do código escrito, análise de estruturas e dependências, o cálculo dos parâmetros de métricas de código e arquitetura. Além disso, utilizar os compiladores, analisadores, geradores e as relações de referências cruzadas;
  • modelagem, que inclui ferramentas para o comportamento modelagem de negócios e testar os modelos;
  • desenvolvimento de testes garante a geração de dados esperados com base em condições e modelos de interface de usuário e código, conseguem criar ou modificar arquivos e bancos de dados, mensagens, validação de dados com base em regras de gestão, análise estatística das condições e riscos;
  • uma visão crítica inserindo os dados através de uma interface de utilizador, API, linha de comando gráfica utilizando comparadores para ajudar a identificar os testes bem e mal sucedidas;
  • ambiente de depuração suporte que lhe permite substituir o hardware em falta ou software, em Vol. h. equipamentos de simulação com base no subconjunto determinado de saída, emuladores de terminais, telefones celulares e equipamentos de rede, o ambiente para verificação de idiomas, sistemas operacionais e hardware , substituindo o motorista componentes em falta, fictício módulos, etc., bem como ferramentas para capturar e modificar o sistema operacional solicita a limitação de simulação CPU, RAM, ROM, ou rede .;
  • .. Uma comparação de arquivos de dados, bancos de dados, verifique os resultados esperados durante e após a conclusão do teste, incl dinâmica e comparação lote, Automatic "Oráculos";
  • revestimento de medição para a localização de vazamentos de memória e sistema de estimar seu comportamento de controle incorreta sob simulados aplicações de carga geradora de carga, bancos de dados, redes ou servidores em um cenário realista de crescimento para medição, análise e verificação do relatório de recursos do sistema;
  • segurança;
  • testes de desempenho, carga e análise dinâmica;
  • outras ferramentas, em Vol. h. para verificar a ortografia e sintaxe, segurança de rede, a disponibilidade de todas as páginas do site e outros.

perspectiva

Com as novas tendências na indústria de software, o processo de depuração também está sujeita a alterações. Há novos métodos de teste de software, como uma arquitetura de serviço de orientirovannae (SOA), tecnologias sem fio, serviços de telefonia móvel, e assim por diante. E., abriram novas formas de teste de software. Algumas das mudanças que são esperados na indústria ao longo dos próximos anos, estão listados abaixo:

  • testadores irá proporcionar um modelo leve que os desenvolvedores serão capazes de verificar o seu código;
  • desenvolvimento de métodos de ensaio, incluindo visualização e modelagem de programas, numa fase inicial, vai eliminar muitas das contradições;
  • presença de teste várias intercepções irá encurtar o tempo de detecção de erro;
  • analisador estático e meios de detecção para ser mais amplamente utilizado;
  • o uso de matrizes minerais, tais como a cobertura da especificação, o âmbito de aplicação da cobertura modelo e código irá determinar o desenvolvimento de projectos;
  • ferramentas combinatórias permitem que os testadores para determinar as áreas prioritárias para a depuração;
  • testadores irá fornecer um serviço mais intuitivas e valiosos em todo o processo de desenvolvimento de software;
  • depuradores pode criar ferramentas e métodos de teste de software escritos em e interagir com uma variedade de linguagens de programação;
  • especialistas de depuração será mais profissional treinado.

Será substituído por um novo métodos de teste de software orientado a negócios, para alterar a forma de interação com os sistemas e as informações que eles fornecem ao mesmo tempo reduzir os riscos e aumentar os benefícios das mudanças de negócios.